From dfea54d3cb14877e18c540112a47b7d98a2961f0 Mon Sep 17 00:00:00 2001
From: Jean-Matthieu Etancelin <jean-matthieu.etancelin@univ-pau.fr>
Date: Tue, 17 Sep 2024 15:28:52 +0200
Subject: [PATCH] fix varnames in H5Writer

---
 hysop/operator/hdf_io.py | 38 ++++++++++++++++----------------------
 1 file changed, 16 insertions(+), 22 deletions(-)

diff --git a/hysop/operator/hdf_io.py b/hysop/operator/hdf_io.py
index 2b34a45cd..eeb22e5d4 100644
--- a/hysop/operator/hdf_io.py
+++ b/hysop/operator/hdf_io.py
@@ -283,28 +283,22 @@ class HDF_IO(HostOperatorBase, metaclass=ABCMeta):
         self.refmesh = refmesh
 
         name_prefix, name_postfix = self.name_prefix, self.name_postfix
-        if self.var_names is None:
-            var_names = {}
-            # Get field names and initialize dataset dict.
-            for df in self.discrete_fields:
-                for d in range(df.nb_components):
-                    if df.nb_components == 1:
-                        name = name_prefix + df.name + name_postfix
-                    else:
-                        name = name_prefix + df.name + f"_{d}" + name_postfix
-                    self.dataset[name] = df.data[d]
-                    var_names[df.field] = name
-            self.var_names = var_names
-        else:
-            for var in self.var_names:
-                # Discrete field associated to var
-                var_d = var.discretize(topo)
-                for d in range(var_d.nb_components):
-                    name = name_prefix + self.var_names[var]
-                    name += "_" + DirectionLabels[d] + name_postfix
-                    self.dataset[name] = var_d.data[d]
-
-        for f, name in self.var_names.items():
+        fields_names = {}
+        # Get field names and initialize dataset dict.
+        for df in self.discrete_fields:
+            df_name = df.name
+            if df.continuous_fields()[0] in self.var_names.keys():
+                df_name = self.var_names[df.continuous_fields()[0]]
+            for d in range(df.nb_components):
+                if df.nb_components == 1:
+                    name = name_prefix + df_name + name_postfix
+                else:
+                    name = name_prefix + df_name + f"_{d}" + name_postfix
+                self.dataset[name] = df.data[d]
+                fields_names[df.field] = name
+        self.fields_names = fields_names
+
+        for f, name in self.fields_names.items():
             assert f in self._local_compute_slices
             assert f in self._global_compute_slices
             self._local_compute_slices[name] = self._local_compute_slices[f]
-- 
GitLab