ostk.astrodynamics.trajectory.Propagator

class Propagator(*args, **kwargs)

Bases: pybind11_object

A Propagator that propagates the provided State using it's NumericalSolver under the set Dynamics.

Overloaded function.

  1. __init__(self: ostk.astrodynamics.trajectory.Propagator, numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver, dynamics: list[ostk::astrodynamics::Dynamics] = []) -> None

    Construct a new Propagator object.

    Args:

    numerical_solver (NumericalSolver) The numerical solver. dynamics (list[Dynamics], optional) The dynamics.

    Returns:

    Propagator: The new Propagator object.

  2. __init__(self: ostk.astrodynamics.trajectory.Propagator, numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver, dynamics: list[ostk::astrodynamics::Dynamics], maneuvers: list[ostk::astrodynamics::flight::Maneuver], interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = <Type.BarycentricRational: 0>) -> None

    Construct a new Propagator object with maneuvers.

    Args:

    numerical_solver (NumericalSolver) The numerical solver. dynamics (list[Dynamics]) The dynamics. maneuvers (list[Maneuver]) The maneuvers. interpolation_type (Interpolator.Type, optional) The interpolation type. Defaults to Barycentric Rational.

    Returns:

    Propagator: The new Propagator object.

Methods

access_numerical_solver

Access the numerical solver.

add_dynamics

Add dynamics.

add_maneuver

Add a maneuver.

calculate_state_at

Calculate the state at a given instant.

calculate_state_to_condition

Calculate the state up to a given event condition.

calculate_states_at

Calculate the states at given instants.

clear_dynamics

Clear the dynamics.

default

Overloaded function.

from_environment

Create a propagator from an environment.

get_dynamics

Get the dynamics.

get_number_of_coordinates

Get the number of coordinates.

is_defined

Check if the propagator is defined.

set_dynamics

Set the dynamics.

access_numerical_solver(
self: ostk.astrodynamics.trajectory.Propagator,
) ostk.astrodynamics.trajectory.state.NumericalSolver

Access the numerical solver.

Returns:

The numerical solver.

Return type:

NumericalSolver&

add_dynamics(
self: ostk.astrodynamics.trajectory.Propagator,
dynamics: ostk::astrodynamics::Dynamics,
) None

Add dynamics.

Parameters:

dynamics (Dynamics)

add_maneuver(
self: ostk.astrodynamics.trajectory.Propagator,
maneuver: ostk::astrodynamics::flight::Maneuver,
interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = <Type.BarycentricRational: 0>,
) None

Add a maneuver.

Parameters:
  • maneuver (Maneuver)

  • interpolation_type (Interpolator.Type, optional)

calculate_state_at(
self: ostk.astrodynamics.trajectory.Propagator,
state: ostk.astrodynamics.trajectory.State,
instant: ostk.physics.time.Instant,
) ostk.astrodynamics.trajectory.State

Calculate the state at a given instant.

Parameters:
  • state (State)

  • instant (Instant)

Returns:

The state at the given instant.

Return type:

State

calculate_state_to_condition(
self: ostk.astrodynamics.trajectory.Propagator,
state: ostk.astrodynamics.trajectory.State,
instant: ostk.physics.time.Instant,
event_condition: ostk::astrodynamics::EventCondition,
) ostk.astrodynamics.trajectory.state.NumericalSolver.ConditionSolution

Calculate the state up to a given event condition.

Parameters:
Returns:

The state up to the given event condition.

Return type:

State

calculate_states_at(
self: ostk.astrodynamics.trajectory.Propagator,
state: ostk.astrodynamics.trajectory.State,
instants: list[ostk.physics.time.Instant],
) list[ostk.astrodynamics.trajectory.State]

Calculate the states at given instants. It is more performant than looping calculate_state_at for multiple instants.

Parameters:
Returns:

The states at the given instants.

Return type:

list[State]

clear_dynamics(self: ostk.astrodynamics.trajectory.Propagator) None

Clear the dynamics.

static default(*args, **kwargs)

Overloaded function.

  1. default() -> ostk.astrodynamics.trajectory.Propagator

    Get the default propagator.

    Returns:

    Propagator: The default propagator.

  2. default(environment: ostk.physics.Environment) -> ostk.astrodynamics.trajectory.Propagator

    Get the default propagator for a given environment.

    Args:

    environment (Environment) The environment.

    Returns:

    Propagator: The default propagator for the given environment.

static from_environment(
numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver,
environment: ostk.physics.Environment,
) ostk.astrodynamics.trajectory.Propagator

Create a propagator from an environment.

Parameters:
Returns:

The propagator.

Return type:

Propagator

get_dynamics(
self: ostk.astrodynamics.trajectory.Propagator,
) list[ostk::astrodynamics::Dynamics]

Get the dynamics.

Returns:

The dynamics.

Return type:

list[Dynamics]

get_number_of_coordinates(
self: ostk.astrodynamics.trajectory.Propagator,
) int

Get the number of coordinates.

Returns:

The number of coordinates.

Return type:

int

is_defined(self: ostk.astrodynamics.trajectory.Propagator) bool

Check if the propagator is defined.

Returns:

True if the propagator is defined, False otherwise.

Return type:

bool

set_dynamics(self: ostk.astrodynamics.trajectory.Propagator, dynamics: list[ostk::astrodynamics::Dynamics]) None

Set the dynamics.

Parameters:

dynamics (list[Dynamics])