Class AbstractConstantThrustPropulsionModel
java.lang.Object
org.orekit.forces.maneuvers.propulsion.AbstractConstantThrustPropulsionModel
- All Implemented Interfaces:
PropulsionModel,ThrustPropulsionModel,EventDetectorsProvider,ParameterDriversProvider
- Direct Known Subclasses:
BasicConstantThrustPropulsionModel,ScaledConstantThrustPropulsionModel,SphericalConstantThrustPropulsionModel
public abstract class AbstractConstantThrustPropulsionModel
extends Object
implements ThrustPropulsionModel
This abstract class simply serve as a container for a constant thrust maneuver.
It re-writes all spacecraft dependent methods from
ThrustPropulsionModel
and removes their dependencies to current spacecraft state.
Indeed since the thrust is constant (i.e. not variable during the maneuver), most of the
calculated parameters (thrust vector, flow rate etc.) do not depend on current spacecraft state.- Since:
- 10.2
- Author:
- Maxime Journot
-
Field Summary
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, String name) Constructor with default control cost type.protectedAbstractConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, Control3DVectorCostType control3DVectorCostType, String name) Generic constructor. -
Method Summary
Modifier and TypeMethodDescriptionGet the control vector's cost type.Get the thrust direction in S/C frame.getDirection(AbsoluteDate date) Get the thrust direction in S/C frame.abstract doubleGet the flow rate (kg/s).abstract doublegetFlowRate(double[] parameters) Get the flow rate (kg/s).<T extends CalculusFieldElement<T>>
TgetFlowRate(FieldSpacecraftState<T> s, T[] parameters) Get the flow rate (kg/s).doubleGet the flow rate (kg/s).doublegetFlowRate(SpacecraftState s, double[] parameters) Get the flow rate (kg/s).abstract doublegetFlowRate(AbsoluteDate date) Get the flow rate (kg/s).abstract <T extends CalculusFieldElement<T>>
TgetFlowRate(T[] parameters) Get the flow rate (kg/s).protected doubleGet the initial flow rate.protected Vector3DGet the initial thrust vector.doublegetIsp()Get the specific impulse.doublegetIsp(AbsoluteDate date) Get the specific impulse at given date.getName()Get the maneuver name.doubleGet the thrust magnitude (N).doubleGet the thrust magnitude (N) at given date.abstract Vector3DGet the thrust vector in spacecraft frame (N).abstract Vector3DgetThrustVector(double[] parameters) Get the thrust vector in spacecraft frame (N).<T extends CalculusFieldElement<T>>
FieldVector3D<T> getThrustVector(FieldSpacecraftState<T> s, T[] parameters) Get the thrust vector in spacecraft frame (N).Get the thrust vector in spacecraft frame (N).getThrustVector(SpacecraftState s, double[] parameters) Get the thrust vector in spacecraft frame (N).abstract Vector3DgetThrustVector(AbsoluteDate date) Get the thrust vector in spacecraft frame (N).abstract <T extends CalculusFieldElement<T>>
FieldVector3D<T> getThrustVector(T[] parameters) Get the thrust vector in spacecraft frame (N).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectorsMethods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, getParametersDrivers, isSupportedMethods inherited from interface org.orekit.forces.maneuvers.propulsion.PropulsionModel
getEventDetectors, getFieldEventDetectors, init, initMethods inherited from interface org.orekit.forces.maneuvers.propulsion.ThrustPropulsionModel
getAcceleration, getAcceleration, getDirection, getIsp, getMassDerivatives, getMassDerivatives
-
Constructor Details
-
AbstractConstantThrustPropulsionModel
protected AbstractConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, Control3DVectorCostType control3DVectorCostType, String name) Generic constructor.- Parameters:
thrust- initial thrust value (N)isp- initial isp value (s)direction- initial thrust direction in S/C framecontrol3DVectorCostType- control cost typename- name of the maneuver- Since:
- 12.0
-
AbstractConstantThrustPropulsionModel
protected AbstractConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, String name) Constructor with default control cost type.- Parameters:
thrust- initial thrust value (N)isp- initial isp value (s)direction- initial thrust direction in S/C framename- name of the maneuver
-
-
Method Details
-
getInitialThrustVector
Get the initial thrust vector.- Returns:
- the initial thrust vector
-
getInitialFlowRate
protected double getInitialFlowRate()Get the initial flow rate.- Returns:
- the initial flow rate
-
getName
Get the maneuver name.- Specified by:
getNamein interfacePropulsionModel- Returns:
- the maneuver name
-
getControl3DVectorCostType
Get the control vector's cost type.- Specified by:
getControl3DVectorCostTypein interfacePropulsionModel- Returns:
- control cost type
-
getIsp
public double getIsp()Get the specific impulse.- Returns:
- specific impulse (s), will throw exception if used on PDriver having several driven values, because in this case a date is needed.
-
getIsp
Get the specific impulse at given date.- Parameters:
date- date at which the Isp wants to be known- Returns:
- specific impulse (s).
-
getDirection
Get the thrust direction in S/C frame.- Parameters:
date- date at which the direction wants to be known- Returns:
- the thrust direction in S/C frame
-
getDirection
Get the thrust direction in S/C frame.- Returns:
- the thrust direction in S/C frame, will throw exception if used on PDriver having several driven values, because in this case a date is needed.
-
getThrustMagnitude
public double getThrustMagnitude()Get the thrust magnitude (N).- Returns:
- the thrust value (N), will throw an exception if called of a driver having several values driven
-
getThrustMagnitude
Get the thrust magnitude (N) at given date.- Parameters:
date- date at which the thrust vector wants to be known, often the date parameter will not be important and can be whatever if the thrust parameter driver as only value estimated over the all orbit determination interval- Returns:
- the thrust value (N)
-
getThrustVector
Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.- Specified by:
getThrustVectorin interfaceThrustPropulsionModel- Parameters:
s- current spacecraft state- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
Get the flow rate (kg/s). Here the flow rate do not depend on current S/C state- Specified by:
getFlowRatein interfaceThrustPropulsionModel- Parameters:
s- current spacecraft state- Returns:
- flow rate (kg/s)
-
getThrustVector
Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.- Specified by:
getThrustVectorin interfaceThrustPropulsionModel- Parameters:
s- current spacecraft stateparameters- propulsion model parameters- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
Get the flow rate (kg/s). Here the flow rate do not depend on current S/C state- Specified by:
getFlowRatein interfaceThrustPropulsionModel- Parameters:
s- current spacecraft stateparameters- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getThrustVector
public <T extends CalculusFieldElement<T>> FieldVector3D<T> getThrustVector(FieldSpacecraftState<T> s, T[] parameters) Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.- 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
Get the flow rate (kg/s). Here the flow rate do not depend on current S/C state- Specified by:
getFlowRatein interfaceThrustPropulsionModel- Type Parameters:
T- extends CalculusFieldElement<T>- Parameters:
s- current spacecraft stateparameters- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getThrustVector
Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.- Returns:
- thrust vector in spacecraft frame (N), will throw an exception if used on driver containing several value spans
-
getThrustVector
Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.- Parameters:
date- date at which the thrust vector wants to be known, often the date parameter will not be important and can be whatever if the thrust parameter driver as only value estimated over the all orbit determination interval- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
public abstract double getFlowRate()Get the flow rate (kg/s). Here it does not depend on current S/C.- Returns:
- flow rate (kg/s) will throw an exception if used on driver containing several value spans
-
getFlowRate
Get the flow rate (kg/s). Here it does not depend on current S/C.- Parameters:
date- date at which the thrust vector wants to be known, often the date parameter will not be important and can be whatever if the thrust parameter driver as only value estimated over the all orbit determination interval- Returns:
- flow rate (kg/s)
-
getThrustVector
Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.- Parameters:
parameters- propulsion model parameters- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
public abstract double getFlowRate(double[] parameters) Get the flow rate (kg/s). Here it does not depend on current S/C state.- Parameters:
parameters- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getThrustVector
public abstract <T extends CalculusFieldElement<T>> FieldVector3D<T> getThrustVector(T[] parameters) Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.- Type Parameters:
T- extends CalculusFieldElement<T>- Parameters:
parameters- propulsion model parameters- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
Get the flow rate (kg/s). Here it does not depend on current S/C state.- Type Parameters:
T- extends CalculusFieldElement<T>- Parameters:
parameters- propulsion model parameters- Returns:
- flow rate (kg/s)
-