Single-arc Variational Equations Propagation#

For propagation of the variational equations alongside the system state, a different sort of simulator object - a VariationalEquationsSolver - has to be used. The VariationalEquationsSolver objects contain a DynamicsSimulator object, which means that they can do anything that a DynamicsSimulator can plus the added functionality of propagating variational equations.

To propagate the variational equations alongside the single-arc system state, the create_variational_equations_solver() function should be used, which returns a SingleArcVariationalSimulator, derived of the VariationalEquationsSolver base class should be used. With the basic simulation setup (system of bodies, integrator settings, propagator settings) and the parameter settings for the variational equations, a variational equations solver can be set up. The setup works similarly to the normal dynamics simulator:

variational_equations_solver = numerical_simulation.create_variational_equations_solver(
        bodies, propagator_settings,
        estimation_setup.create_parameters_to_estimate(parameter_settings, bodies)
        )

The state history, state transition matrices, and sensitivity matrices can then be extracted:

states = variational_equations_solver.state_history
state_transition_matrices = variational_equations_solver.state_transition_matrix_history
sensitivity_matrices = variational_equations_solver.sensitivity_matrix_history

For a complete example of propagation and usage of the variational equations, please see the tutorial Linear sensitivity analysis of perturbed orbit.