Class CartesianAdjointDerivativesProvider
java.lang.Object
org.orekit.control.indirect.adjoint.CartesianAdjointDerivativesProvider
- All Implemented Interfaces:
AdditionalDerivativesProvider
public class CartesianAdjointDerivativesProvider
extends Object
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 provided
CartesianAdjointEquationTerm are consistent with the ForceModel.
For the latter, the cost function is represented through the interface CartesianCost.- Since:
- 12.2
- Author:
- Romain Serra
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCartesianAdjointDerivativesProvider(CartesianCost cost, CartesianAdjointEquationTerm... adjointEquationTerms) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionCompute the derivatives related to the additional state (and optionally main state increments).doubleEvaluate the Hamiltonian from Pontryagin's Maximum Principle.getCost()Getter for the cost.intGetter for the dimension.getName()Getter for the name.voidinit(SpacecraftState initialState, AbsoluteDate target) Initialize the generator at the start of propagation.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.integration.AdditionalDerivativesProvider
yields
-
Constructor Details
-
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 Details
-
getCost
Getter for the cost.- Returns:
- cost
-
getName
Getter for the name.- Specified by:
getNamein interfaceAdditionalDerivativesProvider- Returns:
- name
-
getDimension
public int getDimension()Getter for the dimension.- Specified by:
getDimensionin interfaceAdditionalDerivativesProvider- Returns:
- dimension
-
init
Initialize the generator at the start of propagation.- Specified by:
initin interfaceAdditionalDerivativesProvider- Parameters:
initialState- initial state information at the start of propagationtarget- date of propagation
-
combinedDerivatives
Compute the derivatives related to the additional state (and optionally main state increments).- Specified by:
combinedDerivativesin interfaceAdditionalDerivativesProvider- Parameters:
state- current state information: date, kinematics, attitude, and additional states this equations depend on (according to theyieldsmethod)- Returns:
- computed combined derivatives, which may include some incremental coupling effect to add to main state derivatives
-
evaluateHamiltonian
Evaluate the Hamiltonian from Pontryagin's Maximum Principle.- Parameters:
state- state assumed to hold the adjoint variables- Returns:
- Hamiltonian
-