[sinks] update sinks reader to be compatible with new code

This commit is contained in:
Noe Brucy
2021-11-22 11:50:29 +01:00
parent 3a7181c191
commit e69a2587d8
+14 -15
View File
@@ -252,9 +252,14 @@ class StudyProcessor(Aggregator, HDF5Container):
nb_sink = np.int(content[i].split("=")[1])
mass_sink = np.float(content[i + 1].split("=")[1])
time = np.float(content[i + 2].split("=")[1])
timekey = np.float(content[i + 2].split("=")[0])
series["nb_sink"][run].append(nb_sink)
series["mass_sink"][run].append(mass_sink)
if "[yr]" not in timekey:
time *= self.info["unit_time"].express(U.yr)
series["time"][run].append(time)
except (ValueError, IndexError):
self._log(
"Error encountered in parsing {} (grepped block {})".format(
@@ -392,8 +397,8 @@ class StudyProcessor(Aggregator, HDF5Container):
"""
avg_window in year
"""
time_unit = self.save.get_node("/series/sinks_from_log/time")._v_attrs.unit
mass_unit = self.save.get_node("/series/sinks_from_log/mass_sink")._v_attrs.unit
time_unit = self.get_attribute("/series/sinks_from_log/time", "unit")
mass_unit = self.get_attribute("/series/sinks_from_log/mass_sink", "unit")
ssfr = {}
for run in self.runs:
# Surface of the box in pc^2
@@ -401,11 +406,9 @@ class StudyProcessor(Aggregator, HDF5Container):
surface = (info["unit_length"].express(U.pc)) ** 2
# WARNING : We do not multiply by boxlen since already done in 'unit_length' (pymses)
time = self.save.get_node("/series/sinks_from_log/time/" + run).read()
time = self.get_value(f"/series/sinks_from_log/time/{run}")
time = time * time_unit.express(U.year)
mass_sink = self.save.get_node(
"/series/sinks_from_log/mass_sink/" + run
).read()
mass_sink = self.get_value(f"/series/sinks_from_log/mass_sink/{run}")
mass_sink = mass_sink * mass_unit.express(U.Msun)
if avg_window is None:
@@ -425,15 +428,13 @@ class StudyProcessor(Aggregator, HDF5Container):
return ssfr, {"avg_window": avg_window}
def _surfacic_sink_mass(self):
mass_unit = self.save.get_node("/series/sinks_from_log/mass_sink")._v_attrs.unit
mass_unit = self.get_attribute("/series/sinks_from_log/mass_sink", "unit")
ssm = {}
for run in self.runs:
# Surface of the box in pc^2
info = self.snaps[run][self.nums[run][0]].info
surface = (info["unit_length"].express(U.pc)) ** 2
mass_sink = self.save.get_node(
"/series/sinks_from_log/mass_sink/" + run
).read()
mass_sink = self.get_value(f"/series/sinks_from_log/mass_sink/{run}")
mass_sink = mass_sink * mass_unit.express(U.Msun)
ssm[run] = mass_sink / surface
@@ -443,11 +444,9 @@ class StudyProcessor(Aggregator, HDF5Container):
def _turb_power(self):
turb_power = {}
for run in self.runs:
dt = self.save.get_node("/series/rms_from_log/dt/" + run).read()
dt = self.get_value("/series/rms_from_log/dt/{run}")
# Energy injected at each timestep
energy = self.save.get_node(
"/series/rms_from_log/turb_energy/" + run
).read()
energy = self.get_value("/series/rms_from_log/turb_energy/{run}")
# Power of the turbulence at this step in Watts
turb_power[run] = energy / dt
return turb_power
@@ -563,7 +562,7 @@ class StudyProcessor(Aggregator, HDF5Container):
self._extract_sinks_from_log,
),
group="/series",
unit={"time": "unit_time", "mass_sink": U.Msun, "nb_sink": U.none},
unit={"time": U.yr, "mass_sink": U.Msun, "nb_sink": U.none},
description={
"time": "Time",
"mass_sink": "Total mass of stars",