[postprocessor] correct bug of Nonizing pp.parts when reloading
This commit is contained in:
+43
-44
@@ -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):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user