public class DrozinerGravityModel extends AbstractHarmonicGravityModel
The algorithm implemented in this class has been designed by Andrzej Droziner (Institute of Mathematical Machines, Warsaw) in his 1976 paper: An algorithm for recurrent calculation of gravitational acceleration (artificial satellites, Vol. 12, No 2, June 1977).
The implementation of this class enables the computation of partial derivatives by finite differences with respect to the central attraction coefficient.
Warning: using a 0x0 Earth potential model is equivalent to a simple Newtonian attraction. However computation times will be much slower since this case is not particularized and hence conversion from body frame (often ITRF) to integration frame is necessary.
Modifier and Type | Field and Description |
---|---|
static String |
RADIUS
Parameter name for equatorial radius.
|
MU
Constructor and Description |
---|
DrozinerGravityModel(Frame centralBodyFrameIn,
double equatorialRadius,
double mu,
double[][] cCoefs,
double[][] sCoefs)
Creates a new instance.
|
DrozinerGravityModel(Frame centralBodyFrameIn,
Parameter equatorialRadius,
Parameter mu,
double[][] cCoefs,
double[][] sCoefs)
Creates a new instance using
Parameter . |
DrozinerGravityModel(Frame centralBodyFrameIn,
Parameter equatorialRadius,
Parameter mu,
double[][] cCoefs,
double[][] sCoefs,
boolean centralTermContributionIn)
Creates a new instance using
Parameter . |
Modifier and Type | Method and Description |
---|---|
double[][] |
computeDAccDPos(Vector3D positionInBodyFrame,
AbsoluteDate date)
Compute acceleration derivatives with respect to the position of the spacecraft.
|
Vector3D |
computeNonCentralTermsAcceleration(Vector3D positionInBodyFrame,
AbsoluteDate date)
Compute the acceleration due to the non-central terms of the gravitational attraction.
|
double[][] |
computeNonCentralTermsDAccDPos(Vector3D positionInBodyFrame,
AbsoluteDate date)
Compute acceleration derivatives with respect to the state parameters for the non-central terms.
|
double |
getAe()
Get the equatorial radius.
|
double[][] |
getC() |
double[][] |
getS() |
void |
setAe(double aeIn)
Set the equatorial radius.
|
computeAcceleration, computeCentralTermAcceleration, computeCentralTermDAccDPos, isCentralTermContributionApplied, setCentralTermContribution
getBodyFrame, getMu, getMuParameter, setMu
public static final String RADIUS
public DrozinerGravityModel(Frame centralBodyFrameIn, double equatorialRadius, double mu, double[][] cCoefs, double[][] sCoefs)
centralBodyFrameIn
- rotating body frameequatorialRadius
- reference equatorial radius of the potentialmu
- central body attraction coefficient (m3/s2)cCoefs
- un-normalized coefficients array (cosine part)sCoefs
- un-normalized coefficients array (sine part)IllegalArgumentException
- if coefficients array do not matchpublic DrozinerGravityModel(Frame centralBodyFrameIn, Parameter equatorialRadius, Parameter mu, double[][] cCoefs, double[][] sCoefs)
Parameter
.centralBodyFrameIn
- rotating body frameequatorialRadius
- parameter representing reference equatorial radius of the potentialmu
- parameter representing central body attraction coefficient
(m3/s2)cCoefs
- un-normalized coefficients array (cosine part)sCoefs
- un-normalized coefficients array (sine part)IllegalArgumentException
- if coefficients array do not matchpublic DrozinerGravityModel(Frame centralBodyFrameIn, Parameter equatorialRadius, Parameter mu, double[][] cCoefs, double[][] sCoefs, boolean centralTermContributionIn)
Parameter
.centralBodyFrameIn
- rotating body frameequatorialRadius
- parameter representing reference equatorial radius of the potentialmu
- parameter representing central body attraction coefficient
(m3/s2)cCoefs
- un-normalized coefficients array (cosine part)sCoefs
- un-normalized coefficients array (sine part)centralTermContributionIn
- true if central term contribution should be considered (by default), false if
notIllegalArgumentException
- if coefficients array do not matchpublic Vector3D computeNonCentralTermsAcceleration(Vector3D positionInBodyFrame, AbsoluteDate date) throws PatriusException
computeNonCentralTermsAcceleration
in class AbstractHarmonicGravityModel
positionInBodyFrame
- the position expressed in the body frame
date
- the datePatriusException
- if some specific error occurspublic final double[][] computeNonCentralTermsDAccDPos(Vector3D positionInBodyFrame, AbsoluteDate date) throws PatriusException
computeNonCentralTermsDAccDPos
in class AbstractHarmonicGravityModel
positionInBodyFrame
- position of the spacecraft in the body framedate
- datePatriusException
- if derivatives cannot be computedpublic double[][] computeDAccDPos(Vector3D positionInBodyFrame, AbsoluteDate date) throws PatriusException
computeDAccDPos
in interface GravityModel
computeDAccDPos
in class AbstractHarmonicGravityModel
positionInBodyFrame
- the position expressed in the body frame
date
- The date for which the computation needs to be performedPatriusException
- if derivatives cannot be computedpublic double getAe()
public void setAe(double aeIn)
aeIn
- the equatorial radius.public double[][] getC()
public double[][] getS()
Copyright © 2023 CNES. All rights reserved.