Class ProfileThrustPropulsionModel
- java.lang.Object
-
- org.orekit.forces.maneuvers.propulsion.ProfileThrustPropulsionModel
-
- All Implemented Interfaces:
PropulsionModel,ThrustPropulsionModel,EventDetectorsProvider,ParameterDriversProvider
public class ProfileThrustPropulsionModel extends Object implements ThrustPropulsionModel
Thrust propulsion model based on segmented profile.- Since:
- 12.0
- Author:
- Luc Maisonobe
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description ProfileThrustPropulsionModel(TimeSpanMap<ThrustVectorProvider> profile, double isp, String name)Constructor with default cost type.ProfileThrustPropulsionModel(TimeSpanMap<ThrustVectorProvider> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)Generic constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ThrustVectorProvidergetActiveProvider(AbsoluteDate date)Getter for active provider at input date.Control3DVectorCostTypegetControl3DVectorCostType()Get the control vector's cost type.Stream<EventDetector>getEventDetectors()Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
Stream<FieldEventDetector<T>>getFieldEventDetectors(Field<T> field)Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
TgetFlowRate(FieldSpacecraftState<T> s, T[] parameters)Get the flow rate (kg/s).doublegetFlowRate(SpacecraftState s)Get the flow rate (kg/s).doublegetFlowRate(SpacecraftState s, double[] parameters)Get the flow rate (kg/s).StringgetName()Get the maneuver name.List<ParameterDriver>getParametersDrivers()Get the drivers for parameters.<T extends CalculusFieldElement<T>>
FieldVector3D<T>getThrustVector(FieldSpacecraftState<T> s, T[] parameters)Get the thrust vector in spacecraft frame (N).Vector3DgetThrustVector(SpacecraftState s)Get the thrust vector in spacecraft frame (N).Vector3DgetThrustVector(SpacecraftState s, double[] parameters)Get the thrust vector in spacecraft frame (N).static <T extends ThrustVectorProvider>
ProfileThrustPropulsionModelof(TimeSpanMap<T> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)Build with customized profile.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectors
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
Methods inherited from interface org.orekit.forces.maneuvers.propulsion.PropulsionModel
init, init
-
Methods inherited from interface org.orekit.forces.maneuvers.propulsion.ThrustPropulsionModel
getAcceleration, getAcceleration, getDirection, getIsp, getMassDerivatives, getMassDerivatives
-
-
-
-
Constructor Detail
-
ProfileThrustPropulsionModel
public ProfileThrustPropulsionModel(TimeSpanMap<ThrustVectorProvider> profile, double isp, String name)
Constructor with default cost type.- Parameters:
profile- thrust profile (N)isp- specific impulse (s)name- name of the maneuver- Since:
- 13.0
-
ProfileThrustPropulsionModel
public ProfileThrustPropulsionModel(TimeSpanMap<ThrustVectorProvider> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)
Generic constructor.- Parameters:
profile- thrust profile (N)isp- specific impulse (s)control3DVectorCostType- control vector's cost typename- name of the maneuver- Since:
- 13.0
-
-
Method Detail
-
of
public static <T extends ThrustVectorProvider> ProfileThrustPropulsionModel of(TimeSpanMap<T> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)
Build with customized profile.- Type Parameters:
T- segment type- Parameters:
profile- thrust profile (N)isp- specific impulse (s)name- name of the maneuvercontrol3DVectorCostType- control vector's cost type- Returns:
- propulsion model
- Since:
- 13.0
-
getName
public String getName()
Get the maneuver name.- Specified by:
getNamein interfacePropulsionModel- Returns:
- the maneuver name
-
getControl3DVectorCostType
public Control3DVectorCostType getControl3DVectorCostType()
Get the control vector's cost type.- Specified by:
getControl3DVectorCostTypein interfacePropulsionModel- Returns:
- control cost type
-
getActiveProvider
public ThrustVectorProvider getActiveProvider(AbsoluteDate date)
Getter for active provider at input date.- Parameters:
date- date- Returns:
- active segment
- Since:
- 13.0
-
getThrustVector
public Vector3D getThrustVector(SpacecraftState s)
Get the thrust vector in spacecraft frame (N).- Specified by:
getThrustVectorin interfaceThrustPropulsionModel- Parameters:
s- current spacecraft state- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
public double getFlowRate(SpacecraftState s)
Get the flow rate (kg/s).- Specified by:
getFlowRatein interfaceThrustPropulsionModel- Parameters:
s- current spacecraft state- Returns:
- flow rate (kg/s)
-
getFlowRate
public double getFlowRate(SpacecraftState s, double[] parameters)
Get the flow rate (kg/s).- Specified by:
getFlowRatein interfaceThrustPropulsionModel- Parameters:
s- current spacecraft stateparameters- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getThrustVector
public Vector3D getThrustVector(SpacecraftState s, double[] parameters)
Get the thrust vector in spacecraft frame (N).- Specified by:
getThrustVectorin interfaceThrustPropulsionModel- Parameters:
s- current spacecraft stateparameters- propulsion model parameters- Returns:
- thrust vector in spacecraft frame (N)
-
getThrustVector
public <T extends CalculusFieldElement<T>> FieldVector3D<T> getThrustVector(FieldSpacecraftState<T> s, T[] parameters)
Get the thrust vector in spacecraft frame (N).- Specified by:
getThrustVectorin interfaceThrustPropulsionModel- Type Parameters:
T- extends CalculusFieldElement<T>- Parameters:
s- current spacecraft stateparameters- propulsion model parameters- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
public <T extends CalculusFieldElement<T>> T getFlowRate(FieldSpacecraftState<T> s, T[] parameters)
Get the flow rate (kg/s).- Specified by:
getFlowRatein interfaceThrustPropulsionModel- Type Parameters:
T- extends CalculusFieldElement<T>- Parameters:
s- current spacecraft stateparameters- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getEventDetectors
public 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..
The single detector returned triggers
Action.RESET_DERIVATIVESevents at everyThrustVectorProviderboundaries.- Specified by:
getEventDetectorsin interfaceEventDetectorsProvider- Specified by:
getEventDetectorsin interfacePropulsionModel- Returns:
- stream of event detectors
-
getFieldEventDetectors
public <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..
The single detector returned triggers
Action.RESET_DERIVATIVESevents at everyThrustVectorProviderboundaries.- Specified by:
getFieldEventDetectorsin interfaceEventDetectorsProvider- Specified by:
getFieldEventDetectorsin interfacePropulsionModel- Type Parameters:
T- extends CalculusFieldElement<T>- Parameters:
field- field to which the state belongs- Returns:
- stream of event detectors
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDriversin interfaceParameterDriversProvider- Returns:
- drivers for parameters
-
-