public class VariablePotentialAttractionModel extends JacobiansParameterizable implements ForceModel, GradientModel, PotentialTimeVariations
Modifier and Type | Field and Description |
---|---|
static String |
RADIUS
Parameter name for equatorial radius.
|
Constructor and Description |
---|
VariablePotentialAttractionModel(Frame centralBodyFrame,
VariablePotentialCoefficientsProvider provider,
int degree,
int order)
Variable gravity field force model constructor (static part only).
|
VariablePotentialAttractionModel(Frame centralBodyFrame,
VariablePotentialCoefficientsProvider provider,
int degree,
int order,
int degreePD,
int orderPD)
Variable gravity field force model constructor (static part only).
|
VariablePotentialAttractionModel(Frame centralBodyFrame,
VariablePotentialCoefficientsProvider provider,
int degree,
int order,
int degreeOptional,
int orderOptional,
boolean computeOptionalOnce)
Variable gravity field force model constructor.
|
VariablePotentialAttractionModel(Frame centralBodyFrame,
VariablePotentialCoefficientsProvider provider,
int degree,
int order,
int degreePD,
int orderPD,
int degreeOptional,
int orderOptional,
int degreeOptionalPD,
int orderOptionalPD,
boolean computeOptionalOnce)
Variable gravity field force model constructor.
|
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(AbsoluteDate date,
PVCoordinates pv)
Compute acceleration in rotating frame
|
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.
|
double |
getAe() |
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
double |
getMu() |
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.
|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
addParameter, getParameters, supportsParameter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameters, supportsParameter
public static final String RADIUS
public VariablePotentialAttractionModel(Frame centralBodyFrame, VariablePotentialCoefficientsProvider provider, int degree, int order, int degreePD, int orderPD) throws PatriusException
centralBodyFrame
- central rotating body frameprovider
- normalized variable coefficients providerdegree
- degree for acceleration computationorder
- order for acceleration computationdegreePD
- degree for partial derivatives computationorderPD
- order for partial derivatives computationPatriusException
- if degree too largepublic VariablePotentialAttractionModel(Frame centralBodyFrame, VariablePotentialCoefficientsProvider provider, int degree, int order) throws PatriusException
centralBodyFrame
- central rotating body frameprovider
- normalized variable coefficients providerdegree
- degreeorder
- orderPatriusException
- if degree too largepublic VariablePotentialAttractionModel(Frame centralBodyFrame, VariablePotentialCoefficientsProvider provider, int degree, int order, int degreePD, int orderPD, int degreeOptional, int orderOptional, int degreeOptionalPD, int orderOptionalPD, boolean computeOptionalOnce) throws PatriusException
centralBodyFrame
- central rotating body frameprovider
- normalized variable coefficients providerdegree
- degree for acceleration computationorder
- order for acceleration computationdegreePD
- degree for partial derivatives computationorderPD
- order for partial derivatives computationdegreeOptional
- max degree of optional terms to take into account for acceleration computationorderOptional
- max order of optional terms to take into account for acceleration computationdegreeOptionalPD
- max degree of optional terms to take into account for partial derivatives computationorderOptionalPD
- max order of optional terms to take into account for partial derivatives computationcomputeOptionalOnce
- true to indicate that coefficients should be computed just once at instantiation. false if
coefficients are to be computed every timePatriusException
- if degree too largepublic VariablePotentialAttractionModel(Frame centralBodyFrame, VariablePotentialCoefficientsProvider provider, int degree, int order, int degreeOptional, int orderOptional, boolean computeOptionalOnce) throws PatriusException
centralBodyFrame
- central rotating body frameprovider
- normalized variable coefficients providerdegree
- degreeorder
- orderdegreeOptional
- max degree of optional terms to take into accountorderOptional
- max order of optional terms to take into accountcomputeOptionalOnce
- true to indicate that coefficients should be computed just once at instanciation. false if
coefficients are to be computed every time.PatriusException
- if degree too largepublic void updateCoefficientsCandS(AbsoluteDate date) throws PatriusException
updateCoefficientsCandS
in interface PotentialTimeVariations
date
- : datePatriusException
- if position cannot be computed in given framepublic void updateCoefficientsCandSPD(AbsoluteDate date) throws PatriusException
updateCoefficientsCandSPD
in interface PotentialTimeVariations
date
- : datePatriusException
- if position cannot be computed in given framepublic void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws PatriusException
addContribution
in interface ForceModel
s
- 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 ForceModel
s
- current state information: date, kinematics, attitudeSpacecraftState frame
PatriusException
- if some specific error occurspublic Vector3D computeAcceleration(AbsoluteDate date, PVCoordinates pv) throws PatriusException
date
- date at which to compute accelerationpv
- pv of spacecraftPatriusException
- if acceleration cannot be computedpublic EventDetector[] getEventsDetectors()
getEventsDetectors
in interface ForceModel
public boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
public double getMu()
public double getAe()
public void addDAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel) throws PatriusException
IJacobiansParameterizable
addDAccDState
in interface IJacobiansParameterizable
s
- 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 IJacobiansParameterizable
s
- spacecraft stateparam
- the parameter with respect to which derivatives are requireddAccdParam
- acceleration derivatives with respect to specified parametersPatriusException
- if derivatives cannot be computedCopyright © 2017 CNES. All rights reserved.