integrator
#
This module provides the functionality for creating integrator settings.
Functions#

Print the Butcher tableau of a given coefficient set. 

Creates the settings for the RungeKutta fixed step size integrator. 

Creates the settings for the RungeKutta variable step size integrator with scalar tolerances. 
Creates the settings for the RungeKutta variable step size integrator with vector tolerances. 


Creates the settings for the BulirschStoer integrator. 

Creates the settings for the AdamsBashforthMoulton integrator. 
 print_butcher_tableau(arg0: tudatpy.kernel.numerical_simulation.propagation_setup.integrator.CoefficientSets) None #
Print the Butcher tableau of a given coefficient set.
 Parameters
coefficient_set (CoefficientSets) – Coefficient set of which the Butcher tableau will be printed.
 runge_kutta_fixed_step_size(initial_time: float, initial_time_step: float, coefficient_set: tudatpy.kernel.numerical_simulation.propagation_setup.integrator.CoefficientSets, order_to_use: tudatpy.kernel.numerical_simulation.propagation_setup.integrator.OrderToIntegrate = <OrderToIntegrate.lower: 0>, save_frequency: int = 1, assess_termination_on_minor_steps: bool = False) tudatpy.kernel.numerical_simulation.propagation_setup.integrator.IntegratorSettings #
Creates the settings for the RungeKutta fixed step size integrator.
Factory function to create settings for the RungeKutta integrator with a constant step size. Different coefficient sets (Butcher’s tableau) can be used (see the CoefficientSets enum).
 Parameters
initial_time (float) – Start time (independent variable) of numerical integration.
initial_time_step (float) – Initial time step to be used.
coefficient_set (CoefficientSets) – Coefficient set (Butcher’s tableau) to be used in the integration.
order_to_use (OrderToIntegrate, default=OrderToIntegrate.lower) – If the coefficient set is supposed to be for variable step sizes (with an embedded method of a different order), this parameter can be used to set the order that will be used.
save_frequency (int, default=1) – Frequency at which to save the numerical integrated states (expressed per unit integration time step, with n = saveFrequency, so n = 2 means that the state is saved every two integration steps).
assess_termination_on_minor_steps (bool, default=false) – Whether the propagation termination conditions should be evaluated during the intermediate substeps of the integrator (true) or only at the end of each integration step (false).
 runge_kutta_variable_step_size(initial_time: float, initial_time_step: float, coefficient_set: tudatpy.kernel.numerical_simulation.propagation_setup.integrator.CoefficientSets, minimum_step_size: float, maximum_step_size: float, relative_error_tolerance: float, absolute_error_tolerance: float, save_frequency: int = 1, assess_termination_on_minor_steps: bool = False, safety_factor: float = 0.8, maximum_factor_increase: float = 4.0, minimum_factor_increase: float = 0.1, throw_exception_if_minimum_step_exceeded: bool = True) tudatpy.kernel.numerical_simulation.propagation_setup.integrator.IntegratorSettings #
Creates the settings for the RungeKutta variable step size integrator with scalar tolerances.
Factory function to create settings for the RungeKutta variable step size integrator with scalar tolerances. For this integrator, the step size is varied based on the tolerances and safety factor provided. The tolerance is composed of an absolute and a relative part. Different coefficient sets (Butcher’s tableau) can be used (see the CoefficientSets enum).
 Parameters
initial_time (float) – Start time (independent variable) of numerical integration.
initial_time_step (float) – Initial time step to be used.
coefficient_set (CoefficientSets) – Coefficient set (Butcher’s tableau) to be used in the integration.
minimum_step_size (float) – Minimum time step to be used during the integration.
maximum_step_size (float) – Maximum time step to be used during the integration.
relative_error_tolerance (numpy.ndarray[numpy.float64[m, n]]) – Relative vector tolerance to adjust the time step.
absolute_error_tolerance (numpy.ndarray[numpy.float64[m, n]]) – Absolute vector tolerance to adjust the time step.
save_frequency (int, default=1) – Frequency at which to save the numerical integrated states (expressed per unit integration time step, with n = saveFrequency, so n = 2 means that the state is saved every two integration steps).
assess_termination_on_minor_steps (bool, default=false) – Whether the propagation termination conditions should be evaluated during the intermediate substeps of the integrator (true) or only at the end of each integration step (false).
safety_factor (float, default=0.8) – Safety factor used in the step size control.
maximum_factor_increase (float, default=4.0) – Maximum increase between consecutive time steps, expressed as the factor between new and old step size.
minimum_factor_increase (float, default=0.1) – Minimum increase between consecutive time steps, expressed as the factor between new and old step size.
throw_exception_if_minimum_step_exceeded (bool, default=true) – If set to false, the variable step integrator will use the minimum step size specified when the algorithm computes the optimum one to be lower, instead of throwing an exception.
 Returns
RungeKuttaVariableStepSettingsScalarTolerances object.
 Return type
RungeKuttaVariableStepSettingsScalarTolerances
 runge_kutta_variable_step_size_vector_tolerances(initial_time: float, initial_time_step: float, coefficient_set: tudatpy.kernel.numerical_simulation.propagation_setup.integrator.CoefficientSets, minimum_step_size: float, maximum_step_size: float, relative_error_tolerance: numpy.ndarray[numpy.float64[m, n]], absolute_error_tolerance: numpy.ndarray[numpy.float64[m, n]], save_frequency: int = 1, assess_termination_on_minor_steps: bool = False, safety_factor: float = 0.8, maximum_factor_increase: float = 4.0, minimum_factor_increase: float = 0.1, throw_exception_if_minimum_step_exceeded: bool = True) tudatpy.kernel.numerical_simulation.propagation_setup.integrator.IntegratorSettings #
Creates the settings for the RungeKutta variable step size integrator with vector tolerances.
Factory function to create settings for the RungeKutta variable step size integrator with vector tolerances. For this integrator, the step size is varied based on the tolerances and safety factor provided. The tolerance is composed of an absolute and a relative part. Different coefficient sets (Butcher’s tableau) can be used (see the CoefficientSets enum).
 Parameters
initial_time (float) – Start time (independent variable) of numerical integration.
initial_time_step (float) – Initial time step to be used.
coefficient_set (CoefficientSets) – Coefficient set (Butcher’s tableau) to be used in the integration.
minimum_step_size (float) – Minimum time step to be used during the integration.
maximum_step_size (float) – Maximum time step to be used during the integration.
relative_error_tolerance (numpy.ndarray[numpy.float64[m, n]]) – Relative vector tolerance to adjust the time step.
absolute_error_tolerance (numpy.ndarray[numpy.float64[m, n]]) – Absolute vector tolerance to adjust the time step.
save_frequency (int, default=1) – Frequency at which to save the numerical integrated states (expressed per unit integration time step, with n = saveFrequency, so n = 2 means that the state is saved every two integration steps).
assess_termination_on_minor_steps (bool, default=false) – Whether the propagation termination conditions should be evaluated during the intermediate substeps of the integrator (true) or only at the end of each integration step (false).
safety_factor (float, default=0.8) – Safety factor used in the step size control.
maximum_factor_increase (float, default=4.0) – Maximum increase between consecutive time steps, expressed as the factor between new and old step size.
minimum_factor_increase (float, default=0.1) – Minimum increase between consecutive time steps, expressed as the factor between new and old step size.
throw_exception_if_minimum_step_exceeded (bool, default=true) – If set to false, the variable step integrator will use the minimum step size specified when the algorithm computes the optimum one to be lower, instead of throwing an exception.
 Returns
RungeKuttaVariableStepSizeSettingsVectorTolerances object.
 Return type
 bulirsch_stoer(initial_time: float, initial_time_step: float, extrapolation_sequence: tudatpy.kernel.numerical_simulation.propagation_setup.integrator.ExtrapolationMethodStepSequences, maximum_number_of_steps: int, minimum_step_size: float, maximum_step_size: float, relative_error_tolerance: float = 1e12, absolute_error_tolerance: float = 1e12, save_frequency: int = 1, assess_termination_on_minor_steps: bool = False, safety_factor: float = 0.7, maximum_factor_increase: float = 10.0, minimum_factor_increase: float = 0.1) tudatpy.kernel.numerical_simulation.propagation_setup.integrator.IntegratorSettings #
Creates the settings for the BulirschStoer integrator.
Factory function to create settings for the BulirschStoer integrator. For this integrator, the step size is varied based on the tolerances and safety factor provided. The tolerance is composed of an absolute and a relative part. Different extrapolation sequences can be used (see the ExtrapolationMethodStepSequences enum).
 Parameters
initial_time (float) – Start time (independent variable) of numerical integration.
initial_time_step (float) – Initial time step to be used.
extrapolation_sequence (ExtrapolationMethodStepSequences) – Extrapolation sequence to be used in the integration.
maximum_number_of_steps (int) – Number of entries in the sequence (e.g., number of integrations used for a single extrapolation).
minimum_step_size (float) – Minimum time step to be used during the integration.
maximum_step_size (float) – Maximum time step to be used during the integration.
relative_error_tolerance (float, default=1.0E12) – Relative tolerance to adjust the time step.
absolute_error_tolerance (float, default=1.0E12) – Relative tolerance to adjust the time step.
save_frequency (int, default=1) – Frequency at which to save the numerical integrated states (expressed per unit integration time step, with n = saveFrequency, so n = 2 means that the state is saved every two integration steps).
assess_termination_on_minor_steps (bool, default=false) – Whether the propagation termination conditions should be evaluated during the intermediate substeps of the integrator (true) or only at the end of each integration step (false).
safety_factor (float, default=0.7) – Safety factor used in the step size control.
maximum_factor_increase (float, default=10.0) – Maximum increase between consecutive time steps, expressed as the factor between new and old step size.
minimum_factor_increase (float, default=0.1) – Minimum increase between consecutive time steps, expressed as the factor between new and old step size.
 Returns
BulirschStoerIntegratorSettings object.
 Return type
 adams_bashforth_moulton(initial_time: float, initial_time_step: float, minimum_step_size: float, maximum_step_size: float, relative_error_tolerance: float = 1e12, absolute_error_tolerance: float = 1e12, minimum_order: int = 6, maximum_order: int = 11, save_frequency: int = 1, assess_termination_on_minor_steps: bool = False, bandwidth: float = 200.0) tudatpy.kernel.numerical_simulation.propagation_setup.integrator.IntegratorSettings #
Creates the settings for the AdamsBashforthMoulton integrator.
Factory function to create settings for the AdamsBashforthMoulton integrator. For this integrator, the step size is varied based on the tolerances and safety factor provided. The tolerance is composed of an absolute and a relative part.
 Parameters
initial_time (float) – Start time (independent variable) of numerical integration.
initial_time_step (float) – Initial time step to be used.
minimum_step_size (float) – Minimum time step to be used during the integration.
maximum_step_size (float) – Maximum time step to be used during the integration.
relative_error_tolerance (float, default=1.0E12) – Relative tolerance to adjust the time step.
absolute_error_tolerance (float, default=1.0E12) – Relative tolerance to adjust the time step.
minimum_order – Minimum order of the integrator.
maximum_order – Maximum order of the integrator.
save_frequency (int, default=1) – Frequency at which to save the numerical integrated states (expressed per unit integration time step, with n = saveFrequency, so n = 2 means that the state is saved every two integration steps).
assess_termination_on_minor_steps (bool, default=false) – Whether the propagation termination conditions should be evaluated during the intermediate substeps of the integrator (true) or only at the end of each integration step (false).
bandwidth (float, default=200.0) – Maximum error factor for doubling the step size.
 Returns
AdamsBashforthMoultonSettings object.
 Return type
Enumerations#
Enumeration of integrators available with tudat. 

Coefficient sets for RungeKuttatype integrators. 

Which integrator order needs to be integrated, only for coefficient sets with an embedded order. 

Enumeration of available extrapolation method step sequences. 
 class AvailableIntegrators#
Enumeration of integrators available with tudat.
Members:
runge_kutta_fixed_step_size_type
runge_kutta_variable_step_size_type
bulirsch_stoer_type
adams_bashforth_moulton_type
 property name#
 class CoefficientSets#
Coefficient sets for RungeKuttatype integrators.
Coefficient sets for RungeKuttatype integrators. The coefficients are defined in a Butcher Tableau, with an coefficient set yielding an x(y) method yielding an integrator with global truncation error of \(O(\Delta t^{x})\). Some of these coefficients also contain an embedded integrator of \(O(\Delta t^{y})\) for step size control.
Members:
euler_forward :
Coefficients for the classic forward Euler method
rk_4 :
Coefficients for the original RungeKutta method of order 4
explicit_mid_point :
Coefficients for the explicit midpoint method
explicit_trapezoid_rule :
Coefficients for the explicit trapezoid rule, also called Heun’s method or improved Euler’s method
ralston :
Coefficients for Ralston’s method
rk_3 :
Coefficients for the RungeKutta method of order 3
ralston_3 :
Coefficients for Ralston’s thirdorder method
SSPRK3 :
Coefficients for the Strong Stability Preserving RungeKutta thirdorder method
ralston_4 :
Coefficients for Ralston’s fourthorder method
three_eight_rule_rk_4 :
Coefficients for the classic Runge Kutta 3/8rule fourthorder method
heun_euler :
Coefficients for the Heun’s method of order 2 with an embedded Euler method of order 1
rkf_12 :
Coefficients for the RungeKuttaFehlberg method of order 2 with an embedded 1st order
rkf_45 :
Coefficients for the RungeKuttaFehlberg method of order 5 with an embedded 4th order
rkf_56 :
Coefficients for the RungeKuttaFehlberg method of order 6 with an embedded 5th order
rkf_78 :
Coefficients for the RungeKuttaFehlberg method of order 8 with an embedded 7th order
rkdp_87 :
Coefficients for the DormandPrince method of order 7 with an embedded 8th order
rkf_89 :
Coefficients for the RungeKuttaFehlberg method of order 9 with an embedded 8th order
rkv_89 :
Coefficients for the RungeKuttaVerner method of order 9 with an embedded 8th order
rkf_108 :
Coefficients for the RungeKuttaFeagin method of order 8 with an embedded 10th order
rkf_1210 :
Coefficients for the RungeKuttaFeagin method of order 10 with an embedded 12ve order
rkf_1412 :
Coefficients for the RungeKuttaFeagin method of order 12 with an embedded 14th order
 property name#
Classes#
Functional base class to define settings for integrators. 

IntegratorSettingsderived class to define settings for Runge Kutta integrators with a fixed step size 

IntegratorSettingsderived class to define settings for Runge Kutta integrators with scalar tolerances. 

IntegratorSettingsderived class to define settings for Runge Kutta integrators with vector tolerances. 

IntegratorSettingsderived class to define settings for BulirschStoer integrator settings. 

IntegratorSettingsderived class to define settings for AdamsBashforthMoulton integrator settings. 
 class IntegratorSettings#
Functional base class to define settings for integrators.
Class to define settings for numerical integrators, for instance for use in numerical integration of equations of motion/ variational equations. This class can be used for simple integrators such as fixed step RK and Euler. Integrators that require more settings to define have their own derived class.
 class RungeKuttaFixedStepSizeSettings#
IntegratorSettingsderived class to define settings for Runge Kutta integrators with a fixed step size
 class RungeKuttaVariableStepSizeSettingsScalarTolerances#
IntegratorSettingsderived class to define settings for Runge Kutta integrators with scalar tolerances.
This class is actually derived from an intermediate class (RungeKuttaVariableStepSizeBaseSettings, not documented), which is derived directly from IntegratorSettings.
 class RungeKuttaVariableStepSizeSettingsVectorTolerances#
IntegratorSettingsderived class to define settings for Runge Kutta integrators with vector tolerances.
This class is actually derived from an intermediate class (RungeKuttaVariableStepSizeBaseSettings, not documented), which is derived directly from IntegratorSettings.
 class BulirschStoerIntegratorSettings#
IntegratorSettingsderived class to define settings for BulirschStoer integrator settings.
 class AdamsBashforthMoultonSettings#
IntegratorSettingsderived class to define settings for AdamsBashforthMoulton integrator settings.