[galaxy] clean memory when leaving + local sfr
This commit is contained in:
@@ -143,14 +143,14 @@ def get_time_from_relax(pp):
|
||||
return tfromrelax
|
||||
|
||||
|
||||
def get_last_sfr(pp):
|
||||
def get_last_sfr(pp, r=4, dr=0.5):
|
||||
pp.load_parts()
|
||||
try:
|
||||
epoch = pp.parts["epoch"].copy()
|
||||
epoch *= pp.info["unit_time"].express(U.year)
|
||||
mass = pp.parts["mass"].copy()
|
||||
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)
|
||||
dtime = np.diff(time)
|
||||
sfr = masstot[-1] / dtime[-1]
|
||||
@@ -181,4 +181,10 @@ def allinone(pp):
|
||||
for key in ring:
|
||||
for i, fluid in enumerate(["gas", "dm", "stars"]):
|
||||
res[f"{key}_{fluid}"] = ring[key][i]
|
||||
|
||||
pp.unload_cells()
|
||||
pp.unload_parts()
|
||||
del pp.dm
|
||||
del pp.gas
|
||||
del pp.stars
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user