public interface ForceModel extends IParameterizable
Objects implementing this interface are intended to be added to a
numerical propagator
before the propagation
is started.
The propagator will call at each step the addContribution(SpacecraftState, TimeDerivativesEquations)
method.
The force model instance will extract all the state data it needs (date,position, velocity, frame, attitude, mass)
from the first parameter. From these state data, it will compute the perturbing acceleration. It will then add this
acceleration to the second parameter which will take thins contribution into account and will use the Gauss equations
to evaluate its impact on the global state derivative.
Force models which create discontinuous acceleration patterns (typically for maneuvers start/stop or solar eclipses
entry/exit) must provide one or more events detectors
to the propagator thanks to their getEventsDetectors()
method. This method is called once just before
propagation starts. The events states will be checked by the propagator to ensure accurate propagation and proper
events handling.
Modifier and Type | Method and Description |
---|---|
void |
addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing
acceleration.
|
Vector3D |
computeAcceleration(SpacecraftState s)
Compute the acceleration due to the force.
|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
getParameters, supportsParameter
void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws PatriusException
s
- current state information: date, kinematics, attitudeadder
- object where the contribution should be addedPatriusException
- if some specific error occursVector3D computeAcceleration(SpacecraftState s) throws PatriusException
s
- current state information: date, kinematics, attitudeSpacecraftState frame
PatriusException
- if some specific error occursEventDetector[] getEventsDetectors()
Copyright © 2019 CNES. All rights reserved.