public abstract class AbstractDragForceModel extends Object implements ForceModel
DragForce
,
TimeSpanDragForce
DATATION_ACCURACY
Modifier | Constructor and Description |
---|---|
protected |
AbstractDragForceModel(Atmosphere atmosphere)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
dependsOnPositionOnly()
Check if force models depends on position only.
|
protected org.hipparchus.analysis.differentiation.DerivativeStructure |
getDSDensityWrtStateUsingFiniteDifferences(AbsoluteDate date,
Frame frame,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.DerivativeStructure> position)
Compute density and its derivatives.
|
protected org.hipparchus.analysis.differentiation.Gradient |
getGradientDensityWrtStateUsingFiniteDifferences(AbsoluteDate date,
Frame frame,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.Gradient> position)
Compute density and its derivatives.
|
protected <T extends org.hipparchus.CalculusFieldElement<T>> |
isDSStateDerivative(FieldSpacecraftState<T> state)
Check if a field state corresponds to derivatives with respect to state.
|
protected <T extends org.hipparchus.CalculusFieldElement<T>> |
isGradientStateDerivative(FieldSpacecraftState<T> state)
Check if a field state corresponds to derivatives with respect to state.
|
protected boolean |
isVariable(org.hipparchus.analysis.differentiation.DerivativeStructure ds,
int index)
Check if a derivative represents a specified variable.
|
protected boolean |
isVariable(org.hipparchus.analysis.differentiation.Gradient g,
int index)
Check if a derivative represents a specified variable.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
acceleration, acceleration, addContribution, addContribution, getEventDetectors, getFieldEventDetectors, init, init
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, getParametersDrivers, isSupported
getEventDetectors, getFieldEventDetectors
protected AbstractDragForceModel(Atmosphere atmosphere)
atmosphere
- atmospheric modelpublic boolean dependsOnPositionOnly()
dependsOnPositionOnly
in interface ForceModel
protected <T extends org.hipparchus.CalculusFieldElement<T>> boolean isDSStateDerivative(FieldSpacecraftState<T> state)
T
- type of the field elementsstate
- state to checkprotected <T extends org.hipparchus.CalculusFieldElement<T>> boolean isGradientStateDerivative(FieldSpacecraftState<T> state)
T
- type of the field elementsstate
- state to checkprotected boolean isVariable(org.hipparchus.analysis.differentiation.DerivativeStructure ds, int index)
ds
- derivative to checkindex
- index of the variableprotected boolean isVariable(org.hipparchus.analysis.differentiation.Gradient g, int index)
g
- derivative to checkindex
- index of the variableprotected org.hipparchus.analysis.differentiation.DerivativeStructure getDSDensityWrtStateUsingFiniteDifferences(AbsoluteDate date, Frame frame, org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.DerivativeStructure> position)
From a theoretical point of view, this method computes the same values
as Atmosphere.getDensity(FieldAbsoluteDate, FieldVector3D, Frame)
in the
specific case of DerivativeStructure
with respect to state, so
it is less general. However, it is *much* faster in this important case.
The derivatives should be computed with respect to position. The input parameters already take into account the free parameters (6, 7 or 8 depending on derivation with respect to drag coefficient and lift ratio being considered or not) and order (always 1). Free parameters at indices 0, 1 and 2 correspond to derivatives with respect to position. Free parameters at indices 3, 4 and 5 correspond to derivatives with respect to velocity (these derivatives will remain zero as the atmospheric density does not depend on velocity). Free parameter at indexes 6 and 7 (if present) corresponds to derivatives with respect to drag coefficient and/or lift ratio (one of these or both). This 2 last derivatives will remain zero as atmospheric density does not depend on them.
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in inertial frameprotected org.hipparchus.analysis.differentiation.Gradient getGradientDensityWrtStateUsingFiniteDifferences(AbsoluteDate date, Frame frame, org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.Gradient> position)
From a theoretical point of view, this method computes the same values
as Atmosphere.getDensity(FieldAbsoluteDate, FieldVector3D, Frame)
in the
specific case of Gradient
with respect to state, so
it is less general. However, it is *much* faster in this important case.
The derivatives should be computed with respect to position. The input parameters already take into account the free parameters (6, 7 or 8 depending on derivation with respect to drag coefficient and lift ratio being considered or not) and order (always 1). Free parameters at indices 0, 1 and 2 correspond to derivatives with respect to position. Free parameters at indices 3, 4 and 5 correspond to derivatives with respect to velocity (these derivatives will remain zero as the atmospheric density does not depend on velocity). Free parameter at indexes 6 and 7 (if present) corresponds to derivatives with respect to drag coefficient and/or lift ratio (one of these or both). This 2 last derivatives will remain zero as atmospheric density does not depend on them.
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in inertial frameCopyright © 2002-2023 CS GROUP. All rights reserved.