public 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:
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 and 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 int |
I
Retrograde factor.
|
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 and Description |
---|---|
protected |
AbstractGaussianContribution(double threshold,
ForceModel contribution)
Build a new instance.
|
Modifier and Type | Method and Description |
---|---|
void |
computeShortPeriodicsCoefficients(SpacecraftState state)
Compute the coefficients used for short periodic variations.
|
protected Vector3D |
getAcceleration(SpacecraftState state)
Compute the acceleration due to the non conservative perturbing force.
|
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.
|
double[] |
getShortPeriodicVariations(AbsoluteDate date,
double[] meanElements)
Computes the short periodic variations.
|
void |
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 |
resetShortPeriodicsCoefficients()
Reset the coefficients used for short periodic variations.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getEventsDetectors
protected int I
protected 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(double threshold, ForceModel contribution)
threshold
- tolerance for the choice of the Gauss quadrature ordercontribution
- the ForceModel
to be numerically averagedpublic void initialize(AuxiliaryElements aux, boolean meanOnly) throws OrekitException
This method aims at being called at the very beginning of a propagation.
initialize
in interface DSSTForceModel
aux
- auxiliary elements related to the current orbitmeanOnly
- only mean elements are used during the propagationOrekitException
- if some specific error occurspublic void initializeStep(AuxiliaryElements aux) throws OrekitException
This method aims at being called before mean elements rates computation.
initializeStep
in interface DSSTForceModel
aux
- auxiliary elements related to the current orbitOrekitException
- if some specific error occurspublic double[] getMeanElementRate(SpacecraftState state) throws OrekitException
getMeanElementRate
in interface DSSTForceModel
state
- current state information: date, kinematics, attitudeOrekitException
- if some specific error occursprotected Vector3D getAcceleration(SpacecraftState state) throws OrekitException
state
- 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 DSSTForceModel
provider
- the AttitudeProvider
public double[] getShortPeriodicVariations(AbsoluteDate date, double[] meanElements) throws OrekitException
getShortPeriodicVariations
in interface DSSTForceModel
date
- current datemeanElements
- mean elements at current dateOrekitException
- if some specific error occurspublic void computeShortPeriodicsCoefficients(SpacecraftState state) throws OrekitException
computeShortPeriodicsCoefficients
in interface DSSTForceModel
state
- current state information: date, kinematics, attitudeOrekitException
- if some specific error occurspublic void resetShortPeriodicsCoefficients()
This method is aimed to reset short periodics coefficients. It is called when one goes from a interpolation step to the next one.
resetShortPeriodicsCoefficients
in interface DSSTForceModel
Copyright © 2002-2015 CS Systèmes d'information. All rights reserved.