[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()
|
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.
|
Load data from the source file in the memory.
|
||||||
(Long and memory heavy)
|
(Long and memory heavy)
|
||||||
"""
|
"""
|
||||||
if not loaded:
|
if os.path.exists(filename):
|
||||||
if os.path.exists(filename):
|
hdf5 = tables.open_file(filename, mode="r")
|
||||||
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:
|
try:
|
||||||
node = hdf5.get_node("/data")
|
for key in data:
|
||||||
data = {}
|
hdf5.create_array(
|
||||||
for key in node._v_children:
|
"/data", key, data[key], "", createparents=True
|
||||||
data[key] = hdf5.get_node("/data/" + key).read()
|
)
|
||||||
finally:
|
finally:
|
||||||
hdf5.close()
|
hdf5.close()
|
||||||
else:
|
return data
|
||||||
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
|
|
||||||
|
|
||||||
def load_parts(self):
|
def load_parts(self):
|
||||||
self.parts = self.load_data(
|
if not self.parts_loaded:
|
||||||
self._part,
|
self.parts = self.load_data(
|
||||||
self.parts_loaded,
|
self._part,
|
||||||
self.parts_filename,
|
self.parts_filename,
|
||||||
self.pp_params.process.save_parts,
|
self.pp_params.process.save_parts,
|
||||||
)
|
)
|
||||||
self.parts_loaded = True
|
self.parts_loaded = True
|
||||||
|
|
||||||
def unload_parts(self):
|
def unload_parts(self):
|
||||||
"""
|
"""
|
||||||
@@ -455,14 +454,14 @@ class PostProcessor(HDF5Container):
|
|||||||
Cells will be accessible trough self.cells
|
Cells will be accessible trough self.cells
|
||||||
(Long and memory heavy)
|
(Long and memory heavy)
|
||||||
"""
|
"""
|
||||||
cells_src = CellsToPoints(self._amr)
|
if not self.cells_loaded:
|
||||||
self.cells = self.load_data(
|
cells_src = CellsToPoints(self._amr)
|
||||||
cells_src,
|
self.cells = self.load_data(
|
||||||
self.cells_loaded,
|
cells_src,
|
||||||
self.cells_filename,
|
self.cells_filename,
|
||||||
self.pp_params.process.save_cells,
|
self.pp_params.process.save_cells,
|
||||||
)
|
)
|
||||||
self.parts_loaded = True
|
self.cells_loaded = True
|
||||||
|
|
||||||
def unload_cells(self):
|
def unload_cells(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user