public class GridAttractionModel extends JacobiansParameterizable implements ForceModel, GradientModel, AttractionModel
GridAttractionProvider
which provides for a set of coordinates the value of acceleration. Interpolation
is performed within grid points using a TrivariateGridInterpolator
. Computed acceleration excludes the
central attraction force like the other AttractionModel
.
If requested point is out of grid boundaries, a 2nd model (back-up model) is used for computing attraction force.
Potential is also available using method computePotential(SpacecraftState)
.
Partial derivatives are not available.
MU
Constructor and Description |
---|
GridAttractionModel(GridAttractionProvider attractionProvider,
TrivariateGridInterpolator interpolator,
ForceModel backupModel,
Frame bodyFrame)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addContribution(SpacecraftState state,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing
acceleration.
|
void |
addDAccDParam(SpacecraftState state,
Parameter param,
double[] dAccdParam)
Compute acceleration derivatives with respect to additional parameters.
|
void |
addDAccDState(SpacecraftState state,
double[][] dAccdPos,
double[][] dAccdVel)
Compute acceleration derivatives with respect to state parameters.
|
void |
checkData(AbsoluteDate start,
AbsoluteDate end)
This methods throws an exception if the user did not provide all the required data to perform model call on
provided range [start; end].
|
Vector3D |
computeAcceleration(SpacecraftState state)
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.
|
double |
computePotential(SpacecraftState state)
Compute the potential due to the body attraction.
|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
double |
getMu()
Get the central attraction coefficient &mu.
|
double |
getMultiplicativeFactor()
Get the force multiplicative factor.
|
void |
setMultiplicativeFactor(double coefficient)
Set the multiplicative factor.
|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
addAllParameters, addAllParameters, addParameter, getParameters, supportsParameter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
enrichParameterDescriptors
getParameters, supportsParameter
public GridAttractionModel(GridAttractionProvider attractionProvider, TrivariateGridInterpolator interpolator, ForceModel backupModel, Frame bodyFrame)
attractionProvider
- attraction data providerinterpolator
- 3D interpolator using for interpolating acceleration and potentialbackupModel
- back-up model used if requested point out of boundaries. Beware that this model should not
include multiplicative coefficientbodyFrame
- body-centered frame in which grid and accelerations are expressed.
Frame shall be centered on body center of mass, not on grid systempublic void addContribution(SpacecraftState state, TimeDerivativesEquations adder) throws PatriusException
addContribution
in interface ForceModel
state
- current state information: date, kinematics, attitudeadder
- object where the contribution should be addedPatriusException
- if some specific error occurspublic Vector3D computeAcceleration(SpacecraftState state) throws PatriusException
computeAcceleration
in interface ForceModel
state
- current state information: date, kinematics, attitudeSpacecraftState frame
PatriusException
- if some specific error occurspublic double computePotential(SpacecraftState state) throws PatriusException
If state position is out of grid boundaries, potential is approximated to central body potential.
state
- spacecraft state.PatriusException
- thrown if position is out of grid boundariespublic EventDetector[] getEventsDetectors()
getEventsDetectors
in interface ForceModel
public boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
public final void addDAccDState(SpacecraftState state, double[][] dAccdPos, double[][] dAccdVel) throws PatriusException
addDAccDState
in interface IJacobiansParameterizable
state
- spacecraft statedAccdPos
- acceleration derivatives with respect to positiondAccdVel
- acceleration derivatives with respect to velocityPatriusException
- if derivatives cannot be computedpublic void addDAccDParam(SpacecraftState state, Parameter param, double[] dAccdParam) throws PatriusException
addDAccDParam
in interface IJacobiansParameterizable
state
- spacecraft stateparam
- the parameter with respect to which derivatives are requireddAccdParam
- acceleration derivatives with respect to specified parametersPatriusException
- if derivatives cannot be computedpublic double getMu()
getMu
in interface AttractionModel
public void checkData(AbsoluteDate start, AbsoluteDate end) throws PatriusException
checkData
in interface ForceModel
start
- range start dateend
- range end datePatriusException
- thrown if some data is missingpublic double getMultiplicativeFactor()
getMultiplicativeFactor
in interface AttractionModel
public void setMultiplicativeFactor(double coefficient)
setMultiplicativeFactor
in interface AttractionModel
coefficient
- the factor to set.Copyright © 2021 CNES. All rights reserved.