Class FieldUnboundedCartesianEnergy<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost<T>
-
- org.orekit.control.indirect.adjoint.cost.FieldUnboundedCartesianEnergy<T>
-
- Type Parameters:
T
- field type
- All Implemented Interfaces:
FieldCartesianCost<T>
public class FieldUnboundedCartesianEnergy<T extends CalculusFieldElement<T>> extends FieldAbstractCartesianCost<T>
Class for unbounded energy cost with Cartesian coordinates. Here, the control vector is chosen as the thrust force, expressed in the propagation frame. This leads to the optimal thrust being in the same direction as the adjoint velocity.- Since:
- 13.0
- Author:
- Romain Serra
- See Also:
FieldUnboundedCartesianEnergyNeglectingMass
,UnboundedCartesianEnergy
-
-
Constructor Summary
Constructors Constructor Description FieldUnboundedCartesianEnergy(String name, T massFlowRateFactor)
Constructor.FieldUnboundedCartesianEnergy(String name, T massFlowRateFactor, FieldEventDetectionSettings<T> eventDetectionSettings)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FieldEventDetectionSettings<T>
getEventDetectionSettings()
Getter for event detection settings.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.protected FieldVector3D<T>
getFieldThrustDirection(T[] adjointVariables)
Computes the direction of thrust.protected T
getFieldThrustForceNorm(T[] adjointVariables, T mass)
Computes the Euclidean norm of the thrust force.UnboundedCartesianEnergy
toCartesianCost()
Method returning equivalent in non-Field.void
updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.-
Methods inherited from class org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost
getAdjointDimension, getAdjointName, getFieldAdjointVelocityNorm, getMassFlowRateFactor
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.control.indirect.adjoint.cost.FieldCartesianCost
getCostDerivativeProvider
-
-
-
-
Constructor Detail
-
FieldUnboundedCartesianEnergy
public FieldUnboundedCartesianEnergy(String name, T massFlowRateFactor, FieldEventDetectionSettings<T> eventDetectionSettings)
Constructor.- Parameters:
name
- namemassFlowRateFactor
- mass flow rate factoreventDetectionSettings
- detection settings for singularity detections
-
-
Method Detail
-
getFieldThrustForceNorm
protected T getFieldThrustForceNorm(T[] adjointVariables, T mass)
Computes the Euclidean norm of the thrust force.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- norm of thrust
-
getFieldEventDetectors
public Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
Get the detectors needed for propagation.- Parameters:
field
- field- Returns:
- event detectors
-
toCartesianCost
public UnboundedCartesianEnergy toCartesianCost()
Method returning equivalent in non-Field.- Returns:
- cost function for non-Field applications
-
getEventDetectionSettings
public FieldEventDetectionSettings<T> getEventDetectionSettings()
Getter for event detection settings.- Returns:
- detection settings.
-
getFieldThrustAccelerationVector
public 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
-
getFieldThrustDirection
protected FieldVector3D<T> getFieldThrustDirection(T[] adjointVariables)
Computes the direction of thrust.- Parameters:
adjointVariables
- adjoint vector- Returns:
- thrust direction
-
updateFieldAdjointDerivatives
public void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.- Parameters:
adjointVariables
- adjoint vectormass
- massadjointDerivatives
- derivatives to update
-
getFieldHamiltonianContribution
public 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
-
-