public class SphericalHarmonicGravityField extends Object
Constructor and Description |
---|
SphericalHarmonicGravityField(SphericalHarmonicGravityModel gravityModel,
CentralBody centralBody,
int degree,
int order,
boolean includeTwoBody,
SolidTideModel tideModel)
Initializes a new instance from a
SphericalHarmonicGravityModel ,
a CentralBody (get ), the degree and order
of the subset of the model that this field represents, and a boolean
representing whether to include two body forces. |
SphericalHarmonicGravityField(SphericalHarmonicGravityModel gravityModel,
CentralBody centralBody,
int degree,
int order,
int partialsDegree,
int partialsOrder,
boolean includeTwoBody,
SolidTideModel tideModel)
Initializes a new instance from a
SphericalHarmonicGravityModel ,
a CentralBody (get ), the degree and order
of the subset of the model that this field represents, the
degree and order to use when calculating partial derivatives, and a boolean
representing whether to include two body forces. |
SphericalHarmonicGravityField(SphericalHarmonicGravityModel gravityModel,
int degree,
int order,
boolean includeTwoBody,
SolidTideModel tideModel)
Initializes a new instance from a
SphericalHarmonicGravityModel , the degree and order
of the subset of the model that this field represents, and a boolean
representing whether to include two body forces. |
SphericalHarmonicGravityField(SphericalHarmonicGravityModel gravityModel,
int degree,
int order,
int partialsDegree,
int partialsOrder,
boolean includeTwoBody,
SolidTideModel tideModel)
Initializes a new instance from a
SphericalHarmonicGravityModel ,
the degree and order of the subset of the model that this field represents, the
degree and order to use when calculating partial derivatives, and a boolean
representing whether to include two body forces. |
Modifier and Type | Method and Description |
---|---|
CentralBody |
getCentralBody()
Gets the
CentralBody (get ) of this gravity field. |
int |
getDegree()
Gets the degree of the subset of the model this gravitational field uses.
|
double |
getGravitationalParameter()
Gets the gravitational parameter of the central body described by this gravity field.
|
SphericalHarmonicGravityModel |
getGravityModel()
Gets the
SphericalHarmonicGravityModel that is used to model the primary gravity field. |
boolean |
getIncludeTwoBodyGravity()
Gets a value indicating whether to include the effects of (two-body) gravity of zero degree and order
or to instead simply return the higher order perturbations.
|
int |
getOrder()
Gets the order of the subset of the model this gravitational field uses.
|
int |
getPartialsDegree()
Gets the degree of the subset of the model this gravitational field uses
to calculate partial derivatives.
|
int |
getPartialsOrder()
Gets the order of the subset of the model this gravitational field uses
to calculate partial derivatives.
|
double |
getReferenceRadius()
Gets the reference radius of the central body described by this gravity field.
|
SolidTideModel |
getTideModel()
Gets the
SolidTideModel that is optionally used to add solid tides to a SphericalHarmonicGravityModel . |
public SphericalHarmonicGravityField(@Nonnull SphericalHarmonicGravityModel gravityModel, int degree, int order, boolean includeTwoBody, @Nullable SolidTideModel tideModel)
SphericalHarmonicGravityModel
, the degree and order
of the subset of the model that this field represents, and a boolean
representing whether to include two body forces.gravityModel
- The full gravity model to configure.degree
- The desired degree. The configured gravity field will have
this degree if FileDegree
(get
/ set
) allows it.order
- The desired order. The configured gravity field will have
this degree if FileDegree
(get
/ set
),
FileOrder
(get
/ set
) and degree allow it.includeTwoBody
- The flag representing whether a force model
using this field should include two body gravity, or just the higher order perturbations.tideModel
- The solid tide model that incorporates the effects of tides upon the gravity model.ArgumentNullException
- Thrown when gravityModel is null
.ArgumentException
- Thrown when gravityModel
includes permanent tides and tideModel
is not null
.
In this case, the solid tide effects would be double counted. This exception can be mitigated by using
SphericalHarmonicGravityModel.withoutEarthPermanentTides()
or SphericalHarmonicGravityModel.withoutPermanentTides(agi.foundation.celestial.SphericalHarmonicCoefficients)
to remove the
permanent tides from gravityModel
or to set tideModel
to be null
.IllegalStateException
- Thrown if the CentralBodyName
(get
/ set
) in gravityModel
does not refer to
one of the supported central bodies. In that case use
SphericalHarmonicGravityField.SphericalHarmonicGravityField(SphericalHarmonicGravityModel,agi.foundation.celestial.CentralBody,int,int,boolean,SolidTideModel)
public SphericalHarmonicGravityField(@Nonnull SphericalHarmonicGravityModel gravityModel, CentralBody centralBody, int degree, int order, boolean includeTwoBody, @Nullable SolidTideModel tideModel)
SphericalHarmonicGravityModel
,
a CentralBody
(get
), the degree and order
of the subset of the model that this field represents, and a boolean
representing whether to include two body forces.gravityModel
- The full gravity model to configure.centralBody
- The central body to use for this gravity field instead
of referencing CentralBodyName
(get
/ set
)degree
- The desired degree. The configured gravity field will have
this degree if FileDegree
(get
/ set
) allows it.order
- The desired order. The configured gravity field will have
this degree if FileDegree
(get
/ set
),
FileOrder
(get
/ set
) and degree allow it.includeTwoBody
- The flag representing whether a force model
using this field should include two body gravity, or just the higher order perturbations.tideModel
- The solid tide model that incorporates the effects of tides upon the gravity model.ArgumentNullException
- Thrown when gravityModel is null
.ArgumentException
- Thrown when gravityModel
includes permanent tides and tideModel
is not null
.
In this case, the solid tide effects would be double counted. This exception can be mitigated by using
SphericalHarmonicGravityModel.withoutEarthPermanentTides()
or SphericalHarmonicGravityModel.withoutPermanentTides(agi.foundation.celestial.SphericalHarmonicCoefficients)
to remove the
permanent tides from gravityModel
or to set tideModel
to be null
.public SphericalHarmonicGravityField(@Nonnull SphericalHarmonicGravityModel gravityModel, int degree, int order, int partialsDegree, int partialsOrder, boolean includeTwoBody, @Nullable SolidTideModel tideModel)
SphericalHarmonicGravityModel
,
the degree and order of the subset of the model that this field represents, the
degree and order to use when calculating partial derivatives, and a boolean
representing whether to include two body forces.gravityModel
- The full gravity model to configure.degree
- The desired degree. The configured gravity field will have
this degree if FileDegree
(get
/ set
) allows it.order
- The desired order. The configured gravity field will have
this degree if FileDegree
(get
/ set
),
FileOrder
(get
/ set
) and degree allow it.partialsDegree
- The degree to use for calculating partial derivatives.partialsOrder
- The order to use for calculating partial derivatives.includeTwoBody
- The flag representing whether a force model
using this field should include two body gravity, or just the higher order perturbations.tideModel
- The solid tide model that incorporates the effects of tides upon the gravity model.ArgumentNullException
- Thrown when gravityModel is null
.ArgumentException
- Thrown when gravityModel
includes permanent tides and tideModel
is not null
.
In this case, the solid tide effects would be double counted. This exception can be mitigated by using
SphericalHarmonicGravityModel.withoutEarthPermanentTides()
or SphericalHarmonicGravityModel.withoutPermanentTides(agi.foundation.celestial.SphericalHarmonicCoefficients)
to remove the
permanent tides from gravityModel
or to set tideModel
to be null
.IllegalStateException
- Thrown if the CentralBodyName
(get
/ set
) in gravityModel
does not refer to
the one of the supported central bodies. In that case use
SphericalHarmonicGravityField.SphericalHarmonicGravityField(SphericalHarmonicGravityModel,agi.foundation.celestial.CentralBody,int,int,int,int,boolean,SolidTideModel)
.public SphericalHarmonicGravityField(@Nonnull SphericalHarmonicGravityModel gravityModel, CentralBody centralBody, int degree, int order, int partialsDegree, int partialsOrder, boolean includeTwoBody, @Nullable SolidTideModel tideModel)
SphericalHarmonicGravityModel
,
a CentralBody
(get
), the degree and order
of the subset of the model that this field represents, the
degree and order to use when calculating partial derivatives, and a boolean
representing whether to include two body forces.gravityModel
- The full gravity model to configure.centralBody
- The central body to use for this gravity field instead
of referencing CentralBodyName
(get
/ set
)degree
- The desired degree. The configured gravity field will have
this degree if FileDegree
(get
/ set
) allows it.order
- The desired order. The configured gravity field will have
this degree if FileDegree
(get
/ set
),
FileOrder
(get
/ set
) and degree allow it.partialsDegree
- The degree to use for calculating partial derivatives.partialsOrder
- The order to use for calculating partial derivatives.includeTwoBody
- The flag representing whether a force model
using this field should include two body gravity, or just the higher order perturbations.tideModel
- The solid tide model that incorporates the effects of tides upon the gravity model.ArgumentNullException
- Thrown when gravityModel is null
.ArgumentException
- Thrown when gravityModel
includes permanent tides and tideModel
is not null
.
In this case, the solid tide effects would be double counted. This exception can be mitigated by using
SphericalHarmonicGravityModel.withoutEarthPermanentTides()
or SphericalHarmonicGravityModel.withoutPermanentTides(agi.foundation.celestial.SphericalHarmonicCoefficients)
to remove the
permanent tides from gravityModel
or to set tideModel
to be null
.public final double getGravitationalParameter()
public final double getReferenceRadius()
public final CentralBody getCentralBody()
CentralBody
(get
) of this gravity field.@Nonnull public final SphericalHarmonicGravityModel getGravityModel()
SphericalHarmonicGravityModel
that is used to model the primary gravity field.@Nullable public final SolidTideModel getTideModel()
SolidTideModel
that is optionally used to add solid tides to a SphericalHarmonicGravityModel
.
Can be null
if there are no solid tides added to the gravity model.public final boolean getIncludeTwoBodyGravity()
public final int getDegree()
public final int getOrder()
public final int getPartialsDegree()
public final int getPartialsOrder()