org.orekit.forces.gravity.tides
Class TerrestrialTides

java.lang.Object
  extended by org.orekit.parameter.Parameterizable
      extended by org.orekit.parameter.JacobiansParameterizable
          extended by org.orekit.forces.gravity.tides.AbstractTides
              extended by org.orekit.forces.gravity.tides.TerrestrialTides
All Implemented Interfaces:
Serializable, ForceModel, GradientModel, PotentialTimeVariations, IJacobiansParameterizable, IParameterizable

public class TerrestrialTides
extends AbstractTides

This class implements the perturbating force due to terrestrial tides (deformation due to third body attraction on an aneslatic crust, ellipticity correction, frequency correction). It is possible to activate/deactivate one of these corrections. At least the model take into account the deformation due to the moon and the sun attraction up to degree 2.

The implementation of this class enables the computation of partial derivatives by finite differences with respect to the central attraction coefficient.

Since:
1.1
Version:
$Id: TerrestrialTides.java 17582 2017-05-10 12:58:16Z bignon $
Author:
Julie Anton, Gerald Mercadier
See Also:
Serialized Form
Concurrency :
not thread-safe
Concurrency comment :
not thread safe because of the method updateCoefficientsCandS().

Field Summary
 
Fields inherited from class org.orekit.forces.gravity.tides.AbstractTides
bodyFrame, coefficientsC, coefficientsCPD, coefficientsS, coefficientsSPD, MU, paramAe, paramMu, RADIUS
 
Constructor Summary
TerrestrialTides(Frame centralBodyFrame, double equatorialRadius, double mu)
          Creates a new instance.
TerrestrialTides(Frame centralBodyFrame, double equatorialRadius, double mu, boolean computePD)
          Creates a new instance.
TerrestrialTides(Frame centralBodyFrame, double equatorialRadius, double mu, List<CelestialBody> bodies, boolean thirdBodyAttDegree3, boolean frequencyCorr, boolean ellipticityCorr, ITerrestrialTidesDataProvider terrestrialData)
          Creates a new instance.
TerrestrialTides(Frame centralBodyFrame, double equatorialRadius, double mu, List<CelestialBody> bodies, boolean thirdBodyAttDegree3, boolean frequencyCorr, boolean ellipticityCorr, ITerrestrialTidesDataProvider terrestrialData, boolean computePD)
          Creates a new instance.
TerrestrialTides(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu)
          Creates a new instance.
TerrestrialTides(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu, boolean computePD)
          Creates a new instance.
TerrestrialTides(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu, List<CelestialBody> bodies, boolean thirdBodyAttDegree3, boolean frequencyCorr, boolean ellipticityCorr, ITerrestrialTidesDataProvider terrestrialData)
          Creates a new instance using Parameter.
TerrestrialTides(Frame centralBodyFrame, Parameter equatorialRadius, Parameter mu, List<CelestialBody> bodies, boolean thirdBodyAttDegree3, boolean frequencyCorr, boolean ellipticityCorr, ITerrestrialTidesDataProvider terrestrialData, boolean computePD)
          Creates a new instance using Parameter.
 
Method Summary
 boolean computeGradientPosition()
          This method returns true if the acceleration partial derivatives with respect to position have to be computed.
 void updateCoefficientsCandS(AbsoluteDate date)
          Update the C and the S coefficients for acceleration computation.
 void updateCoefficientsCandSPD(AbsoluteDate date)
          Update the C and the S coefficients for partial derivatives computation.
 
Methods inherited from class org.orekit.forces.gravity.tides.AbstractTides
addContribution, addDAccDParam, addDAccDState, computeAcceleration, computeAcceleration, computeGradientVelocity, getEventsDetectors
 
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
 

Constructor Detail

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        double equatorialRadius,
                        double mu,
                        List<CelestialBody> bodies,
                        boolean thirdBodyAttDegree3,
                        boolean frequencyCorr,
                        boolean ellipticityCorr,
                        ITerrestrialTidesDataProvider terrestrialData)
                 throws OrekitException
Creates a new instance. It is possible to consider several perturbing bodies. The correction due to the tidal potential is taken into account up to degree 2 and 3 if it is specified by the user. It is also possible to activate the frequency correction and the ellipticity correction.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential
mu - central body attraction coefficient (m3/s2)
bodies - perturbing bodies
thirdBodyAttDegree3 - if true the perturbation of tidal potential are taken into account up to degree 3
frequencyCorr - if true the frequency correction is applied
ellipticityCorr - if true the ellipticity correction is applied
terrestrialData - terrestrial tide data
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        double equatorialRadius,
                        double mu,
                        List<CelestialBody> bodies,
                        boolean thirdBodyAttDegree3,
                        boolean frequencyCorr,
                        boolean ellipticityCorr,
                        ITerrestrialTidesDataProvider terrestrialData,
                        boolean computePD)
                 throws OrekitException
Creates a new instance. It is possible to consider several perturbing bodies. The correction due to the tidal potential is taken into account up to degree 2 and 3 if it is specified by the user. It is also possible to activate the frequency correction and the ellipticity correction.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential
mu - central body attraction coefficient (m3/s2)
bodies - perturbing bodies
thirdBodyAttDegree3 - if true the perturbation of tidal potential are taken into account up to degree 3
frequencyCorr - if true the frequency correction is applied
ellipticityCorr - if true the ellipticity correction is applied
terrestrialData - terrestrial tide data
computePD - if partial derivatives wrt position have to be computed
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        Parameter equatorialRadius,
                        Parameter mu,
                        List<CelestialBody> bodies,
                        boolean thirdBodyAttDegree3,
                        boolean frequencyCorr,
                        boolean ellipticityCorr,
                        ITerrestrialTidesDataProvider terrestrialData)
                 throws OrekitException
Creates a new instance using Parameter. It is possible to consider several perturbing bodies. The correction due to the tidal potential is taken into account up to degree 2 and 3 if it is specified by the user. It is also possible to activate the frequency correction and the ellipticity correction.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential parameter
mu - central body attraction coefficient (m3/s2) parameter
bodies - perturbing bodies
thirdBodyAttDegree3 - if true the perturbation of tidal potential are taken into account up to degree 3
frequencyCorr - if true the frequency correction is applied
ellipticityCorr - if true the ellipticity correction is applied
terrestrialData - terrestrial tide data
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        Parameter equatorialRadius,
                        Parameter mu,
                        List<CelestialBody> bodies,
                        boolean thirdBodyAttDegree3,
                        boolean frequencyCorr,
                        boolean ellipticityCorr,
                        ITerrestrialTidesDataProvider terrestrialData,
                        boolean computePD)
                 throws OrekitException
Creates a new instance using Parameter. It is possible to consider several perturbing bodies. The correction due to the tidal potential is taken into account up to degree 2 and 3 if it is specified by the user. It is also possible to activate the frequency correction and the ellipticity correction.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential as a parameter
mu - central body attraction coefficient (m3/s2) as a parameter
bodies - perturbing bodies
thirdBodyAttDegree3 - if true the perturbation of tidal potential are taken into account up to degree 3
frequencyCorr - if true the frequency correction is applied
ellipticityCorr - if true the ellipticity correction is applied
terrestrialData - terrestrial tide data
computePD - true if partial derivatives wrt position have to be computed
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        double equatorialRadius,
                        double mu)
                 throws OrekitException
Creates a new instance. The perturbating bodies are the moon and the sun. This constructor takes into account all of the corrections.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential
mu - central body attraction coefficient (m3/s2)
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        double equatorialRadius,
                        double mu,
                        boolean computePD)
                 throws OrekitException
Creates a new instance. The perturbating bodies are the moon and the sun. This constructor takes into account all of the corrections.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential
mu - central body attraction coefficient (m3/s2)
computePD - true if partial derivatives wrt position have to be computed
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        Parameter equatorialRadius,
                        Parameter mu)
                 throws OrekitException
Creates a new instance. The perturbating bodies are the moon and the sun. This constructor takes into account all of the corrections.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential parameter
mu - central body attraction coefficient (m3/s2) parameter
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built

TerrestrialTides

public TerrestrialTides(Frame centralBodyFrame,
                        Parameter equatorialRadius,
                        Parameter mu,
                        boolean computePD)
                 throws OrekitException
Creates a new instance. The perturbating bodies are the moon and the sun. This constructor takes into account all of the corrections.

Parameters:
centralBodyFrame - rotating body frame
equatorialRadius - reference equatorial radius of the potential parameter
mu - central body attraction coefficient (m3/s2) parameter
computePD - true if partial derivatives have to be computed
Throws:
IllegalArgumentException - if coefficients array do not match
OrekitException - if a perturbing celestial body cannot be built
Method Detail

updateCoefficientsCandS

public void updateCoefficientsCandS(AbsoluteDate date)
                             throws OrekitException
Update the C and the S coefficients for acceleration computation.

Specified by:
updateCoefficientsCandS in interface PotentialTimeVariations
Specified by:
updateCoefficientsCandS in class AbstractTides
Parameters:
date - : date
Throws:
OrekitException - if position cannot be computed in given frame

updateCoefficientsCandSPD

public void updateCoefficientsCandSPD(AbsoluteDate date)
                               throws OrekitException
Update the C and the S coefficients for partial derivatives computation.

Specified by:
updateCoefficientsCandSPD in interface PotentialTimeVariations
Specified by:
updateCoefficientsCandSPD in class AbstractTides
Parameters:
date - : date
Throws:
OrekitException - if position cannot be computed in given frame

computeGradientPosition

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

Returns:
true if the derivatives have to be computed, false otherwise


Copyright © 2017 CNES. All Rights Reserved.