#!/usr/bin/python2 # -*- coding:utf-8 -*- from __future__ import division import numpy as np # ---- this section is usefull everytime ---- import os, sys sys.path.append('../libs') from evaluation import Plotter filename = os.path.splitext(os.path.basename(__file__))[0] p = Plotter(show=True, save=True, pgf=False, name=filename, directory='') # ------------------------------------------- # ==== DEFINITIONS ==== # ==== FUNCTIONS ==== # ==== CALCULATION ==== # ==== PLOTTING ==== p.new(title=u'Titlename') p.plot(np.linspace(0, 10, 100), np.linspace(0, 10, 100)**2, '+-', label=u'Label % *.2f' % (6, 0.42)) p.make()
#!/usr/bin/python2 # -*- coding:utf-8 -*- from __future__ import division import numpy as np # ---- this section is usefull everytime ---- import os, sys sys.path.append('../libs') from evaluation import Plotter filename = os.path.splitext(os.path.basename(__file__))[0] p = Plotter(show = True, save = True, pgf = False, name=filename, directory = '') # ------------------------------------------- # ==== DEFINITIONS ==== # ==== FUNCTIONS ==== # ==== CALCULATION ==== # ==== PLOTTING ==== p.new(title=u'Titlename') p.plot(np.linspace(0,10,100), np.linspace(0,10,100)**2, '+-', label=u'Label % *.2f' % (6,0.42)) p.make()
def printmoon(traj, title_in): p.new(title=title_in) p.plot(traj[:, 0, 2] - traj[:, 0, 1], traj[:, 1, 2] - traj[:, 1, 1], label="Moon") print name # 3.1 simulate and plot the trajectories of the different particles for one year, dt = 0.0001 traj_euler = simsys(step_eulersym, 0.0001) printsys(traj_euler, name, "euler scheme, dt=0.0001a") # moon in rest frame of earth with different time steps dt traj_euler2 = simsys(step_eulersym, 0.001) traj_euler3 = simsys(step_eulersym, 0.01) p.new(title="moon in rest frame of earth, different dts") p.plot(traj_euler[:, 0, 2] - traj_euler[:, 0, 1], traj_euler[:, 1, 2] - traj_euler[:, 1, 1], label="dt = 0.0001a") p.plot(traj_euler2[:, 0, 2] - traj_euler2[:, 0, 1], traj_euler2[:, 1, 2] - traj_euler2[:, 1, 1], label="dt = 0.001a") p.plot(traj_euler3[:, 0, 2] - traj_euler3[:, 0, 1], traj_euler3[:, 1, 2] - traj_euler3[:, 1, 1], label="dt = 0.01a") # 3.2 integrators: simulate and plot trajectories of moon in rest frame of earth for different integrators traj_euler = simsys(step_euler, 0.01) traj_eulersym = simsys(step_eulersym, 0.01) traj_vv = simsysvv(0.01) p.new(title="moon in rest frame of earth, dt=0.1a") p.plot(traj_euler[:, 0, 2] - traj_euler[:, 0, 1], traj_euler[:, 1, 2] - traj_euler[:, 1, 1], label="euler") p.plot( traj_eulersym[:, 0, 2] - traj_eulersym[:, 0, 1], traj_eulersym[:, 1, 2] - traj_eulersym[:, 1, 1], label="symplectic euler",
p.plot(traj[:, 0, 2] - traj[:, 0, 1], traj[:, 1, 2] - traj[:, 1, 1], label='Moon') print name # 3.1 simulate and plot the trajectories of the different particles for one year, dt = 0.0001 traj_euler = simsys(step_eulersym, 0.0001) printsys(traj_euler, name, 'euler scheme, dt=0.0001a') # moon in rest frame of earth with different time steps dt traj_euler2 = simsys(step_eulersym, 0.001) traj_euler3 = simsys(step_eulersym, 0.01) p.new(title='moon in rest frame of earth, different dts') p.plot(traj_euler[:, 0, 2] - traj_euler[:, 0, 1], traj_euler[:, 1, 2] - traj_euler[:, 1, 1], label='dt = 0.0001a') p.plot(traj_euler2[:, 0, 2] - traj_euler2[:, 0, 1], traj_euler2[:, 1, 2] - traj_euler2[:, 1, 1], label='dt = 0.001a') p.plot(traj_euler3[:, 0, 2] - traj_euler3[:, 0, 1], traj_euler3[:, 1, 2] - traj_euler3[:, 1, 1], label='dt = 0.01a') # 3.2 integrators: simulate and plot trajectories of moon in rest frame of earth for different integrators traj_euler = simsys(step_euler, 0.01) traj_eulersym = simsys(step_eulersym, 0.01) traj_vv = simsysvv(0.01)
def calc(vw = np.array([0.,0.]), gamma = 0.): global dt traj = np.array([[0.,0.]]) vel = np.array([[50.,50.]]) t = 0 while (traj[-1,1] >= 0): x, v = step_euler(traj[-1],vel[-1],compute_forces(traj[-1],vel[-1],vw, gamma)) traj = np.vstack((traj,x)) vel = np.vstack((traj,v)) t += dt return traj, vel, t # ==== CALCULATION ==== traj_no_fric, vel_no_fric, t_no_fric = calc([0.,0.], 0.) traj_with_fric_vw0, vel_with_fric_vw0, t_with_fric_vw0 = calc([0.,0.], 0.1) traj_with_fric_vw50, vel_with_fric_vw50, t_with_fric_vw50 = calc([-50.,0.], 0.1) vwvarious = [] for vw in np.linspace(-300,10,10): vwvarious.append([vw, calc([vw,0.], 0.1)[0]]) # ==== PLOTTING ==== p.new(title=u'Trajectories of a cannonball') p.plot(traj_no_fric[:,0], traj_no_fric[:,1], 'r+-', label=u'no friction \n flying time: %f s' % (t_no_fric)) p.plot(traj_with_fric_vw0[:,0], traj_with_fric_vw0[:,1], 'b+-', label=u'with friction, no wind \n flying time: %f s' % (t_with_fric_vw0)) p.plot(traj_with_fric_vw50[:,0], traj_with_fric_vw50[:,1], 'g+-', label=u'with friction, strong wind \n flying time: %f s' % (t_with_fric_vw50)) p.new(title=u'Trajectories of a cannonball at various wind speeds vw') for vw,traj in vwvarious: p.plot(traj[:,0], traj[:,1], '+-', label=u'vw =% *.2f' % (6,vw)) p.make()