1
0

make leapfrog integrator as System method

This commit is contained in:
Thibault Barnouin
2021-11-06 01:23:36 +01:00
parent 6206307f30
commit 0a91802800
14 changed files with 72 additions and 104 deletions

View File

@@ -3,7 +3,6 @@
from sys import exit as sysexit
import numpy as np
import matplotlib.pyplot as plt
from lib.integrator import frogleap
from lib.objects import Body, System
globals()['G'] = 6.67e-11 #Gravitational constant in SI units
@@ -28,15 +27,15 @@ def main():
v = np.array([v1, v2, v3])
bodylist = []
for i in range(2):
for i in range(3):
bodylist.append(Body(m[i], q[i], v[i]))
dyn_syst = System(bodylist)
dyn_syst.COMShift()
duration, step = 100*3e7, 1e4
#E, L = frogleap(duration, step, dyn_syst, recover_param=True)#, display=True)
E, L = dyn_syst.hermite(duration,step, recover_param=True)#, display=True)
E, L = dyn_syst.leapfrog(duration, step, recover_param=True, display=True)
#E, L = dyn_syst.hermite(duration,step, recover_param=True, display=True)
plt.close()
fig1 = plt.figure(figsize=(30,15))
ax1 = fig1.add_subplot(111)
ax1.plot(np.arange(E.shape[0])/duration, E, label=r"$E_m$")