Interface PropulsionModel

All Superinterfaces:
EventDetectorsProvider, ParameterDriversProvider
All Known Subinterfaces:
ThrustPropulsionModel
All Known Implementing Classes:
AbstractConstantThrustPropulsionModel, BasicConstantThrustPropulsionModel, ProfileThrustPropulsionModel, ScaledConstantThrustPropulsionModel, SphericalConstantThrustPropulsionModel

public interface PropulsionModel extends ParameterDriversProvider, EventDetectorsProvider
Generic interface for a propulsion model used in a Maneuver.
Since:
10.2
Author:
Maxime Journot
  • Method Details

    • init

      default void init(SpacecraftState initialState, AbsoluteDate target)
      Initialization method. Called in when Maneuver.init(...) is called (from ForceModel.init(...))
      Parameters:
      initialState - initial spacecraft state (at the start of propagation).
      target - date of propagation. Not equal to initialState.getDate().
    • init

      default <T extends CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
      Initialization method. Called in when Maneuver.init(...) is called (from ForceModel.init(...))
      Type Parameters:
      T - type of the elements
      Parameters:
      initialState - initial spacecraft state (at the start of propagation).
      target - date of propagation. Not equal to initialState.getDate().
      Since:
      11.1
    • getEventDetectors

      default Stream<EventDetector> getEventDetectors()
      Get the discrete events related to the model.

      This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.

      Specified by:
      getEventDetectors in interface EventDetectorsProvider
      Returns:
      stream of event detectors
    • getFieldEventDetectors

      default <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
      Get the discrete events related to the model.

      This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.

      Specified by:
      getFieldEventDetectors in interface EventDetectorsProvider
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      field - field to which the state belongs
      Returns:
      stream of event detectors
    • getAcceleration

      Vector3D getAcceleration(SpacecraftState s, Attitude maneuverAttitude, double[] parameters)
      Get the acceleration of the spacecraft during maneuver and in maneuver frame.
      Parameters:
      s - current spacecraft state
      maneuverAttitude - current attitude in maneuver
      parameters - propulsion model parameters
      Returns:
      acceleration
    • getAcceleration

      <T extends CalculusFieldElement<T>> FieldVector3D<T> getAcceleration(FieldSpacecraftState<T> s, FieldAttitude<T> maneuverAttitude, T[] parameters)
      Get the acceleration of the spacecraft during maneuver and in maneuver frame.
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      s - current spacecraft state
      maneuverAttitude - current attitude in maneuver
      parameters - propulsion model parameters
      Returns:
      acceleration
    • getMassDerivatives

      double getMassDerivatives(SpacecraftState s, double[] parameters)
      Get the mass derivative (i.e. flow rate in kg/s) during maneuver.
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      mass derivative in kg/s
    • getMassDerivatives

      <T extends CalculusFieldElement<T>> T getMassDerivatives(FieldSpacecraftState<T> s, T[] parameters)
      Get the mass derivative (i.e. flow rate in kg/s) during maneuver.
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      mass derivative in kg/s
    • getName

      default String getName()
      Get the maneuver name.
      Returns:
      the maneuver name
    • getControl3DVectorCostType

      Control3DVectorCostType getControl3DVectorCostType()
      Get the control vector's cost type.
      Returns:
      control cost type
      Since:
      12.0