Package org.orekit.forces.drag
Class DragForce
- java.lang.Object
-
- org.orekit.forces.drag.AbstractDragForceModel
-
- org.orekit.forces.drag.DragForce
-
- All Implemented Interfaces:
ForceModel
,EventDetectorsProvider
,ParameterDriversProvider
public class DragForce extends AbstractDragForceModel
Atmospheric drag force model. The drag acceleration is computed as follows : γ = (1/2 * ρ * V² * S / Mass) * DragCoefVector With DragCoefVector = {Cx, Cy, Cz} and S given by the user through the interfaceDragSensitive
- Author:
- Édouard Delente, Fabien Maussion, Véronique Pommier-Maurussane, Pascal Parraud, Melina Vanel
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description DragForce(Atmosphere atmosphere, DragSensitive spacecraft)
Constructor with default flag for finite differences.DragForce(Atmosphere atmosphere, DragSensitive spacecraft, boolean useFiniteDifferencesOnDensityWrtPosition)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldVector3D<T>acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.Vector3D
acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.boolean
dependsOnAttitudeRate()
Check if force model depends on attitude's rotation rate or acceleration at a given, fixed date.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.DragSensitive
getSpacecraft()
Get spacecraft that are sensitive to atmospheric drag forces.-
Methods inherited from class org.orekit.forces.drag.AbstractDragForceModel
dependsOnPositionOnly, getAtmosphere, getDSDensityWrtState, getDSDensityWrtStateUsingFiniteDifferences, getFieldDensity, getGradientDensityWrtState, getGradientDensityWrtStateUsingFiniteDifferences, isDSStateDerivative, isGradientStateDerivative, isVariable, isVariable
-
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.forces.ForceModel
addContribution, addContribution, getEventDetectors, getFieldEventDetectors, init, init
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
DragForce
public DragForce(Atmosphere atmosphere, DragSensitive spacecraft)
Constructor with default flag for finite differences.- Parameters:
atmosphere
- atmospheric modelspacecraft
- the object physical and geometrical information
-
DragForce
public DragForce(Atmosphere atmosphere, DragSensitive spacecraft, boolean useFiniteDifferencesOnDensityWrtPosition)
Simple constructor.- Parameters:
atmosphere
- atmospheric modelspacecraft
- the object physical and geometrical informationuseFiniteDifferencesOnDensityWrtPosition
- flag to use finite differences to compute density derivatives w.r.t. position (is less accurate but can be faster depending on model)- Since:
- 12.1
-
-
Method Detail
-
dependsOnAttitudeRate
public boolean dependsOnAttitudeRate()
Check if force model depends on attitude's rotation rate or acceleration at a given, fixed date. If false, it essentially means that at most the attitude's rotation is used when computing the acceleration vector. The default implementation returns false as common forces do not.- Returns:
- true if force model depends on attitude derivatives
-
acceleration
public Vector3D acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
acceleration
public <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.- Type Parameters:
T
- type of the elements- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Returns:
- drivers for parameters
-
getSpacecraft
public DragSensitive getSpacecraft()
Get spacecraft that are sensitive to atmospheric drag forces.- Returns:
- drag sensitive spacecraft model
-
-