public class BalminoGravityModel extends AbstractHarmonicGravityModel
The algorithm implemented in this class has been designed by Balmino Georges (Observatoire Midi-Pyrénées/ Groupe de Recherche de Géodésie Spatiale (GRGS) / Centre National d’Etudes Spatiales (CNES), France) in his 1990 paper: Non-singular formulation of the gravity vector and gravity gradient tensor in spherical harmonics. (Manuscr. Geod., Vol. 15, No. 1, p. 11 - 16, 02/1990). It uses normalized C and S coefficients for greater accuracy.
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.
|
bodyFrame, centralTermContribution, MU, paramMu
Constructor and Description |
---|
BalminoGravityModel(Frame frame,
double ae,
double mu,
double[][] cCoefs,
double[][] sCoefs)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
BalminoGravityModel(Frame frame,
double ae,
double mu,
double[][] cCoefs,
double[][] sCoefs,
int degreePD,
int orderPD)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
BalminoGravityModel(Frame frame,
Parameter ae,
Parameter mu,
double[][] cCoefs,
double[][] sCoefs)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
BalminoGravityModel(Frame frame,
Parameter ae,
Parameter mu,
double[][] cCoefs,
double[][] sCoefs,
int degreePD,
int orderPD)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
BalminoGravityModel(Frame frame,
Parameter ae,
Parameter mu,
double[][] cCoefs,
double[][] sCoefs,
int degreePD,
int orderPD,
boolean centralTermContributionIn)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
Modifier and Type | Method and Description |
---|---|
void |
checkData(AbsoluteDate start,
AbsoluteDate end)
This methods throws an exception if the user did not provide all the required data to perform model call on
provided range [start; end].
|
Vector3D |
computeNonCentralTermsAcceleration(Vector3D pos,
AbsoluteDate date,
Transform bodyFrameToPositionFrame)
Compute the acceleration due to the non-central terms of the gravitational attraction.
|
double[][] |
computeNonCentralTermsDAccDPos(Vector3D pos,
Frame frame,
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, computeDAccDPos, isCentralTermContributionApplied, setCentralTermContribution
getBodyFrame, getMu, setMu
public static final String RADIUS
public BalminoGravityModel(Frame frame, double ae, double mu, double[][] cCoefs, double[][] sCoefs)
frame
- central body frameae
- equatorial radius constantmu
- standard gravitational constantcCoefs
- Normalized c coefficientssCoefs
- Normalized s coefficientspublic BalminoGravityModel(Frame frame, double ae, double mu, double[][] cCoefs, double[][] sCoefs, int degreePD, int orderPD)
frame
- central body frameae
- equatorial radius constantmu
- standard gravitational constantcCoefs
- Normalized c coefficients for acceleration computationsCoefs
- Normalized s coefficients for acceleration computationdegreePD
- degree for partial derivativesorderPD
- order for partial derivativespublic BalminoGravityModel(Frame frame, Parameter ae, Parameter mu, double[][] cCoefs, double[][] sCoefs)
frame
- central body frameae
- parameter storing equatorial radiusmu
- parameter storing standard gravitationalcCoefs
- Normalized c coefficientssCoefs
- Normalized s coefficientspublic BalminoGravityModel(Frame frame, Parameter ae, Parameter mu, double[][] cCoefs, double[][] sCoefs, int degreePD, int orderPD)
frame
- central body frameae
- parameter storing equatorial radiusmu
- parameter storing standard gravitationalcCoefs
- Normalized c coefficients for acceleration computationsCoefs
- Normalized s coefficients for acceleration computationdegreePD
- degree for partial derivativesorderPD
- order for partial derivativespublic BalminoGravityModel(Frame frame, Parameter ae, Parameter mu, double[][] cCoefs, double[][] sCoefs, int degreePD, int orderPD, boolean centralTermContributionIn)
frame
- central body frameae
- parameter storing equatorial radiusmu
- parameter storing standard gravitationalcCoefs
- Normalized c coefficients for acceleration computationsCoefs
- Normalized s coefficients for acceleration computationdegreePD
- degree for partial derivativesorderPD
- order for partial derivativescentralTermContributionIn
- true if central term contribution should be considered (by default), false if
notpublic Vector3D computeNonCentralTermsAcceleration(Vector3D pos, AbsoluteDate date, Transform bodyFrameToPositionFrame) throws PatriusException
computeNonCentralTermsAcceleration
in class AbstractHarmonicGravityModel
pos
- position of the spacecraftdate
- datebodyFrameToPositionFrame
- body frame to frame in which position is provided transformation (used for
computation times speed-up)PatriusException
- if some specific error occurspublic final double[][] computeNonCentralTermsDAccDPos(Vector3D pos, Frame frame, AbsoluteDate date) throws PatriusException
computeNonCentralTermsDAccDPos
in class AbstractHarmonicGravityModel
pos
- position of the spacecraftframe
- frame in which the acceleration derivatives are computeddate
- datePatriusException
- if derivatives cannot be computedpublic void checkData(AbsoluteDate start, AbsoluteDate end) throws PatriusException
start
- range start dateend
- range end datePatriusException
- thrown if some data is missingpublic double getAe()
public void setAe(double aeIn)
aeIn
- the equatorial radius.public double[][] getC()
public double[][] getS()
Copyright © 2023 CNES. All rights reserved.