Commit 45133524 authored by Pascal Parraud's avatar Pascal Parraud
Browse files

updated site documentation for jacobians computation

parent 32123389
......@@ -12,6 +12,7 @@ The src/main/resources directory contains the library data.
The src/test/java directory contains the tests sources.
The src/test/resources directory contains the tests data.
The src/tutorials directory contains sources for example use of the library.
The src/design directory contains pieces for a UML model of the library.
Orekit relies on the following free software, all released under
business friendly free licenses.
......@@ -26,4 +27,4 @@ test-time dependency:
- JUnit from Erich Gamma and Kent Beck
http://www.junit.org/
released under the Common Public License Version 1.0
\ No newline at end of file
released under the Common Public License Version 1.0
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>OrekitDesign</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -20,11 +20,13 @@ import org.orekit.errors.OrekitException;
import org.orekit.propagation.SpacecraftState;
import org.orekit.propagation.numerical.TimeDerivativesEquationsWithJacobians;
/** This interface represents a force modifying spacecraft motion.
/** This interface represents a parameterized force modifying spacecraft motion.
*
* <p> Objects implementing this interface are intended to be added, before the propagation is started,
* to a {@link org.orekit.propagation.numerical.NumericalPropagatorWithJacobians numerical propagator}
* in order to compute partial derivatives with respect to the selected force model parameters. </p>
* in order to compute partial derivatives of orbital parameters with respect to the
* {@link org.orekit.propagation.numerical.NumericalPropagatorWithJacobians#selectParameters(String[]) selected}
* force model parameters.</p>
*
* @see ForceModel
*
......
......@@ -18,7 +18,8 @@ package org.orekit.forces;
import java.util.Collection;
/** This interface enables the parameters jacobian processing.
/** This interface enables to process partial derivatives
* with respect to force model parameters.
*
* @author Pascal Parraud
* @version $Revision$ $Date$
......@@ -26,7 +27,7 @@ import java.util.Collection;
public interface Parameterizable {
/** Get the names of the supported parameters.
/** Get the names of the supported parameters for partial derivatives processing.
* @return parameters names
*/
Collection<String> getParametersNames();
......
......@@ -31,6 +31,7 @@ import org.orekit.time.AbsoluteDate;
/** Atmospheric drag force model.
*
* The drag acceleration is computed as follows :
*
* &gamma = (1/2 * Ro * V<sup>2</sup> * S / Mass) * DragCoefVector
......@@ -47,7 +48,7 @@ import org.orekit.time.AbsoluteDate;
public class DragForce implements ForceModelWithJacobians {
/** Parameter name for drag coefficient. */
/** Parameter name for drag coefficient enabling jacobian processing. */
public static final String DRAG_COEFFICIENT = "DRAG COEFFICIENT";
/** Serializable UID. */
......
<html>
<body>
This package provides the interface for force models that will be used by the
{@link org.orekit.propagation.numerical.NumericalPropagator}, as well as some
classical spacecraft models for surface forces (spherical, box and solar array ...).
{@link org.orekit.propagation.numerical.NumericalPropagator} and the
{@link org.orekit.propagation.numerical.NumericalPropagatorWithJacobians}, as well as
some classical spacecraft models for surface forces (spherical, box and solar array ...).
@author Luc Maisonobe
@author Pascal Parraud
</body>
</html>
\ No newline at end of file
......@@ -42,10 +42,10 @@ import org.orekit.utils.PVCoordinatesProvider;
*/
public class SolarRadiationPressure implements ForceModelWithJacobians {
/** Parameter name for absorption coefficient. */
/** Parameter name for absorption coefficient enabling jacobian processing. */
public static final String ABSORPTION_COEFFICIENT = "ABSORPTION COEFFICIENT";
/** Parameter name for specular reflection coefficient. */
/** Parameter name for specular reflection coefficient enabling jacobian processing. */
public static final String REFLECTION_COEFFICIENT = "REFLECTION COEFFICIENT";
/** Serializable UID. */
......
......@@ -88,6 +88,7 @@ discrete events. Here is a short list of the features offered by the library:</p
mode (all intermediate results solved and navigation feature enabled, to use the
generated ephemeris later as if it was an analytical model, ideal for search and
iterative algorithms)</li>
<li>computation of jacobians with respect to orbital parameters and selected force models parameters</li>
<li>serialization mechanism to store complete results on persistent storage for later use</li>
</ul>
</li>
......
......@@ -50,19 +50,25 @@ import org.orekit.time.AbsoluteDate;
* As of 5.0, this class is still considered experimental, so use it with care.
* </p>
* <p>
* Propagation is done the same way {@link NumericalPropagator} does.
* The underlying numerical integrator configuration can be the same as
* these for a simple numerical integration.
* The underlying numerical integrator configuration can be exactly the same
* as these for a simple {@link NumericalPropagator numerical integration}.
* </p>
* <p>
* The Jacobian for the six {@link EquinoctialOrbit equinoctial orbit parameters}
* (a, e<sub>x</sub>, e<sub>y</sub>, h<sub>x</sub>, h<sub>y</sub>, l<sub>v</sub>)
* and the mass is computed as a 7x7 array.
* and the mass is computed as a 7x7 array such as:
* <pre>
* dFdY[i][j] = dyi/dyj
* with: y0 = a, y1 = ex, y2 = ey, y3 = hx, y4 = hy, y5 = lv, y6 = mass
* </pre>
* </p>
* <p>
* Partial derivatives can also be computed for the 7 elements state vector with
* respect to {@link #selectParameters selected parameters} from
* {@link ForceModelWithJacobians force models}.
* respect to n {@link #selectParameters selected parameters} from
* {@link ForceModelWithJacobians force models}. They are computed as a 7xn array:
* <pre>
* dFdP[i][j] = dyi/dpj
* </pre>
* </p>
*
* @see NumericalPropagator
......@@ -153,7 +159,7 @@ public class NumericalPropagatorWithJacobians extends NumericalPropagator {
/** Get the parameters selected for jacobian processing.
* @return parameters considered for jacobian processing
* @see #selectParameters(String)
* @see #selectParameters(String[])
*/
public String[] getParameterNames() {
return selectedParameters.clone();
......@@ -164,7 +170,7 @@ public class NumericalPropagatorWithJacobians extends NumericalPropagator {
* {@link NumericalPropagator#propagate(AbsoluteDate) basic one}.</p>
* <p>Jacobian for orbit parameters is given as a 7x7 array.</p>
* <p>Partial derivatives will be computed as a 7xn array
* when n parameters have been {@link #selectParameters(String) selected}
* when n parameters have been {@link #selectParameters(String[]) selected}
* (n may be 0).</p>
* <p>Those parameters are related to some {@link ForceModelWithJacobians force models}
* which must have been added elsewhere.</p>
......
......@@ -28,8 +28,8 @@ import org.orekit.orbits.EquinoctialOrbit;
* As of 5.0, this class is still considered experimental, so use it with care.
* </p>
* <p>
* It is related to {@link NumericalPropagatorWithJacobians} in the same way
* {@link TimeDerivativesEquations} is related {@link NumericalPropagator}.
* It is related to {@link NumericalPropagatorWithJacobians} like
* {@link TimeDerivativesEquations} to {@link NumericalPropagator}.
* </p>
*
* @see TimeDerivativesEquations
......
......@@ -55,10 +55,16 @@ This package provides tools to propagate orbital states with different methods.
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. </p>
asked date.
</p>
<p> 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.
</p>
@author Luc Maisonobe
@author Fabien Maussion
@author Pascal Parraud
</body>
</html>
\ No newline at end of file
......@@ -165,9 +165,15 @@ integrator.setInitialStepSize(initStep);
propagator = new NumericalPropagator(integrator);
+---------------------
In addition, the <NumericalPropagatorWithJacobians> class enables to compute the sensitivity
of the state vector to the initial state or some parameter of the force models. It computes
the jacobians dy(t)/dy0 and dy(t)/dp where y0 is the initial state and p some parameter.
* Authors
** Luc Maisonobe
** Fabien Maussion
** Pascal Parraud
\ No newline at end of file
......@@ -95,6 +95,9 @@ Overview
* state of the art ODE integrators (adaptive stepsize with error control,
continuous output, switching functions, G-stop, step normalization ...)
* computation of jacobians with respect to orbital parameters and selected
force models parameters
* serialization mechanism to store complete results on persistent storage for
later use
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment