[galaxy] clean memory when leaving + local sfr

This commit is contained in:
Noe Brucy
2021-05-24 15:58:52 +02:00
parent befe134abf
commit ce5cefa125
+8 -2
View File
@@ -143,14 +143,14 @@ def get_time_from_relax(pp):
return tfromrelax return tfromrelax
def get_last_sfr(pp): def get_last_sfr(pp, r=4, dr=0.5):
pp.load_parts() pp.load_parts()
try: try:
epoch = pp.parts["epoch"].copy() epoch = pp.parts["epoch"].copy()
epoch *= pp.info["unit_time"].express(U.year) epoch *= pp.info["unit_time"].express(U.year)
mass = pp.parts["mass"].copy() mass = pp.parts["mass"].copy()
mass *= pp.info["unit_mass"].express(U.Msun) mass *= pp.info["unit_mass"].express(U.Msun)
mask = epoch > 0 mask = (epoch > 0) & (np.abs(pp.parts["r"] - r) < dr)
masstot, time = np.histogram(epoch[mask], weights=mass[mask], bins=100) masstot, time = np.histogram(epoch[mask], weights=mass[mask], bins=100)
dtime = np.diff(time) dtime = np.diff(time)
sfr = masstot[-1] / dtime[-1] sfr = masstot[-1] / dtime[-1]
@@ -181,4 +181,10 @@ def allinone(pp):
for key in ring: for key in ring:
for i, fluid in enumerate(["gas", "dm", "stars"]): for i, fluid in enumerate(["gas", "dm", "stars"]):
res[f"{key}_{fluid}"] = ring[key][i] res[f"{key}_{fluid}"] = ring[key][i]
pp.unload_cells()
pp.unload_parts()
del pp.dm
del pp.gas
del pp.stars
return res return res