Class AbstractConstantThrustPropulsionModel
- java.lang.Object
-
- org.orekit.forces.maneuvers.propulsion.AbstractConstantThrustPropulsionModel
-
- All Implemented Interfaces:
PropulsionModel
,ThrustPropulsionModel
- Direct Known Subclasses:
BasicConstantThrustPropulsionModel
,PythonAbstractConstantThrustPropulsionModel
,ScaledConstantThrustPropulsionModel
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 fromThrustPropulsionModel
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
-
-
Constructor Summary
Constructors Constructor Description AbstractConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, String name)
Generic constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Vector3D
getDirection()
Get the thrust direction in S/C frame.abstract double
getFlowRate()
Get the flow rate (kg/s).abstract double
getFlowRate(double[] parameters)
Get the flow rate (kg/s).<T extends CalculusFieldElement<T>>
TgetFlowRate(FieldSpacecraftState<T> s, T[] parameters)
Get the flow rate (kg/s).double
getFlowRate(SpacecraftState s)
Get the flow rate (kg/s).double
getFlowRate(SpacecraftState s, double[] parameters)
Get the flow rate (kg/s).abstract <T extends CalculusFieldElement<T>>
TgetFlowRate(T[] parameters)
Get the flow rate (kg/s).protected double
getInitialFlowrate()
protected Vector3D
getInitialThrustVector()
double
getIsp()
Get the specific impulse.String
getName()
Get the maneuver name.double
getThrust()
Get the thrust value (N).abstract Vector3D
getThrustVector()
Get the thrust vector in spacecraft frame (N).abstract Vector3D
getThrustVector(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).Vector3D
getThrustVector(SpacecraftState s)
Get the thrust vector in spacecraft frame (N).Vector3D
getThrustVector(SpacecraftState s, double[] parameters)
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, wait
-
Methods inherited from interface org.orekit.forces.maneuvers.propulsion.PropulsionModel
getParametersDrivers, init, init
-
Methods inherited from interface org.orekit.forces.maneuvers.propulsion.ThrustPropulsionModel
getAcceleration, getAcceleration, getDirection, getIsp, getMassDerivatives, getMassDerivatives, getThrust
-
-
-
-
Constructor Detail
-
AbstractConstantThrustPropulsionModel
public AbstractConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, String name)
Generic constructor.- Parameters:
thrust
- initial thrust value (N)isp
- initial isp value (s)direction
- initial thrust direction in S/C framename
- name of the maneuver
-
-
Method Detail
-
getInitialThrustVector
protected Vector3D getInitialThrustVector()
-
getInitialFlowrate
protected double getInitialFlowrate()
-
getName
public String getName()
Get the maneuver name.- Specified by:
getName
in interfacePropulsionModel
- Returns:
- the maneuver name
-
getIsp
public double getIsp()
Get the specific impulse.- Returns:
- specific impulse (s).
-
getDirection
public Vector3D getDirection()
Get the thrust direction in S/C frame.- Returns:
- the thrust direction in S/C frame
-
getThrust
public double getThrust()
Get the thrust value (N).- Returns:
- the thrust value (N)
-
getThrustVector
public Vector3D getThrustVector(SpacecraftState s)
Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.- Specified by:
getThrustVector
in 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). Here the flow rate do not depend on current S/C state- Specified by:
getFlowRate
in interfaceThrustPropulsionModel
- Parameters:
s
- current spacecraft state- Returns:
- flow rate (kg/s)
-
getThrustVector
public Vector3D getThrustVector(SpacecraftState s, double[] parameters)
Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.- Specified by:
getThrustVector
in interfaceThrustPropulsionModel
- Parameters:
s
- current spacecraft stateparameters
- propulsion model parameters- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
public double getFlowRate(SpacecraftState s, double[] parameters)
Get the flow rate (kg/s). Here the flow rate do not depend on current S/C state- Specified by:
getFlowRate
in 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:
getThrustVector
in 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). Here the flow rate do not depend on current S/C state- Specified by:
getFlowRate
in interfaceThrustPropulsionModel
- Type Parameters:
T
- extends CalculusFieldElement<T>- Parameters:
s
- current spacecraft stateparameters
- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getThrustVector
public abstract Vector3D 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)
-
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)
-
getThrustVector
public abstract Vector3D getThrustVector(double[] parameters)
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
public abstract <T extends CalculusFieldElement<T>> T getFlowRate(T[] parameters)
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)
-
-