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 providedCartesianAdjointEquationTermare 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 CombinedDerivativescombinedDerivatives(SpacecraftState state)Compute the derivatives related to the additional state (and optionally main state increments).doubleevaluateHamiltonian(SpacecraftState state)Evaluate the Hamiltonian from Pontryagin's Maximum Principle.CartesianCostgetCost()Getter for the cost.intgetDimension()Getter for the dimension.StringgetName()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, wait
-
Methods inherited from interface org.orekit.propagation.integration.AdditionalDerivativesProvider
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
-
getCost
public CartesianCost getCost()
Getter for the cost.- Returns:
- cost
-
getName
public String 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
public void init(SpacecraftState initialState, AbsoluteDate target)
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
public CombinedDerivatives combinedDerivatives(SpacecraftState state)
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
public double evaluateHamiltonian(SpacecraftState state)
Evaluate the Hamiltonian from Pontryagin's Maximum Principle.- Parameters:
state- state assumed to hold the adjoint variables- Returns:
- Hamiltonian
-
-