Interface FieldCartesianCost<T extends CalculusFieldElement<T>>
-
- All Known Implementing Classes:
FieldAbstractCartesianCost
,FieldBoundedCartesianEnergy
,FieldCartesianFlightDurationCost
,FieldCartesianFuelCost
,FieldLogarithmicBarrierCartesianFuel
,FieldPenalizedCartesianFuelCost
,FieldQuadraticPenaltyCartesianFuel
,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 int
getAdjointDimension()
Getter for adjoint vector dimension.String
getAdjointName()
Getter for adjoint vector name.default FieldAdditionalDerivativesProvider<T>
getCostDerivativeProvider(String name)
Get the derivatives provider to be able to integrate the cost function.default Stream<FieldEventDetector<T>>
getFieldEventDetectors(Field<T> field)
Get the detectors needed for propagation.T
getFieldHamiltonianContribution(T[] adjointVariables, T mass)
Computes the Hamiltonian contribution to 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
int getAdjointDimension()
Getter for adjoint vector dimension.- 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 to the cost function. It equals the Lagrange-form integrand multiplied by -1.- 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
-
getCostDerivativeProvider
default FieldAdditionalDerivativesProvider<T> getCostDerivativeProvider(String name)
Get the derivatives provider to be able to integrate the cost function.- Parameters:
name
- name of cost as additional state variable- Returns:
- derivatives provider
- Since:
- 13.0
-
toCartesianCost
CartesianCost toCartesianCost()
Method returning equivalent in non-Field.- Returns:
- cost function for non-Field applications
-
-