|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.orekit.parameter.Parameterizable
org.orekit.forces.gravity.DrozinerAttractionModel
public class DrozinerAttractionModel
This class represents the gravitational field of a celestial body.
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.
Field Summary | |
---|---|
static String |
RADIUS
Parameter name for equatorial radius. |
Fields inherited from interface org.orekit.forces.gravity.AttractionModel |
---|
MU |
Constructor Summary | |
---|---|
DrozinerAttractionModel(Frame centralBodyFrame,
double equatorialRadius,
double mu,
double[][] C,
double[][] S)
Creates a new instance. |
|
DrozinerAttractionModel(Frame centralBodyFrame,
double equatorialRadius,
double mu,
double[][] C,
double[][] S,
boolean computePDPos,
boolean computePDVel)
Creates a new instance. |
|
DrozinerAttractionModel(Frame centralBodyFrame,
Parameter equatorialRadius,
Parameter mu,
double[][] C,
double[][] S)
Creates a new instance using Parameter . |
|
DrozinerAttractionModel(Frame centralBodyFrame,
Parameter equatorialRadius,
Parameter mu,
double[][] C,
double[][] S,
boolean computePDPos,
boolean computePDVel)
Creates a new instance using Parameter . |
Method Summary | |
---|---|
void |
addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing acceleration. |
Vector3D |
computeAcceleration(PVCoordinates pv,
AbsoluteDate date)
Method to compute the acceleration. |
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.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 |
---|
public static final String RADIUS
Constructor Detail |
---|
public DrozinerAttractionModel(Frame centralBodyFrame, double equatorialRadius, double mu, double[][] C, double[][] S) throws IllegalArgumentException
centralBodyFrame
- rotating body frameequatorialRadius
- reference equatorial radius of the potentialmu
- central body attraction coefficient (m3/s2)C
- un-normalized coefficients array (cosine part)S
- un-normalized coefficients array (sine part)
IllegalArgumentException
- if coefficients array do not matchpublic DrozinerAttractionModel(Frame centralBodyFrame, double equatorialRadius, double mu, double[][] C, double[][] S, boolean computePDPos, boolean computePDVel) throws IllegalArgumentException
centralBodyFrame
- rotating body frameequatorialRadius
- reference equatorial radius of the potentialmu
- central body attraction coefficient (m3/s2)C
- un-normalized coefficients array (cosine part)S
- un-normalized coefficients array (sine part)computePDPos
- true if partial derivatives wrt position have to be computedcomputePDVel
- true if partial derivatives wrt velocity have to be computed
IllegalArgumentException
- if coefficients array do not matchpublic DrozinerAttractionModel(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu, double[][] C, double[][] S) throws IllegalArgumentException
Parameter
.
centralBodyFrame
- rotating body frameequatorialRadius
- parameter representing reference equatorial radius of the potentialmu
- parameter representing central body attraction coefficient (m3/s2)C
- un-normalized coefficients array (cosine part)S
- un-normalized coefficients array (sine part)
IllegalArgumentException
- if coefficients array do not matchpublic DrozinerAttractionModel(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu, double[][] C, double[][] S, boolean computePDPos, boolean computePDVel) throws IllegalArgumentException
Parameter
.
centralBodyFrame
- rotating body frameequatorialRadius
- parameter representing reference equatorial radius of the potentialmu
- parameter representing central body attraction coefficient (m3/s2)C
- un-normalized coefficients array (cosine part)S
- un-normalized coefficients array (sine part)computePDPos
- true if partial derivatives wrt position have to be computedcomputePDVel
- true if partial derivatives wrt velocity have to be computed
IllegalArgumentException
- if coefficients array do not matchMethod Detail |
---|
public void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws OrekitException
addContribution
in interface ForceModel
s
- current state information: date, kinematics, attitudeadder
- object where the contribution should be added
OrekitException
- if some specific error occurspublic final EventDetector[] getEventsDetectors()
getEventsDetectors
in interface ForceModel
public boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
public Vector3D computeAcceleration(SpacecraftState s) throws OrekitException
computeAcceleration
in interface ForceModel
s
- current state information: date, kinematics, attitude
SpacecraftState frame
OrekitException
- if some specific error occurspublic final Vector3D computeAcceleration(PVCoordinates pv, AbsoluteDate date) throws OrekitException
Method to compute the acceleration. This method has been implemented in order to validate the force model only. The reason is that for the validation context, we do not want to set up an instance of the SpacecraftState object to avoid the inertial frame of the spacecraft orbit.
(see Story #V82 and Feature #34 on https://www.orekit.org/forge/issues/34)
Out of the validation context, one must use the method Vector3D computeAcceleration(final SpacecraftState s)
pv
- PV coordinates of the spacecraftdate
- date
OrekitException
- if an Orekit error occurspublic double getMu()
getMu
in interface AttractionModel
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |