Class CartesianAdjointDerivativesProvider
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.AbstractCartesianAdjointDerivativesProvider
-
- org.orekit.control.indirect.adjoint.CartesianAdjointDerivativesProvider
-
- All Implemented Interfaces:
AdditionalDerivativesProvider
public class CartesianAdjointDerivativesProvider extends AbstractCartesianAdjointDerivativesProvider implements AdditionalDerivativesProvider
Class defining the adjoint dynamics, as defined in the Pontryagin Maximum Principle, in the case where Cartesian coordinates in an inertial frame are the dependent variable. The time derivatives of the adjoint variables are obtained by differentiating the so-called Hamiltonian. They depend on the force model and the cost being minimized. For the former, it is the user's responsibility to make sure the providedCartesianAdjointEquationTerm
are consistent with theForceModel
. For the latter, the cost function is represented through the interfaceCartesianCost
.- Since:
- 12.2
- Author:
- Romain Serra
- See Also:
AdditionalDerivativesProvider
,NumericalPropagator
-
-
Constructor Summary
Constructors Constructor Description CartesianAdjointDerivativesProvider(CartesianCost cost, CartesianAdjointEquationTerm... adjointEquationTerms)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CombinedDerivatives
combinedDerivatives(SpacecraftState state)
Compute the derivatives related to the additional state (and optionally main state increments).double
evaluateHamiltonian(SpacecraftState state)
Evaluate the Hamiltonian from Pontryagin's Maximum Principle.void
init(SpacecraftState initialState, AbsoluteDate target)
Initialize the generator at the start of propagation.-
Methods inherited from class org.orekit.control.indirect.adjoint.AbstractCartesianAdjointDerivativesProvider
getCost, getDimension, getName
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.integration.AdditionalDerivativesProvider
getDimension, getName, yields
-
-
-
-
Constructor Detail
-
CartesianAdjointDerivativesProvider
public CartesianAdjointDerivativesProvider(CartesianCost cost, CartesianAdjointEquationTerm... adjointEquationTerms)
Constructor.- Parameters:
cost
- cost functionadjointEquationTerms
- terms contributing to the adjoint equations. If none, then the propagator should have no forces, not even a Newtonian attraction.
-
-
Method Detail
-
init
public void init(SpacecraftState initialState, AbsoluteDate target)
Initialize the generator at the start of propagation.- Specified by:
init
in interfaceAdditionalDerivativesProvider
- Parameters:
initialState
- initial state information at the start of propagationtarget
- date of propagation
-
combinedDerivatives
public CombinedDerivatives combinedDerivatives(SpacecraftState state)
Compute the derivatives related to the additional state (and optionally main state increments).- Specified by:
combinedDerivatives
in interfaceAdditionalDerivativesProvider
- Parameters:
state
- current state information: date, kinematics, attitude, and additional states this equations depend on (according to theyields
method)- Returns:
- computed combined derivatives, which may include some incremental coupling effect to add to main state derivatives
-
evaluateHamiltonian
public double evaluateHamiltonian(SpacecraftState state)
Evaluate the Hamiltonian from Pontryagin's Maximum Principle.- Parameters:
state
- state assumed to hold the adjoint variables- Returns:
- Hamiltonian
-
-