Class FieldUnboundedCartesianEnergyNeglectingMass<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.FieldUnboundedCartesianEnergyNeglectingMass<T>
-
- Type Parameters:
T
- field type
- All Implemented Interfaces:
FieldCartesianCost<T>
public class FieldUnboundedCartesianEnergyNeglectingMass<T extends CalculusFieldElement<T>> extends Object implements FieldCartesianCost<T>
Class for unbounded energy cost with Cartesian coordinates neglecting the mass consumption. Under this assumption, the mass is constant and there is no need to consider the corresponding adjoint variable. Here, the control vector is chosen as the acceleration given by thrusting, expressed in the propagation frame. This leads to the optimal thrust force being equal to the adjoint velocity vector times the mass.- Since:
- 13.0
- Author:
- Romain Serra
-
-
Constructor Summary
Constructors Constructor Description FieldUnboundedCartesianEnergyNeglectingMass(String name, Field<T> field)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getAdjointDimension()
Getter for adjoint vector dimension.String
getAdjointName()
Getter for adjoint vector name.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.UnboundedCartesianEnergyNeglectingMass
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 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
getFieldEventDetectors
-
-
-
-
Method Detail
-
getAdjointName
public String getAdjointName()
Getter for adjoint vector name.- Specified by:
getAdjointName
in interfaceFieldCartesianCost<T extends CalculusFieldElement<T>>
- Returns:
- name
-
getAdjointDimension
public int getAdjointDimension()
Getter for adjoint vector dimension. Default is 7 (six for Cartesian coordinates and one for mass).- Specified by:
getAdjointDimension
in interfaceFieldCartesianCost<T extends CalculusFieldElement<T>>
- Returns:
- adjoint dimension
-
getMassFlowRateFactor
public 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.- Specified by:
getMassFlowRateFactor
in interfaceFieldCartesianCost<T extends CalculusFieldElement<T>>
- Returns:
- mass flow rate factor
-
getFieldThrustAccelerationVector
public FieldVector3D<T> getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Specified by:
getFieldThrustAccelerationVector
in interfaceFieldCartesianCost<T extends CalculusFieldElement<T>>
- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- thrust vector
-
updateFieldAdjointDerivatives
public void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.- Specified by:
updateFieldAdjointDerivatives
in interfaceFieldCartesianCost<T extends CalculusFieldElement<T>>
- Parameters:
adjointVariables
- adjoint vectormass
- massadjointDerivatives
- derivatives to update
-
getFieldHamiltonianContribution
public T getFieldHamiltonianContribution(T[] adjointVariables, T mass)
Computes the Hamiltonian contribution of the cost function.- Specified by:
getFieldHamiltonianContribution
in interfaceFieldCartesianCost<T extends CalculusFieldElement<T>>
- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- contribution to Hamiltonian
-
toCartesianCost
public UnboundedCartesianEnergyNeglectingMass toCartesianCost()
Method returning equivalent in non-Field.- Specified by:
toCartesianCost
in interfaceFieldCartesianCost<T extends CalculusFieldElement<T>>
- Returns:
- cost function for non-Field applications
-
-