Class DragForce

  • All Implemented Interfaces:
    ForceModel, EventDetectorsProvider, ParameterDriversProvider

    public class DragForce
    extends AbstractDragForceModel
    Atmospheric drag force model. The drag acceleration is computed as follows : γ = (1/2 * ρ * V² * S / Mass) * DragCoefVector With DragCoefVector = {Cx, Cy, Cz} and S given by the user through the interface DragSensitive
    Author:
    Édouard Delente, Fabien Maussion, Véronique Pommier-Maurussane, Pascal Parraud, Melina Vanel
    • Constructor Detail

      • DragForce

        public DragForce​(Atmosphere atmosphere,
                         DragSensitive spacecraft)
        Constructor with default flag for finite differences.
        Parameters:
        atmosphere - atmospheric model
        spacecraft - the object physical and geometrical information
      • DragForce

        public DragForce​(Atmosphere atmosphere,
                         DragSensitive spacecraft,
                         boolean useFiniteDifferencesOnDensityWrtPosition)
        Simple constructor.
        Parameters:
        atmosphere - atmospheric model
        spacecraft - the object physical and geometrical information
        useFiniteDifferencesOnDensityWrtPosition - flag to use finite differences to compute density derivatives w.r.t. position (is less accurate but can be faster depending on model)
        Since:
        12.1
    • Method Detail

      • dependsOnAttitudeRate

        public boolean dependsOnAttitudeRate()
        Check if force model depends on attitude's rotation rate or acceleration at a given, fixed date. If false, it essentially means that at most the attitude's rotation is used when computing the acceleration vector. The default implementation returns false as common forces do not.
        Returns:
        true if force model depends on attitude derivatives
      • acceleration

        public Vector3D acceleration​(SpacecraftState s,
                                     double[] parameters)
        Compute acceleration.
        Parameters:
        s - current state information: date, kinematics, attitude
        parameters - values of the force model parameters at state date, only 1 value for each parameterDriver
        Returns:
        acceleration in same frame as state
      • acceleration

        public <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration​(FieldSpacecraftState<T> s,
                                                                                 T[] parameters)
        Compute acceleration.
        Type Parameters:
        T - type of the elements
        Parameters:
        s - current state information: date, kinematics, attitude
        parameters - values of the force model parameters at state date, only 1 value for each parameterDriver
        Returns:
        acceleration in same frame as state
      • getParametersDrivers

        public List<ParameterDriver> getParametersDrivers()
        Get the drivers for parameters.
        Returns:
        drivers for parameters
      • getSpacecraft

        public DragSensitive getSpacecraft()
        Get spacecraft that are sensitive to atmospheric drag forces.
        Returns:
        drag sensitive spacecraft model