public abstract class AbstractBodyAttraction extends JacobiansParameterizable implements ForceModel, GradientModel
Modifier and Type | Field and Description |
---|---|
protected boolean |
computePartialDerivativesWrtPosition
True if acceleration partial derivatives with respect to position have to be computed.
|
protected GravityModel |
gravityModel
The gravitational attraction model to consider.
|
static String |
K_FACTOR
Parameter name for central attraction coefficient.
|
Constructor and Description |
---|
AbstractBodyAttraction(GravityModel gravityModelIn,
boolean computePD,
double k)
Simple constructor.
|
AbstractBodyAttraction(GravityModel gravityModelIn,
boolean computePD,
Parameter k)
Simple 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 |
addDAccDParam(Vector3D pos,
Frame frame,
AbsoluteDate date,
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 |
addDAccDState(Vector3D pos,
Frame frame,
AbsoluteDate date,
double[][] dAccdPos)
Compute acceleration derivatives with respect to the position of the spacecraft.
|
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.
|
abstract Vector3D |
computeAcceleration(Vector3D pos,
Frame frame,
AbsoluteDate date)
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.
|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
GravityModel |
getGravityModel()
Get the gravitational attraction model.
|
double |
getMultiplicativeFactor()
Get the force multiplicative factor.
|
Parameter |
getMultiplicativeFactorParameter()
Get the force multiplicative factor parameter
|
void |
setMultiplicativeFactor(double factor)
Set the multiplicative factor.
|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
addAllParameters, addAllParameters, addParameter, getParameters, supportsParameter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameters, supportsParameter
public static final String K_FACTOR
protected final GravityModel gravityModel
protected final boolean computePartialDerivativesWrtPosition
public AbstractBodyAttraction(GravityModel gravityModelIn, boolean computePD, double k)
Simple constructor. Only central term of direct body is considered.
gravityModelIn
- the gravitational attraction model to considercomputePD
- true if partial derivatives have to be computedk
- multiplicative factorpublic AbstractBodyAttraction(GravityModel gravityModelIn, boolean computePD, Parameter k)
Simple constructor. Only central term of direct body is considered.
gravityModelIn
- the gravitational attraction model to considercomputePD
- true if partial derivatives have to be computedk
- multiplicative factorpublic boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
public 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 abstract Vector3D computeAcceleration(Vector3D pos, Frame frame, AbsoluteDate date) throws PatriusException
pos
- position of the spacecraftframe
- frame in which the acceleration derivatives are computeddate
- datePatriusException
- if some specific error occurspublic 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 addDAccDState(Vector3D pos, Frame frame, AbsoluteDate date, double[][] dAccdPos) throws PatriusException
pos
- position of the spacecraftframe
- frame in which the acceleration derivatives are computeddate
- datedAccdPos
- acceleration derivatives with respect to positionPatriusException
- 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 void addDAccDParam(Vector3D pos, Frame frame, AbsoluteDate date, Parameter param, double[] dAccdParam) throws PatriusException
pos
- position of the spacecraftframe
- frame in which the acceleration derivatives are computeddate
- dateparam
- the parameter with respect to which derivatives are requireddAccdParam
- acceleration derivatives with respect to specified parametersPatriusException
- if derivatives cannot be computedpublic 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 EventDetector[] getEventsDetectors()
getEventsDetectors
in interface ForceModel
public double getMultiplicativeFactor()
public Parameter getMultiplicativeFactorParameter()
public void setMultiplicativeFactor(double factor)
factor
- the force multiplicative factor to set.public GravityModel getGravityModel()
Copyright © 2023 CNES. All rights reserved.