From 99fbb8a4b14eb919ca508d848f345f7a9d6dcb42 Mon Sep 17 00:00:00 2001 From: Thomas-Ulrich Date: Tue, 3 Feb 2026 13:52:33 +0100 Subject: [PATCH 1/2] allow group filter on mesh --- seissolxdmfwriter/pyproject.toml | 2 +- .../seissol_output_extractor.py | 4 ++- .../seissolxdmfwriter/seissolxdmfwriter.py | 35 +++++++++++++------ 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/seissolxdmfwriter/pyproject.toml b/seissolxdmfwriter/pyproject.toml index 95bad2d..c835b74 100644 --- a/seissolxdmfwriter/pyproject.toml +++ b/seissolxdmfwriter/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "seissolxdmfwriter" -version = "0.4.5" +version = "0.4.6" authors = [ {name = "SeisSol Group"}, ] diff --git a/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py b/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py index 9b90ac5..279832a 100755 --- a/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py +++ b/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py @@ -163,9 +163,11 @@ def GetFilteredCells(self, regionFilter, xRange, yRange, zRange): region_varname = "fault-tag" elif "locationFlag" in available: region_varname = "locationFlag" + elif "group" in available: + region_varname = "group" else: raise ValueError( - f"fault-tag or locationFlag not in available variables {available}" + f"fault-tag, locationFlag or group not in available variables {available}" ) tags = self.Read1dData(region_varname, self.nElements, isInt=True) regions = regionFilter[0].split(",") diff --git a/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py b/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py index 5f9e2d9..3776b1a 100644 --- a/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py +++ b/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py @@ -517,13 +517,28 @@ def write_from_seissol_output( ) nel = infer_n_elements(sx, filtered_cells) - write_timeseries_xdmf( - prefix, - sx.ReadNNodes(), - nel, - sx.ReadNodesPerElement(), - dictDataTypes, - [sx.ReadTimes()[k] for k in time_indices], - reduce_precision, - backend, - ) + nNodes = sx.ReadNNodes() + node_per_element = sx.ReadNodesPerElement() + dictTime = [sx.ReadTimes()[k] for k in time_indices] + + if not dictTime: + write_mesh_xdmf( + prefix, + nNodes, + nel, + node_per_element, + dictDataTypes, + reduce_precision, + backend, + ) + else: + write_timeseries_xdmf( + prefix, + nNodes, + nel, + node_per_element, + dictDataTypes, + dictTime, + reduce_precision, + backend, + ) From 449fa41478f7642a64550dee36237bb2dad9e819 Mon Sep 17 00:00:00 2001 From: Thomas-Ulrich Date: Tue, 3 Feb 2026 13:52:47 +0100 Subject: [PATCH 2/2] apply isort --- seissolxdmfwriter/seissolxdmfwriter/__init__.py | 5 +++-- .../seissolxdmfwriter/seissol_output_extractor.py | 8 +++++--- seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py | 5 +++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/seissolxdmfwriter/seissolxdmfwriter/__init__.py b/seissolxdmfwriter/seissolxdmfwriter/__init__.py index f14c9ab..d406701 100644 --- a/seissolxdmfwriter/seissolxdmfwriter/__init__.py +++ b/seissolxdmfwriter/seissolxdmfwriter/__init__.py @@ -1,8 +1,9 @@ from .seissolxdmfwriter import * + try: - from importlib.metadata import version, PackageNotFoundError + from importlib.metadata import PackageNotFoundError, version except ImportError: - from importlib_metadata import version, PackageNotFoundError + from importlib_metadata import PackageNotFoundError, version try: __version__ = version("seissolxdmfwriter") diff --git a/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py b/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py index 279832a..1bc22c6 100755 --- a/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py +++ b/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py @@ -1,11 +1,13 @@ #!/usr/bin/env python3 +import argparse import os import os.path +from warnings import warn + +import numpy as np import seissolxdmf + import seissolxdmfwriter as sxw -import numpy as np -import argparse -from warnings import warn def generate_new_prefix(prefix, append2prefix): diff --git a/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py b/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py index 3776b1a..0cc56d8 100644 --- a/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py +++ b/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py @@ -1,8 +1,9 @@ -import numpy as np import os -from tqdm import tqdm import sys +import numpy as np +from tqdm import tqdm + known_1d_arrays = [ "locationFlag", "fault-tag",