3. Simulator Set-Up¶
One of the core elements of the Tudat libraries is its simulator framework. The goal of this page is discuss the implementation of such framework as well as the numerous options available. The top-level framework of the simulator is shown below:
The top-element in such framework is the DynamicsSimulator
, which is in charge of propagating the equations of motion using the environment and acceleration models discussed in Environment Set-up and Setting up State Derivative Models, respectively. The orbit propation is done according to the specified IntegratorSettings
and the PropagatorSettings
, which are discussed in detail in Integrator Settings and Propagator Settings: Basics.
As shown in the figure above, there are various types of IntegratorSettings
and PropagatorSettings
depending on the particularities of the application at hand. For convenience, we list the types of dynamics that can be propagated, and their associated PropagatorSettings
:
- Propagator Settings
- Translational dynamics:
TranslationalStatePropagatorSettings
This derived class defines the settings to propagate the translational dynamics.
- Translational dynamics:
- Rotational dynamics:
RotationalStatePropagatorSettings
This derived class defines the settings to propagate the rotational dynamics.
- Rotational dynamics:
- Mass variations:
MassPropagationSettings
This derived class defines the settings to propagate the mass of a body.
- Mass variations:
- User-defined dynamics type:
CustomStatePropagatorSettings
This derived class allows the propagation of user-defined dynamics.
- User-defined dynamics type:
- Multiple types of dynamics
MultiTypePropagatorSettings
This derived class allows to propagate (in a single-arc) simultaneously any or all of the various propagator types defined above.
- Multiple types of dynamics
- Multi-arc dynamics
MultiArcPropagatorSettings
This derived class allows to propagate the dynamics over multiple arcs, using any of the above settings for the constituent arcs.
- Multi-arc dynamics
Similarly, the following integrators, and associated derived classes of IntegratorSettings
(if applicable), are available:
- Integrator Settings
Euler integrator: (no derived class)
Runge-Kutta 4 integrator: (no derived class)
Variable step-size Runge-Kutta integrators:
RungeKuttaVariableStepSizeSettings
. The RKF4(5), RKF5(6), RKF7(8) and DOPRI8(7) coefficient sets are available.Variable step-size Adams-Bashforth-Moulton integrator:
AdamsBashforthMoultonSettings
Variable step-size, fixed order, Bulirsch-Stoer integrator:
BulirschStoerIntegratorSettings
The reader is referred to the following sections to examine in detail how to create these objects, as well the other settings to propagate the dynamics
- 3.1. Integrator Settings
- 3.2. Propagator Settings: Basics
- 3.3. Propagator Settings: Dependent Variables
- 3.4. Propagator Settings: Termination Settings
- 3.5. Propagator Settings: Conventional vs. Propagated Coordinates
- 3.6. Performing State Propagation
- 3.7. Performing Variational Equations Propagation
- 3.8. Time and State Templates