Class FieldUnboundedCartesianEnergy<T extends CalculusFieldElement<T>>

    • Constructor Detail

      • FieldUnboundedCartesianEnergy

        public FieldUnboundedCartesianEnergy​(String name,
                                             T massFlowRateFactor,
                                             FieldEventDetectionSettings<T> eventDetectionSettings)
        Constructor.
        Parameters:
        name - name
        massFlowRateFactor - mass flow rate factor
        eventDetectionSettings - detection settings for singularity detections
      • FieldUnboundedCartesianEnergy

        public FieldUnboundedCartesianEnergy​(String name,
                                             T massFlowRateFactor)
        Constructor.
        Parameters:
        name - name
        massFlowRateFactor - mass flow rate factor
    • Method Detail

      • getFieldThrustForceNorm

        protected T getFieldThrustForceNorm​(T[] adjointVariables,
                                            T mass)
        Computes the Euclidean norm of the thrust force.
        Parameters:
        adjointVariables - adjoint vector
        mass - 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
      • 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 interface FieldCartesianCost<T extends CalculusFieldElement<T>>
        Returns:
        mass flow rate factor
      • 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.
        Specified by:
        getFieldThrustAccelerationVector in interface FieldCartesianCost<T extends CalculusFieldElement<T>>
        Parameters:
        adjointVariables - adjoint vector
        mass - 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.
        Specified by:
        updateFieldAdjointDerivatives in interface FieldCartesianCost<T extends CalculusFieldElement<T>>
        Parameters:
        adjointVariables - adjoint vector
        mass - mass
        adjointDerivatives - derivatives to update
      • getFieldAdjointVelocityNorm

        protected T getFieldAdjointVelocityNorm​(T[] adjointVariables)
        Computes the Euclidean norm of the adjoint velocity vector.
        Parameters:
        adjointVariables - adjoint vector
        Returns:
        norm of adjoint velocity
      • getFieldHamiltonianContribution

        public T getFieldHamiltonianContribution​(T[] adjointVariables,
                                                 T mass)
        Computes the Hamiltonian contribution of the cost function.
        Specified by:
        getFieldHamiltonianContribution in interface FieldCartesianCost<T extends CalculusFieldElement<T>>
        Parameters:
        adjointVariables - adjoint vector
        mass - mass
        Returns:
        contribution to Hamiltonian