# 5.1. Integrator Settings¶

As the name suggests, the integrator settings tell the dynamics simulator how to integrate numerically the equations of motion that govern the orbital mechanics to simulate. The IntegratorSettings are defined using four derived classes, depending on whether the integrator to be used is a fixed step-size integrator or a variable step-size integrator.

class IntegratorSettings

This class is used to define the settings for fixed step-size integration. The constructor for this base class is:

IntegratorSettings<TimeType>( integratorType,
simulationStartEpoch,
fixedStepSize )


where:

• TimeType

Template argument used to set the precision of the time, in general double is used. For some application where a high precision is required this can be changed to e.g. long double.

• integratorType

AvailableIntegrators which defines the fixed step-size integrator type to be used. Currently the only options available are euler and rungeKutta4.

• simulationStartEpoch

TimeType that defines the simulation’s start epoch.

• fixedStepSize

TimeType that defines the fixed step-size to be used either by the euler or the rungeKutta4 numerical integrator.

class RungeKuttaVariableStepSizeSettings

This class is used to define the settings for variable step-size integration. The constructor for this derived class is:

RungeKuttaVariableStepSizeSettings<TimeType>( integratorType,
simulationStartEpoch,
initialTimeStep,
coefficientSet,
minimumStepSize,
maximumStepSize,
relativeErrorTolerence,
absoluteErrorTolerence )


where:

• TimeType

Template argument used to set the precision of the time, in general double is used. For some application where a high precision is required this can be changed to e.g. long double.

• integratorType

AvailableIntegrators which defines the fixed step-size integrator type to be used. The only option available is rungeKuttaVariableStepSize.

• simulationStartEpoch

TimeType that defines the simulation’s initial time. It must be a double variable-type.

• initialTimeStep

TimeType that defines the initial step-size to be used either by the rungeKuttaVariableStepSize numerical integrator. It must be a double variable-type.

• coefficientSet

RungeKuttaCoefficients::CoefficientSets that defines the coefficient set to be used by the rungeKuttaVariableStepSize numerical integrator. The list of available coefficient sets is given in Integrators.

• minimumStepSize

TimeType that defines the minimum step-size that the rungeKuttaVariableStepSize numerical integrator can take.

• maximumStepSize

TimeType that defines the maximum step-size that the rungeKuttaVariableStepSize numerical integrator can take.

• relativeErrorTolerance

TimeType that defines the relative error tolerance for step size control of the rungeKuttaVariableStepSize numerical integrator.

• absoluteErrorTolerance

TimeType that defines the absolute error tolerance for step size control of the rungeKuttaVariableStepSize numerical integrator.

class BulirschStoerIntegratorSettings

This class is used to define the settings for variable step-size integration using the Bulirsch-Stoer method. The constructor for this derived class is:

BulirschStoerIntegratorSettings<TimeType>(initialTime,
initialTimeStep,
extrapolationSequence,
maximumNumberOfSteps,
minimumStepSize,
maximumStepSize,
relativeErrorTolerence,
absoluteErrorTolerence )


where:

• TimeType

Template argument used to set the precision of the time, in general double is used. For some application where a high precision is required this can be changed to e.g. long double.

• initialTime

TimeType that defines the simulation’s initial time. It must be a double variable-type.

• initialTimeStep

TimeType that defines the initial step-size to be used either by the BulirschStoerIntegrator numerical integrator. It must be a double variable-type.

• extrapolationSequence

ExtrapolationMethodStepSequences that defines the extrapolation sequence that is used for the BulirschStoerIntegrator numerical integrator.

• maximumNumberOfSteps

Number of integrations that are used for a single extrapolation. It must be a int variable-type.

• minimumStepSize

TimeType that defines the minimum step-size that the BulirschStoerIntegrator numerical integrator can take.

• maximumStepSize

TimeType that defines the maximum step-size that the BulirschStoerIntegrator numerical integrator can take.

• relativeErrorTolerance

TimeType that defines the relative error tolerance for step size control of the BulirschStoerIntegrator numerical integrator.

• absoluteErrorTolerance

TimeType that defines the absolute error tolerance for step size control of the BulirschStoerIntegrator numerical integrator.

class AdamsBashforthMoultonSettings

This class is used to define the settings for variable step-size integration using the Adams-Bashfort-Moulton method. The constructor for this derived class is:

AdamsBashforthMoultonSettings<TimeType>(initialTime,
initialTimeStep,
minimumStepSize,
maximumStepSize,
relativeErrorTolerence,
absoluteErrorTolerence,
minimumOrder,
maximumOrder )


where:

• TimeType

Template argument used to set the precision of the time, in general double is used. For some application where a high precision is required this can be changed to e.g. long double.

• initialTime

TimeType that defines the simulation’s initial time. It must be a double variable-type.

• initialTimeStep

TimeType that defines the initial step-size to be used either by the AdamsBashforthMoultonIntegrator numerical integrator. It must be a double variable-type.

• minimumStepSize

TimeType that defines the minimum step-size that the AdamsBashforthMoultonIntegrator numerical integrator can take.

• maximumStepSize

TimeType that defines the maximum step-size that the AdamsBashforthMoultonIntegrator numerical integrator can take.

• relativeErrorTolerance

TimeType that defines the relative error tolerance for step size control of the AdamsBashforthMoultonIntegratorr numerical integrator.

• absoluteErrorTolerance

TimeType that defines the absolute error tolerance for step size control of the AdamsBashforthMoultonIntegrator numerical integrator.

• minimumOrder

The minimum order of the integrator, the default value is 6. It must be a int variable-type.

• maximumOrder

The maximum order of the integrator, the default value is 11. It must be a int variable-type.

Note

Aside from the arguments listed in this page, the IntegratorSettings class and derived classes described here offer a number of optional arguments. The reader is advised to examine the Doxygen documentation included in the code for further details.

Warning

Make sure that a compatible integratorType is selected, otherwise a runtime exception will be thrown.