The "Forces" package provides the interface for force models that will be used by the NumericalPropagator .
Objects implementing the force model interface are intended to be added to a numerical propagator before the propagation is started.
The propagator will call at each step the force model contribution computation method, to be added to its time derivative equations. 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.
The force models implemented are the following ones: