[ism] update ism auto file

This commit is contained in:
Noe Brucy
2021-06-24 10:54:08 +02:00
parent f7012e4670
commit 85310d848b
+11 -16
View File
@@ -36,16 +36,18 @@ def convert_coldens_s(n0):
convert_coldens = np.vectorize(convert_coldens_s) convert_coldens = np.vectorize(convert_coldens_s)
def get_dispersion(dset, i): def get_dispersion(dset, name):
""" """
Compute dispersion from dset["name"] Compute dispersion from dset[name]
""" """
vel = dset["vel"][:, i] vel = dset[name]
mass = dset["mass"] mass = dset["mass"]
mass_tot = np.sum(mass) mass_tot = np.sum(mass)
mean = np.sum(mass * vel) / mass_tot if mass_tot > 0:
return np.sqrt(np.sum(mass * (vel - mean) ** 2) / mass_tot) mean = np.sum(mass * vel) / mass_tot
return np.sqrt(np.sum(mass * (vel - mean) ** 2) / mass_tot)
else:
return 0
def get_sinks(pp): def get_sinks(pp):
csv_name = f"{pp.path}/output_{pp.num:05}/sink_{pp.num:05}.csv" csv_name = f"{pp.path}/output_{pp.num:05}/sink_{pp.num:05}.csv"
@@ -54,20 +56,18 @@ def get_sinks(pp):
def analyze_box(pp): def analyze_box(pp):
pp.cells["mass"] = snapshotprocessor.mass_func(pp.cells) pp.cells["mass"] = snapshotprocessor.mass_func(pp.cells)
pp.coldens("z")
coldens = pp.get_value("/maps/coldens_z", unit=U.coldens) coldens = pp.get_value("/maps/coldens_z", unit=U.coldens)
sinks = get_sinks(pp) sinks = get_sinks(pp)
sinks["vel"] = np.array([sinks.vx, sinks.vy, sinks.vz])
sinks["vel"] *= pp.info["unit_velocity"].express(U.km_s)
sinks["mass"] = sinks.M sinks["mass"] = sinks.M
res = {} res = {}
dirs = ["x", "y", "z"] dirs = ["x", "y", "z"]
res["time"] = pp.info["time"] * pp.info["unit_time"].express(U.Myr) res["time"] = pp.info["time"] * pp.info["unit_time"].express(U.Myr)
for i, dir in enumerate(dirs): for i, dir in enumerate(dirs):
res[f"sigma_{dir}"] = get_dispersion(pp.cells, i) * pp.info[ pp.cells[f"v{dir}"] = pp.cells["vel"][:, i]
res[f"sigma_{dir}"] = get_dispersion(pp.cells, f"v{dir}") * pp.info[
"unit_velocity" "unit_velocity"
].express(U.km_s) ].express(U.km_s)
res[f"sigma_sinks_{dir}"] = get_dispersion(sinks, i) * pp.info[ res[f"sigma_sinks_{dir}"] = get_dispersion(sinks, f"v{dir}") * pp.info[
"unit_velocity" "unit_velocity"
].express(U.km_s) ].express(U.km_s)
res["coldens_mean"] = np.mean(coldens) res["coldens_mean"] = np.mean(coldens)
@@ -92,13 +92,8 @@ def load_wrapper(pp, fun):
""" """
pp.load_cells(keys=["pos", "vel", "dx", "rho"]) pp.load_cells(keys=["pos", "vel", "dx", "rho"])
pp.coldens("z") pp.coldens("z")
res = fun(pp) res = fun(pp)
pp.unload_cells() pp.unload_cells()
pp.unload_parts()
del pp.dm
del pp.gas
del pp.stars
return res return res