[log extractor] Add parser for fine step and plot
This commit is contained in:
@@ -252,6 +252,25 @@ class Comparator(Aggregator, HDF5Container):
|
|||||||
series["sfr"][run].append(sfr)
|
series["sfr"][run].append(sfr)
|
||||||
return series
|
return series
|
||||||
|
|
||||||
|
def _extract_fine_step_from_log(self, series, log_filename, run):
|
||||||
|
cmd_grep = "grep 'Fine step' {} ".format(log_filename)
|
||||||
|
content = os.popen(cmd_grep).readlines()
|
||||||
|
for i in range(0, len(content)):
|
||||||
|
data = content[i].replace("=", " ").split()
|
||||||
|
fine_step = np.int(data[2])
|
||||||
|
time = np.float(data[4])
|
||||||
|
dt = np.float(data[6])
|
||||||
|
a = np.float(data[8])
|
||||||
|
mempc1 = np.float(data[10][:-1])
|
||||||
|
mempc2 = np.float(data[11][:-1])
|
||||||
|
series["time"][run].append(time)
|
||||||
|
series["fine_step"][run].append(fine_step)
|
||||||
|
series["dt"][run].append(dt)
|
||||||
|
series["a"][run].append(a)
|
||||||
|
series["mempc1"][run].append(mempc1)
|
||||||
|
series["mempc2"][run].append(mempc2)
|
||||||
|
return series
|
||||||
|
|
||||||
def _extract_cons_from_log(self, series, log_filename, run):
|
def _extract_cons_from_log(self, series, log_filename, run):
|
||||||
rism = self.pp_params.input.ramses_ism
|
rism = self.pp_params.input.ramses_ism
|
||||||
nlines = 2 + int(rism) # Number of useful lines
|
nlines = 2 + int(rism) # Number of useful lines
|
||||||
|
|||||||
+13
-4
@@ -1208,13 +1208,17 @@ class Plotter(Aggregator, BaseProcessor):
|
|||||||
plt.xlim(tmin, tmax)
|
plt.xlim(tmin, tmax)
|
||||||
plt.ylim(ylim)
|
plt.ylim(ylim)
|
||||||
|
|
||||||
def _gen_from_log(self, logrule, name, description="Generated"):
|
def _gen_from_log(self, logrule, name_y, name_x="time", description="Generated"):
|
||||||
self.rules[name] = PlotRule(
|
if name_x == "time":
|
||||||
|
name_rule = name_y
|
||||||
|
else:
|
||||||
|
name_rule = name_y + "_" + name_x
|
||||||
|
self.rules[name_rule] = PlotRule(
|
||||||
self,
|
self,
|
||||||
partial(
|
partial(
|
||||||
self._plot,
|
self._plot,
|
||||||
"/series/" + logrule + "/time",
|
"/series/" + logrule + "/" + name_x,
|
||||||
"/series/" + logrule + "/" + name,
|
"/series/" + logrule + "/" + name_y,
|
||||||
xunit=U.Myr,
|
xunit=U.Myr,
|
||||||
),
|
),
|
||||||
description=description,
|
description=description,
|
||||||
@@ -1677,6 +1681,11 @@ class Plotter(Aggregator, BaseProcessor):
|
|||||||
for name in ["step", "mcons", "econs", "epot", "ekin", "eint", "emag"]:
|
for name in ["step", "mcons", "econs", "epot", "ekin", "eint", "emag"]:
|
||||||
self._gen_from_log("cons_from_log", name)
|
self._gen_from_log("cons_from_log", name)
|
||||||
|
|
||||||
|
for name in ["fine_step", "dt", "a", "mempc1", "mempc2"]:
|
||||||
|
self._gen_from_log("fine_step_from_log", name)
|
||||||
|
for name in ["time", "dt", "a", "mempc1", "mempc2"]:
|
||||||
|
self._gen_from_log("fine_step_from_log", name_y=name, name_x="fine_step")
|
||||||
|
|
||||||
# Generic rules directly from Ramses fields
|
# Generic rules directly from Ramses fields
|
||||||
for field in self.pp_params.pymses.variables:
|
for field in self.pp_params.pymses.variables:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user