propagation_setup#

Definition of propagation settings.

This module contains submodules to define propagation settings. It also contains a set of factory functions to create dynamical models for translational state, rotational state, and mass rate.

Functions#

create_acceleration_models(body_system, ...)

Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types.

create_torque_models(body_system, ...)

Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types.

create_mass_rate_models(body_system, ...[, ...])

Function to create a set of mass-rate models from associated settings.

create_acceleration_models(body_system: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, selected_acceleration_per_body: Dict[str, Dict[str, List[tudatpy.kernel.numerical_simulation.propagation_setup.acceleration.AccelerationSettings]]], bodies_to_propagate: List[str], central_bodies: List[str]) Dict[str, Dict[str, List[tudatpy.kernel.numerical_simulation.propagation.AccelerationModel]]]#

Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types.

Function to create a set of acceleration models from a map of bodies and acceleration model types. The propagated bodies and central bodies are provided as two separate lists with the same order.

Parameters
  • body_system (SystemOfBodies) – System of bodies to be used in the propagation.

  • selected_acceleration_per_body (Dict[str, Dict[str, List[AccelerationSettings]]]) – Key-value container, with key denoting the body undergoing the acceleration, and the value containing an additional key-value container, with the body exerting acceleration, and list of acceleration settings exerted by this body.

  • bodies_to_propagate (list) – List of bodies to propagate.

  • central_bodies (list) – List of central bodies, each referred to each propagated body in the same order.

Returns

Set of accelerations acting on the bodies to propagate, provided as dual key-value container, similar to the acceleration settings input, but now with AccelerationModel lists as inner value

Return type

AccelerationMap

Examples

In this example, the acceleration model includes a spherical harmonic (degree and order 5) gravitational acceleration and aerodynamic acceleration exerted by the Earth, as well as point-mass gravity exerted by the Sun and the Moon. The variable accelerations_settings_vehicle denotes the list of bodies exerting accelerations and the types of accelerations, while the variable acceleration_settings associates this list with the body undergoing the acceleration ("Vehicle").

# Define bodies that are propagated.
bodies_to_propagate = ["Vehicle"]

# Define central bodies.
central_bodies = ["Earth"]

# Define accelerations acting on Vehicle
accelerations_settings_vehicle = dict(
    Sun=[propagation_setup.acceleration.point_mass_gravity()],
    Moon=[propagation_setup.acceleration.point_mass_gravity()],
    Earth=[propagation_setup.acceleration.spherical_harmonic_gravity(5, 5),
           propagation_setup.acceleration.aerodynamic()]
)

# Create global accelerations settings dictionary
acceleration_settings = {"Vehicle": accelerations_settings_vehicle}

# Create acceleration models
acceleration_models = propagation_setup.create_acceleration_models(
    bodies, acceleration_settings,  bodies_to_propagate, central_bodies)
create_torque_models(body_system: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, selected_torque_per_body: Dict[str, Dict[str, List[tudatpy.kernel.numerical_simulation.propagation_setup.torque.TorqueSettings]]], bodies_to_propagate: List[str]) Dict[str, Dict[str, List[tudatpy.kernel.numerical_simulation.propagation.TorqueModel]]]#

Function to create a set of acceleration models from a dictionary of bodies linked to acceleration model types.

Function to create a set of acceleration models from a map of bodies and acceleration model types. The propagated bodies is provided as a list.

Parameters
  • body_system (SystemOfBodies) – System of bodies to be used in the propagation.

  • selected_torque_per_body (Dict[str, Dict[str, List[TorqueSettings]]]) – Key-value container, with key denoting the body undergoing the torque, and the value containing an additional key-value container, with the body exerting torque, and list of torque settings exerted by this body.

  • bodies_to_propagate (list) – List of bodies to propagate.

Returns

Set of torques acting on the bodies to propagate, provided as dual key-value container, similar to the torque settings input, but now with TorqueModel lists as inner value

Return type

TorqueModelMap

Examples

In this example, the following torques are exerted on the vehicle: spherical-harmonic gravitational torque (up to order 4 and degree 4) and aerodynamic torque exerted by the Earth, second-degree gravitational torque exerted by the Sun and the Moon. The variable torques_settings_vehicle denotes the list of bodies exerting torques and the types of torques, while the variable torque_settings associates this list with the body undergoing the torque.

# Define bodies that are propagated
bodies_to_propagate = ["Vehicle"]

# Define torques per each exerting body
torque_settings_vehicle = dict(
    Sun=[propagation_setup.torque.second_degree_gravitational()],
    Moon=[propagation_setup.torque.second_degree_gravitational()],
    Earth=[propagation_setup.torque.spherical_harmonic_gravitational(4, 4),
           propagation_setup.torque.aerodynamic()]
)

# Create global torque settings dictionary
torque_settings = {"Vehicle": torque_settings_vehicle}

# Create torque models
torque_models = propagation_setup.create_torque_models(
    bodies, torque_settings,  bodies_to_propagate )
create_mass_rate_models(body_system: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, selected_mass_rates_per_body: Dict[str, List[tudatpy.kernel.numerical_simulation.propagation_setup.mass_rate.MassRateModelSettings]], acceleration_models: Dict[str, Dict[str, List[tudatpy.kernel.numerical_simulation.propagation.AccelerationModel]]] = None) Dict[str, List[tudatpy.kernel.numerical_simulation.propagation.MassRateModel]]#

Function to create a set of mass-rate models from associated settings.

Function to create a set of mass-rate models from a map of bodies and mass-rate model types. If the mass-rate depends on any acceleration models (e.g. thrust), the acceleration models must be provided as an input.

Parameters
  • body_system (SystemOfBodies) – System of bodies to be used in the propagation.

  • selected_mass_rates_per_body (Dict[str, List[MassRateModelSettings]]) – Key-value container, with key denoting the body with changing mass, and the value containing a list of mass rate settings (in most cases, this list will have only a single entry)

  • acceleration_models (AccelerationMap) – Sorted list of acceleration models, as created by create_acceleration_models()

Returns

Set of mass-rate models, as key-value container, same as the settings input, with the difference that the rate settings objects have been processed into the associated objects calculating the actual mass-rate changes.

Return type

MassRateModelMap