|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.orekit.parameter.Parameterizable org.orekit.parameter.JacobiansParameterizable org.orekit.forces.drag.DragForce
public class DragForce
Atmospheric drag force model.
The drag acceleration is computed as follows :
γ = (1/2 * k * ρ * V2 * S / Mass) * DragCoefVector
With:
DragSensitive
.The implementation of this class enables the computation of partial derivatives with respect to normal and tangential ballistic coefficients.
Field Summary | |
---|---|
static String |
K_COEFFICIENT
Parameter name for k coefficient. |
Constructor Summary | |
---|---|
DragForce(Atmosphere atmosphere,
DragSensitive spacecraft)
Constructor with multiplicative factor k = 1.0. |
|
DragForce(Atmosphere atmosphere,
DragSensitive spacecraft,
boolean computePDPos,
boolean computePDVel)
Constructor with multiplicative factor k = 1.0. |
|
DragForce(double k,
Atmosphere atmosphere,
DragSensitive spacecraft)
Constructor with multiplicative factor k. |
|
DragForce(double k,
Atmosphere atmosphere,
DragSensitive spacecraft,
boolean computePDPos,
boolean computePDVel)
Constructor with multiplicative factor k. |
|
DragForce(IParamDiffFunction k,
Atmosphere atmosphere,
DragSensitive spacecraft)
Constructor with multiplicative factor k. |
|
DragForce(IParamDiffFunction k,
Atmosphere atmosphere,
DragSensitive spacecraft,
boolean computePDPos,
boolean computePDVel)
Constructor with multiplicative factor k. |
|
DragForce(Parameter k,
Atmosphere atmosphere,
DragSensitive spacecraft)
Constructor with multiplicative factor k. |
|
DragForce(Parameter k,
Atmosphere atmosphere,
DragSensitive spacecraft,
boolean computePDPos,
boolean computePDVel)
Constructor with multiplicative factor k. |
Method Summary | |
---|---|
void |
addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
Compute the contribution of the drag to the perturbing acceleration. |
void |
addDAccDParam(SpacecraftState s,
Parameter param,
double[] dAccdParam)
Compute acceleration derivatives with respect to additional parameters. |
void |
addDAccDState(SpacecraftState s,
double[][] dAccdPos,
double[][] dAccdVel)
Compute acceleration derivatives with respect to state parameters. |
static Vector3D |
computeAcceleration(PVCoordinates pv,
Frame frame,
Atmosphere atm,
AbsoluteDate date,
double kD,
double mass)
Method to compute the acceleration. |
Vector3D |
computeAcceleration(SpacecraftState s)
Compute the acceleration due to the force. |
boolean |
computeGradientPosition()
This method returns true if the acceleration partial derivatives with respect to position have to be computed. |
boolean |
computeGradientVelocity()
This method returns true if the acceleration partial derivatives with respect to velocity have to be computed. |
EventDetector[] |
getEventsDetectors()
There are no discrete events for this model. |
Methods inherited from class org.orekit.parameter.JacobiansParameterizable |
---|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter |
Methods inherited from class org.orekit.parameter.Parameterizable |
---|
addParameter, getParameters, supportsParameter |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.orekit.parameter.IParameterizable |
---|
getParameters, supportsParameter |
Field Detail |
---|
public static final String K_COEFFICIENT
Constructor Detail |
---|
public DragForce(Atmosphere atmosphere, DragSensitive spacecraft)
atmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationpublic DragForce(Atmosphere atmosphere, DragSensitive spacecraft, boolean computePDPos, boolean computePDVel)
atmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationcomputePDPos
- if partial derivatives wrt position have to be computedcomputePDVel
- if partial derivatives wrt velocity have to be computedpublic DragForce(double k, Atmosphere atmosphere, DragSensitive spacecraft)
k
- drag multiplicative factoratmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationpublic DragForce(double k, Atmosphere atmosphere, DragSensitive spacecraft, boolean computePDPos, boolean computePDVel)
k
- multiplicative factoratmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationcomputePDPos
- if partial derivatives wrt position have to be computedcomputePDVel
- if partial derivatives wrt velocity have to be computedpublic DragForce(Parameter k, Atmosphere atmosphere, DragSensitive spacecraft)
k
- parameter representing the multiplicative factoratmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationpublic DragForce(Parameter k, Atmosphere atmosphere, DragSensitive spacecraft, boolean computePDPos, boolean computePDVel)
k
- parameter representing the multiplicative factoratmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationcomputePDPos
- if partial derivatives wrt position have to be computedcomputePDVel
- if partial derivatives wrt velocity have to be computedpublic DragForce(IParamDiffFunction k, Atmosphere atmosphere, DragSensitive spacecraft)
k
- parameterizable function representing the multiplicative factoratmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationpublic DragForce(IParamDiffFunction k, Atmosphere atmosphere, DragSensitive spacecraft, boolean computePDPos, boolean computePDVel)
k
- parameterizable function representing the multiplicative factoratmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationcomputePDPos
- if partial derivatives wrt position have to be computedcomputePDVel
- if partial derivatives wrt velocity have to be computedMethod Detail |
---|
public void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws OrekitException
addContribution
in interface ForceModel
s
- the current state information : date, kinematics, attitudeadder
- object where the contribution should be added
OrekitException
- if some specific error occurspublic EventDetector[] getEventsDetectors()
getEventsDetectors
in interface ForceModel
public boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
public Vector3D computeAcceleration(SpacecraftState s) throws OrekitException
computeAcceleration
in interface ForceModel
s
- current state information: date, kinematics, attitude
SpacecraftState frame
OrekitException
- if some specific error occurspublic static Vector3D computeAcceleration(PVCoordinates pv, Frame frame, Atmosphere atm, AbsoluteDate date, double kD, double mass) throws OrekitException
Method to compute the acceleration. This method has been implemented in order to validate the force model only. The reason is that for the validation context, we do not want to set up an instance of the SpacecraftState object to avoid the inertial frame of the spacecraft orbit.
(see Story #V84 and Feature #34 on https://www.orekit.org/forge/issues/34)
Out of the validation context, one must use the method Vector3D computeAcceleration(final SpacecraftState s)
In the validation context, we assume that the multiplicative factor is equal to 1.
pv
- PV coordinates of the spacecraft (spherical spacecraft only for the validation)frame
- frame in which the PV coordinates are givenatm
- atmospheredate
- datekD
- Composite drag coefficient (S.Cd/2).mass
- mass of the spacecraft
OrekitException
- if an Orekit error occurspublic void addDAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel) throws OrekitException
addDAccDState
in interface IJacobiansParameterizable
s
- spacecraft statedAccdPos
- acceleration derivatives with respect to positiondAccdVel
- acceleration derivatives with respect to velocity
OrekitException
- if derivatives cannot be computedpublic void addDAccDParam(SpacecraftState s, Parameter param, double[] dAccdParam) throws OrekitException
addDAccDParam
in interface IJacobiansParameterizable
s
- spacecraft stateparam
- the parameter with respect to which derivatives are requireddAccdParam
- acceleration derivatives with respect to specified parameters
OrekitException
- if derivatives cannot be computed
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |