Class LogarithmicBarrierCartesianFuel

  • All Implemented Interfaces:
    CartesianCost

    public class LogarithmicBarrierCartesianFuel
    extends PenalizedCartesianFuelCost
    Fuel cost penalized with a logarithmic term, which is a barrier so is not defined for epsilon equal to 0 or 1.
    Since:
    13.0
    Author:
    Romain Serra
    • Constructor Detail

      • LogarithmicBarrierCartesianFuel

        public LogarithmicBarrierCartesianFuel​(String name,
                                               double massFlowRateFactor,
                                               double maximumThrustMagnitude,
                                               double epsilon)
        Constructor.
        Parameters:
        name - adjoint name
        massFlowRateFactor - mass flow rate factor
        maximumThrustMagnitude - maximum thrust magnitude
        epsilon - penalty weight
    • Method Detail

      • evaluatePenaltyFunction

        public double evaluatePenaltyFunction​(double controlNorm)
        Evaluate the penalty term (without the weight), assumed to be a function of the control norm.
        Specified by:
        evaluatePenaltyFunction in class PenalizedCartesianFuelCost
        Parameters:
        controlNorm - Euclidean norm of control vector
        Returns:
        penalty function
      • 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