[postprocessor] [plotter] Make generic rules averageables + cleanup
This commit is contained in:
+57
-90
@@ -1269,39 +1269,6 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
"Map of the grav Shakura&Sunaev alpha parameter for disks",
|
||||
dependencies=["alpha_grav"],
|
||||
),
|
||||
"vphi": PlotRule(
|
||||
self,
|
||||
partial(
|
||||
self._plot_map,
|
||||
"vphi",
|
||||
label=r"$v_\phi$",
|
||||
# unit=U.km_s
|
||||
),
|
||||
"Azimuthal speed",
|
||||
dependencies=["vphi"],
|
||||
),
|
||||
"vr": PlotRule(
|
||||
self,
|
||||
partial(
|
||||
self._plot_map,
|
||||
"vr",
|
||||
label=r"$v_r$",
|
||||
# unit=U.km_s
|
||||
),
|
||||
"Radial speed",
|
||||
dependencies=["vr"],
|
||||
),
|
||||
"rho": PlotRule(
|
||||
self,
|
||||
partial(
|
||||
self._plot_map,
|
||||
"rho",
|
||||
label=r"$\rho$",
|
||||
# unit=U.Msun_pc3
|
||||
),
|
||||
"Density slice at s = 0, with s = x, y or z.",
|
||||
dependencies=["rho"],
|
||||
),
|
||||
"coldens_l": PlotRule(
|
||||
self,
|
||||
partial(
|
||||
@@ -1314,41 +1281,41 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
"Column density with level overlay",
|
||||
dependencies=["coldens", "levels"],
|
||||
),
|
||||
"rho_v": PlotRule(
|
||||
"slice_rho_v": PlotRule(
|
||||
self,
|
||||
partial(
|
||||
self._plot_map,
|
||||
"rho",
|
||||
"slice_rho",
|
||||
label=r"$\rho$",
|
||||
unit=U.Msun_pc3,
|
||||
overlays=[self._overlay_speed],
|
||||
),
|
||||
"Density slice with speed overlay",
|
||||
dependencies=["rho", "speed_h", "speed_v"],
|
||||
dependencies=["slice_rho", "speed_h", "speed_v"],
|
||||
),
|
||||
"rho_B": PlotRule(
|
||||
"slice_rho_B": PlotRule(
|
||||
self,
|
||||
partial(
|
||||
self._plot_map,
|
||||
"rho",
|
||||
"slice_rho",
|
||||
label=r"$\rho$",
|
||||
unit=U.Msun_pc3,
|
||||
overlays=[self._overlay_B],
|
||||
),
|
||||
"Density slice with magnetic field overlay",
|
||||
dependencies=["rho", "B_h", "B_v"],
|
||||
dependencies=["slice_rho", "B_h", "B_v"],
|
||||
),
|
||||
"rho_B_vel": PlotRule(
|
||||
"slice_rho_B_vel": PlotRule(
|
||||
self,
|
||||
partial(
|
||||
self._plot_map,
|
||||
"rho",
|
||||
"slice_rho",
|
||||
label=r"$\rho$",
|
||||
unit=U.Msun_pc3,
|
||||
overlays=[self._overlay_B, self._overlay_speed],
|
||||
),
|
||||
"Density slice with magnetic field and velocity overlay",
|
||||
dependencies=["rho", "B_h", "B_v", "speed_h", "speed_v"],
|
||||
dependencies=["slice_rho", "B_h", "B_v", "speed_h", "speed_v"],
|
||||
),
|
||||
"jeans_ratio": PlotRule(
|
||||
self,
|
||||
@@ -1629,17 +1596,58 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
|
||||
averageables = [
|
||||
"coldens",
|
||||
"rho",
|
||||
"T",
|
||||
"Q",
|
||||
"vr",
|
||||
"vphi",
|
||||
"rho_avg",
|
||||
"P_avg",
|
||||
"T_avg",
|
||||
"T",
|
||||
"T_mwavg",
|
||||
"alpha_disk",
|
||||
"alpha_grav",
|
||||
]
|
||||
|
||||
# Generic rules directly from Ramses fields
|
||||
for field in self.pp_params.pymses.variables:
|
||||
|
||||
def generic_rule(name):
|
||||
|
||||
self.rules["slice_" + name] = PlotRule(
|
||||
self,
|
||||
partial(self._plot_map, "slice_" + name),
|
||||
"{} slice".format(name),
|
||||
dependencies=["slice_" + name],
|
||||
)
|
||||
|
||||
self.rules[name + "_mwavg"] = PlotRule(
|
||||
self,
|
||||
partial(self._plot_map, name + "_mwavg"),
|
||||
"Ax mass-weighted averaged {}".format(name),
|
||||
dependencies=[name + "_mwavg"],
|
||||
)
|
||||
|
||||
self.rules[name + "_avg"] = PlotRule(
|
||||
self,
|
||||
partial(self._plot_map, name + "_avg"),
|
||||
"Ax averaged {}".format(name),
|
||||
dependencies=[name + "_avg"],
|
||||
)
|
||||
|
||||
averageables.append("slice_" + name)
|
||||
averageables.append(name + "_mwavg")
|
||||
averageables.append(name + "_avg")
|
||||
|
||||
# special for vectors
|
||||
if field in ["g", "vel"]:
|
||||
# Components
|
||||
for i, dir in enumerate(["x", "y", "z"]):
|
||||
generic_rule(field + dir)
|
||||
|
||||
# Radial
|
||||
generic_rule(field + "r")
|
||||
# Orthoradial
|
||||
generic_rule(field + "phi")
|
||||
# Norm
|
||||
generic_rule(field + "_norm")
|
||||
else:
|
||||
generic_rule(field)
|
||||
|
||||
for name in averageables:
|
||||
self.rules["rad_" + name] = PlotRule(
|
||||
self,
|
||||
@@ -1698,47 +1706,6 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
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
|
||||
for field in self.pp_params.pymses.variables:
|
||||
|
||||
def generic_rule(name):
|
||||
|
||||
self.rules["slice_" + name] = PlotRule(
|
||||
self,
|
||||
partial(self._plot_map, "slice_" + name),
|
||||
"{} slice".format(name),
|
||||
dependencies=["slice_" + name],
|
||||
)
|
||||
|
||||
self.rules[name + "_mwavg"] = PlotRule(
|
||||
self,
|
||||
partial(self._plot_map, name + "_mwavg"),
|
||||
"Ax mass-weighted averaged {}".format(name),
|
||||
dependencies=[name + "_mwavg"],
|
||||
)
|
||||
|
||||
self.rules[name + "_avg"] = PlotRule(
|
||||
self,
|
||||
partial(self._plot_map, name + "_avg"),
|
||||
"Ax averaged {}".format(name),
|
||||
dependencies=[name + "_avg"],
|
||||
)
|
||||
|
||||
# special for vectors
|
||||
if field in ["g", "vel"]:
|
||||
# Components
|
||||
for i, dir in enumerate(["x", "y", "z"]):
|
||||
generic_rule(field + dir)
|
||||
|
||||
# Radial
|
||||
generic_rule(field + "r")
|
||||
# Orthoradial
|
||||
generic_rule(field + "phi")
|
||||
# Norm
|
||||
generic_rule(field + "_norm")
|
||||
else:
|
||||
generic_rule(field)
|
||||
|
||||
# Dict of overlays
|
||||
self.overlays = {
|
||||
"B": self._overlay_B,
|
||||
|
||||
Reference in New Issue
Block a user