/* Copyright 2002-2017 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* <h1> Propagation </h1>
*
* This package provides tools to propagate orbital states with different methods.
*
* <p>
* 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.
* </p>
*
* <h2> Keplerian propagation </h2>
*
* <p> The {@link org.orekit.propagation.analytical.KeplerianPropagator}
* implements the {@link org.orekit.propagation.Propagator}
* interface, which ensures that we can obtain a propagated SpacecraftState
* at any time once the instance is initialized with an initial state.
* This extrapolation is not a problem with a simple
* {@link org.orekit.orbits.EquinoctialOrbit}
* representation: only the mean anomaly value changes.
*
* <h2> Eckstein-Hechler propagation </h2>
*
* <p> This analytical model is suited for near circular orbits and inclination
* neither equatorial nor critical. It considers J2 to J6 potential
* coefficients correctors, and uses mean parameters to compute the new
* position. As the keplerian propagator, it implements the
* {@link org.orekit.propagation.Propagator} interface.
*
* <h2> Numerical propagation </h2>
*
* <p> It is the most important part of the OREKIT project. Based on Hipparchus
* integrators, the {@link org.orekit.propagation.numerical.NumericalPropagator}
* class realizes the interface between space mechanics and mathematical
* resolutions. If its utilization seems difficult on first sight, it is in
* fact quite clear and intuitive.
*
* <p>
* 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.
* </p>
* <p>
* The {@link org.hipparchus.ode.ODEIntegrator integrators}
* provided by Hipparchus 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.
* </p>
*
* @author Luc Maisonobe
* @author Fabien Maussion
* @author Pascal Parraud
*
*/
package org.orekit.propagation;