Interface CartesianCost
-
- All Superinterfaces:
EventDetectorsProvider
- All Known Implementing Classes:
AbstractCartesianEnergy
,BoundedCartesianEnergy
,UnboundedCartesianEnergy
,UnboundedCartesianEnergyNeglectingMass
public interface CartesianCost extends EventDetectorsProvider
Interface to definite cost function in the frame of Pontryagin's Maximum Principle using Cartesian coordinates. It provides the link between the optimal control and the adjoint variables. This relationship is obtained by maximizing the Hamiltonian. The choice of control vector impacts on it. Both standard (double type) and (Calculus)Field versions are to be implemented by inheritors.- Since:
- 12.2
- Author:
- Romain Serra
- See Also:
CartesianAdjointDerivativesProvider
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default int
getAdjointDimension()
Getter for adjoint vector dimension.String
getAdjointName()
Getter for adjoint vector name.<T extends CalculusFieldElement<T>>
TgetFieldHamiltonianContribution(T[] adjointVariables, T mass)
Computes the Hamiltonian contribution of the cost function.<T extends CalculusFieldElement<T>>
FieldVector3D<T>getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.double
getHamiltonianContribution(double[] adjointVariables, double mass)
Computes the Hamiltonian contribution of the cost function.double
getMassFlowRateFactor()
Getter for mass flow rate factor.Vector3D
getThrustAccelerationVector(double[] adjointVariables, double mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.void
updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)
Update the adjoint derivatives if necessary.<T extends CalculusFieldElement<T>>
voidupdateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getEventDetectors, getFieldEventDetectors, getFieldEventDetectors
-
-
-
-
Method Detail
-
getAdjointName
String getAdjointName()
Getter for adjoint vector name.- Returns:
- adjoint vector name
-
getAdjointDimension
default int getAdjointDimension()
Getter for adjoint vector dimension. Default is 7 (six for Cartesian coordinates and one for mass).- Returns:
- adjoint dimension
-
getMassFlowRateFactor
double getMassFlowRateFactor()
Getter for mass flow rate factor. It is negated and multiplied by the thrust force magnitude to obtain the mass time derivative. The fact that it is a constant means that the exhaust speed is assumed to be independent of time.- Returns:
- mass flow rate factor
-
getThrustAccelerationVector
Vector3D getThrustAccelerationVector(double[] adjointVariables, double mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- thrust vector
-
getFieldThrustAccelerationVector
<T extends CalculusFieldElement<T>> FieldVector3D<T> getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Type Parameters:
T
- field type- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- thrust vector
-
updateAdjointDerivatives
void updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)
Update the adjoint derivatives if necessary.- Parameters:
adjointVariables
- adjoint vectormass
- massadjointDerivatives
- derivatives to update
-
updateFieldAdjointDerivatives
<T extends CalculusFieldElement<T>> void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.- Type Parameters:
T
- field type- Parameters:
adjointVariables
- adjoint vectormass
- massadjointDerivatives
- derivatives to update
-
getHamiltonianContribution
double getHamiltonianContribution(double[] adjointVariables, double mass)
Computes the Hamiltonian contribution of the cost function.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- contribution to Hamiltonian
-
getFieldHamiltonianContribution
<T extends CalculusFieldElement<T>> T getFieldHamiltonianContribution(T[] adjointVariables, T mass)
Computes the Hamiltonian contribution of the cost function.- Type Parameters:
T
- field type- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- contribution to Hamiltonian
-
-