Interface ThrustPropulsionModel

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

public interface ThrustPropulsionModel extends PropulsionModel
Interface for a thrust-based propulsion model.
Since:
10.2
Author:
Maxime Journot
  • Method Details

    • getExhaustVelocity

      static double getExhaustVelocity(double isp)
      Method computing the effective exhaust velocity from the specific impulse.
      Parameters:
      isp - specific impulse (s)
      Returns:
      effective exhaust velocity (m/s)
      Since:
      13.0
    • getIsp

      default double getIsp(SpacecraftState s)
      Get the specific impulse (s).
      Parameters:
      s - current spacecraft state
      Returns:
      specific impulse (s).
    • getDirection

      default Vector3D getDirection(SpacecraftState s)
      Get the thrust direction in spacecraft frame.

      Return a zero vector if there is no thrust for given spacecraft state.

      Parameters:
      s - current spacecraft state
      Returns:
      thrust direction in spacecraft frame
    • getThrustVector

      Vector3D getThrustVector(SpacecraftState s)
      Get the thrust vector in spacecraft frame (N).
      Parameters:
      s - current spacecraft state
      Returns:
      thrust vector in spacecraft frame (N)
    • getFlowRate

      double getFlowRate(SpacecraftState s)
      Get the flow rate (kg/s).
      Parameters:
      s - current spacecraft state
      Returns:
      flow rate (kg/s)
    • getThrustVector

      Vector3D getThrustVector(SpacecraftState s, double[] parameters)
      Get the thrust vector in spacecraft frame (N).
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      thrust vector in spacecraft frame (N)
    • getFlowRate

      double getFlowRate(SpacecraftState s, double[] parameters)
      Get the flow rate (kg/s).
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      flow rate (kg/s)
    • getThrustVector

      <T extends CalculusFieldElement<T>> FieldVector3D<T> getThrustVector(FieldSpacecraftState<T> s, T[] parameters)
      Get the thrust vector in spacecraft frame (N).
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      thrust vector in spacecraft frame (N)
    • getFlowRate

      <T extends CalculusFieldElement<T>> T getFlowRate(FieldSpacecraftState<T> s, T[] parameters)
      Get the flow rate (kg/s).
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      flow rate (kg/s)
    • getAcceleration

      default Vector3D getAcceleration(SpacecraftState s, Attitude maneuverAttitude, double[] parameters)
      Get the acceleration of the spacecraft during maneuver and in maneuver frame. Acceleration is computed here using the thrust vector in S/C frame.
      Specified by:
      getAcceleration in interface PropulsionModel
      Parameters:
      s - current spacecraft state
      maneuverAttitude - current attitude in maneuver
      parameters - propulsion model parameters
      Returns:
      acceleration
    • getAcceleration

      default <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. Acceleration is computed here using the thrust vector in S/C frame.
      Specified by:
      getAcceleration in interface PropulsionModel
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      s - current spacecraft state
      maneuverAttitude - current attitude in maneuver
      parameters - propulsion model parameters
      Returns:
      acceleration
    • getMassDerivatives

      default double getMassDerivatives(SpacecraftState s, double[] parameters)
      Get the mass derivative (i.e. flow rate in kg/s) during maneuver. Mass derivatives are directly extracted here from the flow rate value.
      Specified by:
      getMassDerivatives in interface PropulsionModel
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      mass derivative in kg/s
    • getMassDerivatives

      default <T extends CalculusFieldElement<T>> T getMassDerivatives(FieldSpacecraftState<T> s, T[] parameters)
      Get the mass derivative (i.e. flow rate in kg/s) during maneuver. Mass derivatives are directly extracted here from the flow rate value.
      Specified by:
      getMassDerivatives in interface PropulsionModel
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      s - current spacecraft state
      parameters - propulsion model parameters
      Returns:
      mass derivative in kg/s