DSSTForceModelDSSTAtmosphericDrag, DSSTSolarRadiationPressurepublic abstract class AbstractGaussianContribution extends Object implements DSSTForceModel
DSSTForceModel methods for Gaussian contributions to DSST propagation.
This abstract class allows to provide easily a subset of DSSTForceModel methods
for specific Gaussian contributions.
This class implements the notion of numerical averaging of the DSST theory. Numerical averaging is mainly used for non-conservative disturbing forces such as atmospheric drag and solar radiation pressure.
Gaussian contributions can be expressed as: dai/dt = δai/δv . q
where:
The averaging process and other considerations lead to integrate this contribution over the true longitude L possibly taking into account some limits.
To create a numerically averaged contribution, one needs only to provide a
ForceModel and to implement in the derived class the method:
getLLimits(SpacecraftState).
| Modifier and Type | Field | Description |
|---|---|---|
protected double |
a |
a.
|
protected double |
A |
A = sqrt(μ * a).
|
protected double |
B |
B = sqrt(1 - h² - k²).
|
protected double |
C |
C = 1 + p² + q².
|
protected double |
co2AB |
C / (2 * A * B) .
|
protected double |
ecc |
Eccentricity.
|
protected Vector3D |
f |
Equinoctial frame f vector.
|
protected Vector3D |
g |
Equinoctial frame g vector.
|
protected double |
h |
ey.
|
protected double |
k |
ex.
|
protected double |
lm |
Mean longitude.
|
protected double |
mu |
μ .
|
protected double |
n |
Kepler mean motion: n = sqrt(μ / a³).
|
protected double |
ooA |
1 / A .
|
protected double |
ooAB |
1 / (A * B) .
|
protected double |
ooBpo |
1 / (1 + B) .
|
protected double |
ooMu |
1 / μ .
|
protected double |
p |
hy.
|
protected double |
q |
hx.
|
protected double |
ton2a |
2 / (n² * a) .
|
protected Vector3D |
w |
Equinoctial frame w vector.
|
| Modifier | Constructor | Description |
|---|---|---|
protected |
AbstractGaussianContribution(String coefficientsKeyPrefix,
double threshold,
ForceModel contribution) |
Build a new instance.
|
| Modifier and Type | Method | Description |
|---|---|---|
protected abstract double[] |
getLLimits(SpacecraftState state) |
Compute the limits in L, the true longitude, for integration.
|
double[] |
getMeanElementRate(SpacecraftState state) |
Computes the mean equinoctial elements rates dai / dt.
|
List<ShortPeriodTerms> |
initialize(AuxiliaryElements aux,
boolean meanOnly) |
Performs initialization prior to propagation for the current force model.
|
void |
initializeStep(AuxiliaryElements aux) |
Performs initialization at each integration step for the current force model.
|
void |
registerAttitudeProvider(AttitudeProvider provider) |
Register an attitude provider.
|
void |
updateShortPeriodTerms(SpacecraftState... meanStates) |
Update the short period terms.
|
getEventsDetectorsprotected double a
protected double k
protected double h
protected double q
protected double p
protected double ecc
protected double n
protected double lm
protected Vector3D f
protected Vector3D g
protected Vector3D w
protected double A
protected double B
protected double C
protected double ton2a
protected double ooA
protected double ooAB
protected double co2AB
protected double ooBpo
protected double ooMu
protected double mu
protected AbstractGaussianContribution(String coefficientsKeyPrefix, double threshold, ForceModel contribution)
coefficientsKeyPrefix - prefix for coefficients keysthreshold - tolerance for the choice of the Gauss quadrature ordercontribution - the ForceModel to be numerically averagedpublic List<ShortPeriodTerms> initialize(AuxiliaryElements aux, boolean meanOnly)
This method aims at being called at the very beginning of a propagation.
initialize in interface DSSTForceModelaux - auxiliary elements related to the current orbitmeanOnly - only mean elements are used during the propagationpublic void initializeStep(AuxiliaryElements aux) throws OrekitException
This method aims at being called before mean elements rates computation.
initializeStep in interface DSSTForceModelaux - auxiliary elements related to the current orbitOrekitException - if some specific error occurspublic double[] getMeanElementRate(SpacecraftState state) throws OrekitException
getMeanElementRate in interface DSSTForceModelstate - current state information: date, kinematics, attitudeOrekitException - if some specific error occursprotected abstract double[] getLLimits(SpacecraftState state) throws OrekitException
state - current state information: date, kinematics, attitudeOrekitException - if some specific error occurspublic void registerAttitudeProvider(AttitudeProvider provider)
Register an attitude provider that can be used by the force model.
registerAttitudeProvider in interface DSSTForceModelprovider - the AttitudeProviderpublic void updateShortPeriodTerms(SpacecraftState... meanStates) throws OrekitException
The short period terms that will be updated
are the ones that were returned during the call to DSSTForceModel.initialize(AuxiliaryElements, boolean).
updateShortPeriodTerms in interface DSSTForceModelmeanStates - mean states information: date, kinematics, attitudeOrekitException - if some specific error occursCopyright © 2002-2018 CS Systèmes d'information. All rights reserved.