1
0

add parameter to save to gif or not

This commit is contained in:
Thibault Barnouin
2022-01-07 11:28:22 +01:00
parent deaf53f100
commit 209cb0aabb
4 changed files with 21 additions and 11 deletions

View File

@@ -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:

View File

@@ -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:

View File

@@ -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)

View File

@@ -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: