From 209cb0aabbfb7d06b2a1ddca970027a2889882b0 Mon Sep 17 00:00:00 2001 From: Thibault Barnouin Date: Fri, 7 Jan 2022 11:28:22 +0100 Subject: [PATCH] add parameter to save to gif or not --- lib/LeapFrog.py | 10 +++++++--- lib/hermite.py | 10 +++++++--- main.py | 5 +++-- main_concurrent.py | 7 ++++--- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/LeapFrog.py b/lib/LeapFrog.py index ef3a388..43e943e 100644 --- a/lib/LeapFrog.py +++ b/lib/LeapFrog.py @@ -33,7 +33,7 @@ def LP(dyn_syst, dt): Drift(dyn_syst, dt / 2) dyn_syst.time = dyn_syst.time + dt -def leapfrog(dyn_syst, bin_syst, duration, dt, recover_param=False, display=False, savename=None): +def leapfrog(dyn_syst, bin_syst, duration, dt, recover_param=False, display=False, savename=None, gif=False): if display: try: system("mkdir tmp") @@ -56,11 +56,15 @@ def leapfrog(dyn_syst, bin_syst, duration, dt, recover_param=False, display=Fals ecc[j] = bin_syst.ecc if display and j % 10 == 0: + if gif: + step = j + else: + step = None # display progression if len(dyn_syst.bodylist) == 1: - d.on_running(dyn_syst, step=j, label="{0:.2f} years".format(j*dt/yr)) + d.on_running(dyn_syst, step=step, label="{0:.2f} years".format(j*dt/yr)) else: - d.on_running(dyn_syst, step=j, label="{0:.2f} years".format(j*dt/yr)) + d.on_running(dyn_syst, step=step, label="{0:.2f} years".format(j*dt/yr)) if display: d.close() if not savename is None: diff --git a/lib/hermite.py b/lib/hermite.py index ca1e510..8d1cfdd 100644 --- a/lib/hermite.py +++ b/lib/hermite.py @@ -79,7 +79,7 @@ def HPC(dyn_syst, dt): # update position and velocities of bodies in system wit dyn_syst.time = dyn_syst.time + dt -def hermite(dyn_syst, bin_syst, duration, dt, recover_param=False, display=False, savename=None): +def hermite(dyn_syst, bin_syst, duration, dt, recover_param=False, display=False, savename=None, gif=False): if display: try: system("mkdir tmp") @@ -103,11 +103,15 @@ def hermite(dyn_syst, bin_syst, duration, dt, recover_param=False, display=False ecc[j] = bin_syst.ecc if display and j % 10 == 0: + if gif: + step = j + else: + step = None # display progression if len(dyn_syst.bodylist) == 1: - d.on_running(dyn_syst, step=j, label="{0:.2f} yearq".format(j*dt)) + d.on_running(dyn_syst, step=step, label="{0:.2f} years".format(j*dt/yr)) else: - d.on_running(dyn_syst, step=j, label="{0:.2f} years".format(j*dt)) + d.on_running(dyn_syst, step=step, label="{0:.2f} years".format(j*dt/yr)) if display: d.close() if not savename is None: diff --git a/main.py b/main.py index ac213e3..a1245c2 100755 --- a/main.py +++ b/main.py @@ -32,6 +32,7 @@ def main(): integrator = "leapfrog" n_bodies = 3 display = False + gif = False savename = "{0:d}bodies_{1:s}".format(n_bodies, integrator) #simulation start @@ -46,9 +47,9 @@ def main(): if i != 0: display = False if integrator.lower() in ['leapfrog', 'frogleap', 'frog']: - E0, L0, sma, ecc = leapfrog(dyn_syst, bin_syst, duration, step0, recover_param=True, display=display, savename=savename) + E0, L0, sma, ecc = leapfrog(dyn_syst, bin_syst, duration, step0, recover_param=True, display=display, savename=savename, gif=gif) elif integrator.lower() in ['hermite','herm']: - E0, L0, sma, ecc = hermite(dyn_syst, bin_syst, duration, step0, recover_param=True, display=display, savename=savename) + E0, L0, sma, ecc = hermite(dyn_syst, bin_syst, duration, step0, recover_param=True, display=display, savename=savename, gif=gif) E.append(E0) L.append(L0) diff --git a/main_concurrent.py b/main_concurrent.py index ea9ac29..94e8f14 100755 --- a/main_concurrent.py +++ b/main_concurrent.py @@ -33,7 +33,8 @@ def main(): step = np.sort(step)[::-1] integrator = "leapfrog" n_bodies = 3 - display = False + display = True + gif = False savename = "{0:d}bodies_psi45_{1:s}".format(n_bodies, integrator) bodies, bodysyst = [],[] @@ -50,9 +51,9 @@ def main(): if i != 0: display = False if integrator.lower() in ['leapfrog', 'frogleap', 'frog']: - future_ELae.append(exe.submit(leapfrog, bodysyst[i][1], bodysyst[i][0], duration, step0, recover_param=True, display=display, savename=savename)) + future_ELae.append(exe.submit(leapfrog, bodysyst[i][1], bodysyst[i][0], duration, step0, recover_param=True, display=display, savename=savename, gif=gif)) elif integrator.lower() in ['hermite','herm']: - future_ELae.append(exe.submit(hermite, bodysyst[i][1], bodysyst[i][0], duration, step0, recover_param=True, display=display, savename=savename)) + future_ELae.append(exe.submit(hermite, bodysyst[i][1], bodysyst[i][0], duration, step0, recover_param=True, display=display, savename=savename, gif=gif)) E, L, sma, ecc = [], [], [], [] for future in future_ELae: