public abstract class AbstractTides extends JacobiansParameterizable implements ForceModel, GradientModel, PotentialTimeVariations
Common handling of ForceModel methods for tides models.
This abstract class allows to provide easily the full set of ForceModel methods to tides models. Only one
method must be implemented by derived classes: updateCoefficientsCandS(fr.cnes.sirius.patrius.time.AbsoluteDate).
| Modifier and Type | Field and Description |
|---|---|
protected Frame |
bodyFrame
Frame for the central body.
|
protected double[][] |
coefficientsC
First normalized potential tesseral coefficients array.
|
protected double[][] |
coefficientsCPD
First normalized potential tesseral coefficients array for partial derivatives computation.
|
protected double[][] |
coefficientsS
Second normalized potential tesseral coefficients array.
|
protected double[][] |
coefficientsSPD
Second normalized potential tesseral coefficients array for partial derivatives computation.
|
static String |
MU
Parameter name for central attraction coefficient.
|
protected Parameter |
paramAe
Equatorial radius parameter.
|
protected Parameter |
paramMu
Central attraction coefficient parameter.
|
static String |
RADIUS
Parameter name for equatorial radius.
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractTides(Frame centralBodyFrame,
double equatorialRadius,
double mu,
int degree,
int order)
Build a new instance.
|
protected |
AbstractTides(Frame centralBodyFrame,
double equatorialRadius,
double mu,
int degree,
int order,
int degreePD,
int orderPD)
Build a new instance.
|
protected |
AbstractTides(Frame centralBodyFrame,
Parameter equatorialRadius,
Parameter mu,
int degree,
int order)
Build a new instance using
Parameter. |
protected |
AbstractTides(Frame centralBodyFrame,
Parameter equatorialRadius,
Parameter mu,
int degree,
int order,
int degreePD,
int orderPD)
Build a new instance using
Parameter. |
| Modifier and Type | Method and Description |
|---|---|
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,
Frame frame,
AbsoluteDate date)
Method to compute the acceleration, from Balmino algorithm (see BalminoAttractionModel class).
|
Vector3D |
computeAcceleration(SpacecraftState s)
Compute the acceleration due to the force.
|
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.
|
abstract void |
updateCoefficientsCandS(AbsoluteDate date)
Update the C and the S coefficients for acceleration computation.
|
abstract void |
updateCoefficientsCandSPD(AbsoluteDate date)
Update the C and the S coefficients for partial derivatives computation.
|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameteraddAllParameters, addAllParameters, addParameter, getParameters, supportsParameterclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckDatagetParameters, supportsParametercomputeGradientPositionpublic static final String MU
public static final String RADIUS
protected Parameter paramMu
protected Parameter paramAe
protected double[][] coefficientsC
protected double[][] coefficientsS
protected double[][] coefficientsCPD
protected double[][] coefficientsSPD
protected final Frame bodyFrame
protected AbstractTides(Frame centralBodyFrame, double equatorialRadius, double mu, int degree, int order)
centralBodyFrame - rotating central body frameequatorialRadius - equatorial radiusmu - central body attraction coefficient (m3/s2)degree - degreeorder - orderprotected AbstractTides(Frame centralBodyFrame, double equatorialRadius, double mu, int degree, int order, int degreePD, int orderPD)
centralBodyFrame - rotating central body frameequatorialRadius - equatorial radiusmu - central body attraction coefficient (m3/s2)degree - degree for acceleration computationorder - order for acceleration computationdegreePD - degree for partial derivatives computationorderPD - order for partial derivatives computationprotected AbstractTides(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu, int degree, int order)
Parameter.centralBodyFrame - rotating central body frameequatorialRadius - equatorial radius parametermu - central body attraction coefficient (m3/s2) parameterdegree - degreeorder - orderprotected AbstractTides(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu, int degree, int order, int degreePD, int orderPD)
Parameter.centralBodyFrame - rotating central body frameequatorialRadius - equatorial radius parametermu - central body attraction coefficient (m3/s2) parameterdegree - degree for acceleration computationorder - order for acceleration computationdegreePD - degree for partial derivatives computationorderPD - order for partial derivatives computationpublic void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws PatriusException
addContribution in interface ForceModels - current state information: date, kinematics, attitudeadder - object where the contribution should be addedPatriusException - if some specific error occurspublic Vector3D computeAcceleration(SpacecraftState s) throws PatriusException
computeAcceleration in interface ForceModels - current state information: date, kinematics, attitudeSpacecraftState framePatriusException - if some specific error occurspublic Vector3D computeAcceleration(PVCoordinates pv, Frame frame, AbsoluteDate date) throws PatriusException
Method to compute the acceleration, from Balmino algorithm (see BalminoAttractionModel class). 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 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 spacecraftframe - frame in which the acceleration is computeddate - datePatriusException - if an Orekit error occurspublic EventDetector[] getEventsDetectors()
getEventsDetectors in interface ForceModelpublic boolean computeGradientVelocity()
computeGradientVelocity in interface GradientModelpublic abstract void updateCoefficientsCandS(AbsoluteDate date) throws PatriusException
updateCoefficientsCandS in interface PotentialTimeVariationsdate - : datePatriusException - if position cannot be computed in given framepublic abstract void updateCoefficientsCandSPD(AbsoluteDate date) throws PatriusException
updateCoefficientsCandSPD in interface PotentialTimeVariationsdate - : datePatriusException - if position cannot be computed in given framepublic final void addDAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel) throws PatriusException
addDAccDState in interface IJacobiansParameterizables - spacecraft statedAccdPos - acceleration derivatives with respect to positiondAccdVel - acceleration derivatives with respect to velocityPatriusException - if derivatives cannot be computedpublic void addDAccDParam(SpacecraftState s, Parameter param, double[] dAccdParam) throws PatriusException
addDAccDParam in interface IJacobiansParameterizables - spacecraft stateparam - the parameter with respect to which derivatives are requireddAccdParam - acceleration derivatives with respect to specified parametersPatriusException - if derivatives cannot be computedCopyright © 2024 CNES. All rights reserved.