[postprocessor] correct bug of Nonizing pp.parts when reloading

This commit is contained in:
Noe Brucy
2021-05-21 10:51:05 +02:00
parent c36490e399
commit 9bb39a984f
+43 -44
View File
@@ -394,51 +394,50 @@ class PostProcessor(HDF5Container):
self.def_rules()
def load_data(self, points_src, loaded, filename, save):
def load_data(self, points_src, filename, save):
"""
Load data from the source file in the memory.
(Long and memory heavy)
"""
if not loaded:
if os.path.exists(filename):
hdf5 = tables.open_file(filename, mode="r")
if os.path.exists(filename):
hdf5 = tables.open_file(filename, mode="r")
try:
node = hdf5.get_node("/data")
data = {}
for key in node._v_children:
data[key] = hdf5.get_node("/data/" + key).read()
finally:
hdf5.close()
else:
data_pymses = points_src.flatten()
data = {}
for key in data_pymses.fields:
data[key] = data_pymses[key]
try:
data["dx"] = data_pymses.get_sizes()
except AttributeError:
pass
data["pos"] = data_pymses.points
if save:
hdf5 = tables.open_file(filename, mode="w")
try:
node = hdf5.get_node("/data")
data = {}
for key in node._v_children:
data[key] = hdf5.get_node("/data/" + key).read()
for key in data:
hdf5.create_array(
"/data", key, data[key], "", createparents=True
)
finally:
hdf5.close()
else:
data_pymses = points_src.flatten()
data = {}
for key in data_pymses.fields:
data[key] = data_pymses[key]
try:
data["dx"] = data_pymses.get_sizes()
except AttributeError:
pass
data["pos"] = data_pymses.points
if save:
hdf5 = tables.open_file(filename, mode="w")
try:
for key in data:
hdf5.create_array(
"/data", key, data[key], "", createparents=True
)
finally:
hdf5.close()
return data
return data
def load_parts(self):
self.parts = self.load_data(
self._part,
self.parts_loaded,
self.parts_filename,
self.pp_params.process.save_parts,
)
self.parts_loaded = True
if not self.parts_loaded:
self.parts = self.load_data(
self._part,
self.parts_filename,
self.pp_params.process.save_parts,
)
self.parts_loaded = True
def unload_parts(self):
"""
@@ -455,14 +454,14 @@ class PostProcessor(HDF5Container):
Cells will be accessible trough self.cells
(Long and memory heavy)
"""
cells_src = CellsToPoints(self._amr)
self.cells = self.load_data(
cells_src,
self.cells_loaded,
self.cells_filename,
self.pp_params.process.save_cells,
)
self.parts_loaded = True
if not self.cells_loaded:
cells_src = CellsToPoints(self._amr)
self.cells = self.load_data(
cells_src,
self.cells_filename,
self.pp_params.process.save_cells,
)
self.cells_loaded = True
def unload_cells(self):
"""