org.orekit.forces.gravity
Class BalminoAttractionModel

java.lang.Object
  extended by org.orekit.parameter.Parameterizable
      extended by org.orekit.parameter.JacobiansParameterizable
          extended by org.orekit.forces.gravity.BalminoAttractionModel
All Implemented Interfaces:
Serializable, ForceModel, GradientModel, AttractionModel, IJacobiansParameterizable, IParameterizable

public class BalminoAttractionModel
extends JacobiansParameterizable
implements ForceModel, GradientModel, AttractionModel

Computation of central body attraction with normalized coefficients and Helmholtz Polynomials.

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.

Since:
2.1
Version:
$Id: BalminoAttractionModel.java 15711 2016-04-01 08:51:41Z bignon $
Author:
Rami Houdroge
See Also:
Serialized Form
Concurrency :
not thread-safe, uses internal mutable attributes

Field Summary
static String RADIUS
          Parameter name for equatorial radius.
 
Fields inherited from interface org.orekit.forces.gravity.AttractionModel
MU
 
Constructor Summary
BalminoAttractionModel(Frame frame, double ae, double mu, double[][] Ccoefs, double[][] Scoefs)
          Create an instance of a normalized gravity computation model using normalized coefficients.
BalminoAttractionModel(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.
BalminoAttractionModel(Frame frame, Parameter ae, Parameter mu, double[][] Ccoefs, double[][] Scoefs)
          Create an instance of a normalized gravity computation model using normalized coefficients.
BalminoAttractionModel(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.
 
Method Summary
 void addContribution(SpacecraftState s, TimeDerivativesEquations adder)
          Compute the contribution of the force model to the perturbing acceleration.
 void addDAccDParam(SpacecraftState s, Parameter param, double[] dAccdParam)
          Compute acceleration derivatives with respect to additional parameters.
 void addDAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel)
          Compute acceleration derivatives with respect to state parameters.
 Vector3D computeAcceleration(PVCoordinates pv)
          Acceleration in body frame.
 Vector3D computeAcceleration(SpacecraftState s)
          Compute the acceleration due to the force.
 boolean computeGradientPosition()
          This method returns true if the acceleration partial derivatives with respect to position have to be computed.
 boolean computeGradientVelocity()
          This method returns true if the acceleration partial derivatives with respect to velocity have to be computed.
 EventDetector[] getEventsDetectors()
          Get the discrete events related to the model.
 double getMu()
          Get the central attraction coefficient &mu.
 
Methods inherited from class org.orekit.parameter.JacobiansParameterizable
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
 
Methods inherited from class org.orekit.parameter.Parameterizable
addParameter, getParameters, supportsParameter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.orekit.parameter.IParameterizable
getParameters, supportsParameter
 

Field Detail

RADIUS

public static final String RADIUS
Parameter name for equatorial radius.

See Also:
Constant Field Values
Constructor Detail

BalminoAttractionModel

public BalminoAttractionModel(Frame frame,
                              double ae,
                              double mu,
                              double[][] Ccoefs,
                              double[][] Scoefs)
Create an instance of a normalized gravity computation model using normalized coefficients.

Parameters:
frame - central body frame
ae - equatorial radius constant
mu - standard gravitational constant
Ccoefs - Normalized c coefficients
Scoefs - Normalized s coefficients

BalminoAttractionModel

public BalminoAttractionModel(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.

Parameters:
frame - central body frame
ae - equatorial radius constant
mu - standard gravitational constant
Ccoefs - Normalized c coefficients for acceleration computation
Scoefs - Normalized s coefficients for acceleration computation
degreePD - degree for partial derivatives
orderPD - order for partial derivatives

BalminoAttractionModel

public BalminoAttractionModel(Frame frame,
                              Parameter ae,
                              Parameter mu,
                              double[][] Ccoefs,
                              double[][] Scoefs)
Create an instance of a normalized gravity computation model using normalized coefficients.

Parameters:
frame - central body frame
ae - parameter storing equatorial radius
mu - parameter storing standard gravitational
Ccoefs - Normalized c coefficients
Scoefs - Normalized s coefficients

BalminoAttractionModel

public BalminoAttractionModel(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.

Parameters:
frame - central body frame
ae - parameter storing equatorial radius
mu - parameter storing standard gravitational
Ccoefs - Normalized c coefficients for acceleration computation
Scoefs - Normalized s coefficients for acceleration computation
degreePD - degree for partial derivatives
orderPD - order for partial derivatives
Method Detail

addContribution

public void addContribution(SpacecraftState s,
                            TimeDerivativesEquations adder)
                     throws OrekitException
Compute the contribution of the force model to the perturbing acceleration..

Specified by:
addContribution in interface ForceModel
Parameters:
s - current state information: date, kinematics, attitude
adder - object where the contribution should be added
Throws:
OrekitException - if some specific error occurs

computeAcceleration

public Vector3D computeAcceleration(SpacecraftState s)
                             throws OrekitException
Compute the acceleration due to the force..

Specified by:
computeAcceleration in interface ForceModel
Parameters:
s - current state information: date, kinematics, attitude
Returns:
acceleration in the SpacecraftState frame
Throws:
OrekitException - if some specific error occurs

computeAcceleration

public final Vector3D computeAcceleration(PVCoordinates pv)
Acceleration in body frame.

Parameters:
pv - the PVCoordinates of the spacecraft in the body frame
Returns:
the computed acceleration

getEventsDetectors

public EventDetector[] getEventsDetectors()
Get the discrete events related to the model..

Specified by:
getEventsDetectors in interface ForceModel
Returns:
array of events detectors or null if the model is not related to any discrete events

computeGradientPosition

public boolean computeGradientPosition()
This method returns true if the acceleration partial derivatives with respect to position have to be computed..

Specified by:
computeGradientPosition in interface GradientModel
Returns:
true if the derivatives have to be computed, false otherwise

computeGradientVelocity

public boolean computeGradientVelocity()
This method returns true if the acceleration partial derivatives with respect to velocity have to be computed..

Specified by:
computeGradientVelocity in interface GradientModel
Returns:
true if the derivatives have to be computed, false otherwise

addDAccDState

public final void addDAccDState(SpacecraftState s,
                                double[][] dAccdPos,
                                double[][] dAccdVel)
                         throws OrekitException
Compute acceleration derivatives with respect to state parameters..

Specified by:
addDAccDState in interface IJacobiansParameterizable
Parameters:
s - spacecraft state
dAccdPos - acceleration derivatives with respect to position
dAccdVel - acceleration derivatives with respect to velocity
Throws:
OrekitException - if derivatives cannot be computed

addDAccDParam

public void addDAccDParam(SpacecraftState s,
                          Parameter param,
                          double[] dAccdParam)
                   throws OrekitException
Compute acceleration derivatives with respect to additional parameters.. No parameter is supported by this force model.

Specified by:
addDAccDParam in interface IJacobiansParameterizable
Parameters:
s - spacecraft state
param - the parameter with respect to which derivatives are required
dAccdParam - acceleration derivatives with respect to specified parameters
Throws:
OrekitException - if derivatives cannot be computed

getMu

public double getMu()
Get the central attraction coefficient &mu..

Specified by:
getMu in interface AttractionModel
Returns:
mu central attraction coefficient (m3/s2)


Copyright © 2016 CNES. All Rights Reserved.