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
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 interface
DragSensitive- 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
ConstructorsConstructorDescriptionDragForce(Atmosphere atmosphere, DragSensitive spacecraft) Constructor with default flag for finite differences.DragForce(Atmosphere atmosphere, DragSensitive spacecraft, boolean useFiniteDifferencesOnDensityWrtPosition) Simple constructor.DragForce(Atmosphere atmosphere, DragSensitive spacecraft, boolean useFiniteDifferencesOnDensityWrtPosition, Atmosphere atmosphereForDerivatives) Constructor. -
Method Summary
Modifier and TypeMethodDescription<T extends CalculusFieldElement<T>>
FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters) Compute acceleration.acceleration(SpacecraftState s, double[] parameters) Compute acceleration.booleanCheck if force model depends on attitude's rotation rate or acceleration at a given, fixed date.Get the drivers for parameters.Get spacecraft that are sensitive to atmospheric drag forces.Methods inherited from class org.orekit.forces.drag.AbstractDragForceModel
acceleration, acceleration, dependsOnPositionOnly, getAtmosphere, getAtmosphereForField, getFieldDensity, getGradientDensityWrtState, getGradientDensityWrtStateUsingFiniteDifferences, isGradientStateDerivativeMethods 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.forces.ForceModel
addContribution, addContribution, getEventDetectors, getFieldEventDetectors, getMassDerivative, getMassDerivative, init, initMethods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
Constructor Details
-
DragForce
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
-
DragForce
public DragForce(Atmosphere atmosphere, DragSensitive spacecraft, boolean useFiniteDifferencesOnDensityWrtPosition, Atmosphere atmosphereForDerivatives) 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)atmosphereForDerivatives- atmospheric model used for partial derivatives (use fast one for performance)- Since:
- 14.0
-
-
Method Details
-
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
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
Get the drivers for parameters.- Returns:
- drivers for parameters
-
getSpacecraft
Get spacecraft that are sensitive to atmospheric drag forces.- Returns:
- drag sensitive spacecraft model
-