From ce5cefa1250367dfa345402e4b2bfff67252d638 Mon Sep 17 00:00:00 2001 From: Noe Brucy Date: Mon, 24 May 2021 15:58:52 +0200 Subject: [PATCH] [galaxy] clean memory when leaving + local sfr --- galaxy.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/galaxy.py b/galaxy.py index 8055d04..3098f23 100644 --- a/galaxy.py +++ b/galaxy.py @@ -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