Table of Contents


orbintv - integrating single stellar orbit with variable timestep


orbintv in=orbit out=orbit [parameter=value]


orbintv will integrate a stellar orbit using a higher order variable timestep. A number of constant timestepping algorithms are implemented in orbint(1NEMO) .

Currently two choices for the integratore can be made: mode=dopri5 uses an explicit Runge-Kutta method of order (4) 5 due to Dormand & Prince with step size control and dense output. mode=dop853 uses an explicit Runge-Kutta method of order 8(5,3) due to Dormand & Prince with step size control and dense output.

Non-rotating potentials are also supported, but only with the rotation axis defined along the Z-axis.


The following parameters are recognized in any order if the keyword is also given:
input file, in orbit(5NEMO) format [no default]
output file, will be in orbit(5NEMO) format [no default]
Output timestep.
Stop time [default: 10].
initial guess for the time step to be taken. [default: 0.01].
number of output timesteps when diagnostics are checked and output to stderr. Use 0 when never. [default: 0].
name of file of potential(5NEMO) descriptor. If no name given, the potential name of the input orbit is used. [default: none].
List of parameters to the potential descriptor. The first parameter MUST be the pattern speed in the x-y plane. The remaining parameters are used by the _inipotential() routine in the potential descriptor. [default: none - use default from input orbit].
name of an optional datafile to the potential descriptor. This might be an N-body snapshot or list of spline fit coefficients etc. [default: none - use default from input orbit].
Specify the integration mode. Any one of dopri5, dop853 [Default: dopri5].
Tolerance used by the integrators to control time stepping. Negative numbers will cause this number to raised to the power 10. [Default: -7]


The following example launches a particle from the Y axis (at y=1) in the X direction (speed 0.4) in a plummer potential. Although the 6D initial conditions are fully specified, so a potential (potname=) is not needed, it is tagged along with the orbit, such that the orbint integrator will use it. The integrated orbit is then passed on to a simple plotting program, which plots an X-Y view of this 2D orbit.
mkorbit - x=0 y=1 z=0 vx=0.4 vy=0 vz=0 potname=plummer |\
     orbintv - - tstop=10 dt=0.05 |\
     orbplot -
Using pattern speed = 0
pos: 0.000000 1.000000 0.000000  
vel: 0.400000 0.000000 0.000000  
etot: -0.627107
Pattern speed=0


For large values of the output timestep, energy conservation may not seem very good. This is a result of the dense output interpolator.

See Also

mkorbit(1NEMO) , orblist(1NEMO) , orbint(1NEMO) , potential(5NEMO) , newton0(1NEMO)


Peter Teuben (NEMO adaptation) Hairer & G. Wanner (Fortran version of core integrators) J.Colinge (C versions of the core integrators)


src/orbit/misc      orbintv.c

Update History

15-may-11    V1.0: created    PJT

Table of Contents