Interface FieldCartesianCost<T extends CalculusFieldElement<T>>
-
- All Known Implementing Classes:
FieldAbstractCartesianCost
,FieldBoundedCartesianEnergy
,FieldCartesianFuelCost
,FieldUnboundedCartesianEnergy
,FieldUnboundedCartesianEnergyNeglectingMass
public interface FieldCartesianCost<T extends CalculusFieldElement<T>>
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.- Since:
- 13.0
- Author:
- Romain Serra
- See Also:
CartesianAdjointDerivativesProvider
-
-
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.default Stream<FieldEventDetector<T>>
getFieldEventDetectors(Field<T> field)
Get the detectors needed for propagation.T
getFieldHamiltonianContribution(T[] adjointVariables, T mass)
Computes the Hamiltonian contribution of the cost function.FieldVector3D<T>
getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.T
getMassFlowRateFactor()
Getter for mass flow rate factor.CartesianCost
toCartesianCost()
Method returning equivalent in non-Field.void
updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.
-
-
-
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
T 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
-
getFieldThrustAccelerationVector
FieldVector3D<T> getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- thrust vector
-
updateFieldAdjointDerivatives
void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.- Parameters:
adjointVariables
- adjoint vectormass
- massadjointDerivatives
- derivatives to update
-
getFieldHamiltonianContribution
T getFieldHamiltonianContribution(T[] adjointVariables, T mass)
Computes the Hamiltonian contribution of the cost function.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- contribution to Hamiltonian
-
getFieldEventDetectors
default Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
Get the detectors needed for propagation.- Parameters:
field
- field- Returns:
- event detectors
-
toCartesianCost
CartesianCost toCartesianCost()
Method returning equivalent in non-Field.- Returns:
- cost function for non-Field applications
-
-