Interface PropulsionModel
-
- All Superinterfaces:
EventDetectorsProvider
,ParameterDriversProvider
- All Known Subinterfaces:
ThrustPropulsionModel
- All Known Implementing Classes:
AbstractConstantThrustPropulsionModel
,BasicConstantThrustPropulsionModel
,ProfileThrustPropulsionModel
,ScaledConstantThrustPropulsionModel
public interface PropulsionModel extends ParameterDriversProvider, EventDetectorsProvider
Generic interface for a propulsion model used in aManeuver
.- Since:
- 10.2
- Author:
- Maxime Journot
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description <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.Vector3D
getAcceleration(SpacecraftState s, Attitude maneuverAttitude, double[] parameters)
Get the acceleration of the spacecraft during maneuver and in maneuver frame.Control3DVectorCostType
getControl3DVectorCostType()
Get the control vector's cost type.default Stream<EventDetector>
getEventDetectors()
Get the discrete events related to the model.default <T extends CalculusFieldElement<T>>
Stream<FieldEventDetector<T>>getFieldEventDetectors(Field<T> field)
Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
TgetMassDerivatives(FieldSpacecraftState<T> s, T[] parameters)
Get the mass derivative (i.e.double
getMassDerivatives(SpacecraftState s, double[] parameters)
Get the mass derivative (i.e.default String
getName()
Get the maneuver name.default <T extends CalculusFieldElement<T>>
voidinit(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
Initialization method.default void
init(SpacecraftState initialState, AbsoluteDate target)
Initialization method.-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, getParametersDrivers, isSupported
-
-
-
-
Method Detail
-
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 toinitialState.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 toinitialState.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 interfaceEventDetectorsProvider
- 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 interfaceEventDetectorsProvider
- 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 statemaneuverAttitude
- current attitude in maneuverparameters
- 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 statemaneuverAttitude
- current attitude in maneuverparameters
- 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 stateparameters
- 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 stateparameters
- 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
-
-