integrator#

This module provides the functionality for creating integrator settings.

Functions#

print_butcher_tableau(arg0)

Print the Butcher tableau of a given coefficient set.

runge_kutta_fixed_step_size(initial_time, ...)

Creates the settings for the Runge-Kutta fixed step size integrator.

runge_kutta_variable_step_size(initial_time, ...)

Creates the settings for the Runge-Kutta variable step size integrator with scalar tolerances.

runge_kutta_variable_step_size_vector_tolerances(...)

Creates the settings for the Runge-Kutta variable step size integrator with vector tolerances.

bulirsch_stoer(initial_time, ...[, ...])

Creates the settings for the Bulirsch-Stoer integrator.

adams_bashforth_moulton(initial_time, ...[, ...])

Creates the settings for the Adams-Bashforth-Moulton 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 Runge-Kutta fixed step size integrator.

Factory function to create settings for the Runge-Kutta 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 sub-steps 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 Runge-Kutta variable step size integrator with scalar tolerances.

Factory function to create settings for the Runge-Kutta 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 sub-steps 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 Runge-Kutta variable step size integrator with vector tolerances.

Factory function to create settings for the Runge-Kutta 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 sub-steps 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

RungeKuttaVariableStepSizeSettingsVectorTolerances

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 = 1e-12, absolute_error_tolerance: float = 1e-12, 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 Bulirsch-Stoer integrator.

Factory function to create settings for the Bulirsch-Stoer 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.0E-12) – Relative tolerance to adjust the time step.

  • absolute_error_tolerance (float, default=1.0E-12) – 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 sub-steps 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

BulirschStoerIntegratorSettings

adams_bashforth_moulton(initial_time: float, initial_time_step: float, minimum_step_size: float, maximum_step_size: float, relative_error_tolerance: float = 1e-12, absolute_error_tolerance: float = 1e-12, 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 Adams-Bashforth-Moulton integrator.

Factory function to create settings for the Adams-Bashforth-Moulton 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.0E-12) – Relative tolerance to adjust the time step.

  • absolute_error_tolerance (float, default=1.0E-12) – 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 sub-steps 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

AdamsBashforthMoultonSettings

Enumerations#

AvailableIntegrators

Enumeration of integrators available with tudat.

CoefficientSets

Coefficient sets for Runge-Kutta-type integrators.

OrderToIntegrate

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

ExtrapolationMethodStepSequences

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 Runge-Kutta-type integrators.

Coefficient sets for Runge-Kutta-type 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 Runge-Kutta 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 Runge-Kutta method of order 3

ralston_3 :

Coefficients for Ralston’s third-order method

SSPRK3 :

Coefficients for the Strong Stability Preserving Runge-Kutta third-order method

ralston_4 :

Coefficients for Ralston’s fourth-order method

three_eight_rule_rk_4 :

Coefficients for the classic Runge Kutta 3/8-rule fourth-order 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 Runge-Kutta-Fehlberg method of order 2 with an embedded 1st order

rkf_45 :

Coefficients for the Runge-Kutta-Fehlberg method of order 5 with an embedded 4th order

rkf_56 :

Coefficients for the Runge-Kutta-Fehlberg method of order 6 with an embedded 5th order

rkf_78 :

Coefficients for the Runge-Kutta-Fehlberg method of order 8 with an embedded 7th order

rkdp_87 :

Coefficients for the Dormand-Prince method of order 7 with an embedded 8th order

rkf_89 :

Coefficients for the Runge-Kutta-Fehlberg method of order 9 with an embedded 8th order

rkv_89 :

Coefficients for the Runge-Kutta-Verner method of order 9 with an embedded 8th order

rkf_108 :

Coefficients for the Runge-Kutta-Feagin method of order 8 with an embedded 10th order

rkf_1210 :

Coefficients for the Runge-Kutta-Feagin method of order 10 with an embedded 12ve order

rkf_1412 :

Coefficients for the Runge-Kutta-Feagin method of order 12 with an embedded 14th order

property name#
class OrderToIntegrate#

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

Members:

lower :

higher :

property name#
class ExtrapolationMethodStepSequences#

Enumeration of available extrapolation method step sequences.

Members:

bulirsch_stoer_sequence :

deufelhard_sequence :

property name#

Classes#

IntegratorSettings

Functional base class to define settings for integrators.

RungeKuttaFixedStepSizeSettings

IntegratorSettings-derived class to define settings for Runge Kutta integrators with a fixed step size

RungeKuttaVariableStepSizeSettingsScalarTolerances

IntegratorSettings-derived class to define settings for Runge Kutta integrators with scalar tolerances.

RungeKuttaVariableStepSizeSettingsVectorTolerances

IntegratorSettings-derived class to define settings for Runge Kutta integrators with vector tolerances.

BulirschStoerIntegratorSettings

IntegratorSettings-derived class to define settings for Bulirsch-Stoer integrator settings.

AdamsBashforthMoultonSettings

IntegratorSettings-derived class to define settings for Adams-Bashforth-Moulton 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.

initial_time#

Initial time of the integration.

Type

float

class RungeKuttaFixedStepSizeSettings#

IntegratorSettings-derived class to define settings for Runge Kutta integrators with a fixed step size

class RungeKuttaVariableStepSizeSettingsScalarTolerances#

IntegratorSettings-derived 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#

IntegratorSettings-derived 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#

IntegratorSettings-derived class to define settings for Bulirsch-Stoer integrator settings.

class AdamsBashforthMoultonSettings#

IntegratorSettings-derived class to define settings for Adams-Bashforth-Moulton integrator settings.