Propagation is the prediction of the evolution of an initial state. The initial state and the propagated states are represented in OREKIT by a {@link org.orekit.propagation.SpacecraftState}, which is a simple container for all needed information at a specific date : mass, {@link org.orekit.utils.PVCoordinates kinematics}, {@link org.orekit.attitudes.Attitude attitude}, {@link org.orekit.time.AbsoluteDate date}, {@link org.orekit.frames.Frame frame}. The state provides basic interpolation features allowing to shift it slightly to close dates. For more accurate and farthest dates, several full-featured propagators are available to propagate the state.
The mathematical problem to integrate is a seven dimension time derivative equations system. The six first equations are given by the Gauss equations (expressed in {@link org.orekit.orbits.EquinoctialOrbit}) and the seventh is simply the flow rate and mass equation. This first order system is computed by the {@link org.orekit.propagation.numerical.TimeDerivativesEquations} class. It will be instanced by the propagator and then be modified at each step (a fixed t value) by all the needed {@link org.orekit.forces.ForceModel force models} which will add their contribution, the perturbing acceleration.
The {@link org.apache.commons.math.ode.FirstOrderIntegrator integrators} provided by commons-math need the state vector at t0, the state vector first time derivate at t0, and then calculates the next step state vector, and ask for the next first time derivative, etc. until it reaches the final asked date.
The {@link org.orekit.propagation.numerical.NumericalPropagatorWithJacobians} is a specialized class which enables to compute jacobians with respect to orbital parameters and force models parameters while propagating.
@author Luc Maisonobe @author Fabien Maussion @author Pascal Parraud