Class UnboundedCartesianEnergyNeglectingMass

  • All Implemented Interfaces:
    CartesianCost

    public class UnboundedCartesianEnergyNeglectingMass
    extends AbstractCartesianCost
    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:
    12.2
    Author:
    Romain Serra
    • Constructor Detail

      • UnboundedCartesianEnergyNeglectingMass

        public UnboundedCartesianEnergyNeglectingMass​(String name)
        Constructor.
        Parameters:
        name - name
    • Method Detail

      • getAdjointDimension

        public int getAdjointDimension()
        Getter for adjoint vector dimension. Default is 7 (six for Cartesian coordinates and one for mass).
        Returns:
        adjoint dimension
      • getThrustAccelerationVector

        public Vector3D getThrustAccelerationVector​(double[] adjointVariables,
                                                    double mass)
        Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.
        Parameters:
        adjointVariables - adjoint vector
        mass - mass
        Returns:
        thrust vector
      • updateAdjointDerivatives

        public void updateAdjointDerivatives​(double[] adjointVariables,
                                             double mass,
                                             double[] adjointDerivatives)
        Update the adjoint derivatives if necessary.
        Parameters:
        adjointVariables - adjoint vector
        mass - mass
        adjointDerivatives - derivatives to update
      • getHamiltonianContribution

        public double getHamiltonianContribution​(double[] adjointVariables,
                                                 double mass)
        Computes the Hamiltonian contribution of the cost function.
        Parameters:
        adjointVariables - adjoint vector
        mass - mass
        Returns:
        contribution to Hamiltonian
      • getEventDetectors

        public Stream<EventDetector> getEventDetectors()
        Get the detectors needed for propagation.
        Returns:
        event detectors