Class DSSTAtmosphericDrag

java.lang.Object
org.orekit.propagation.semianalytical.dsst.forces.AbstractGaussianContribution
org.orekit.propagation.semianalytical.dsst.forces.DSSTAtmosphericDrag
All Implemented Interfaces:
EventDetectorsProvider, DSSTForceModel, ParameterDriversProvider

public class DSSTAtmosphericDrag extends AbstractGaussianContribution
Atmospheric drag contribution to the DSSTPropagator.

The drag acceleration is computed through the acceleration model of DragForce.

Author:
Pascal Parraud
  • Constructor Details

    • DSSTAtmosphericDrag

      public DSSTAtmosphericDrag(DragForce force, double mu)
      Simple constructor with custom force.
      Parameters:
      force - atmospheric drag force model
      mu - central attraction coefficient
    • DSSTAtmosphericDrag

      public DSSTAtmosphericDrag(Atmosphere atmosphere, double cd, double area, double mu)
      Simple constructor assuming spherical spacecraft.
      Parameters:
      atmosphere - atmospheric model
      cd - drag coefficient
      area - cross sectionnal area of satellite
      mu - central attraction coefficient
    • DSSTAtmosphericDrag

      public DSSTAtmosphericDrag(Atmosphere atmosphere, DragSensitive spacecraft, double mu)
      Simple constructor with custom spacecraft.
      Parameters:
      atmosphere - atmospheric model
      spacecraft - spacecraft model
      mu - central attraction coefficient
  • Method Details

    • getAtmosphere

      public Atmosphere getAtmosphere()
      Get the atmospheric model.
      Returns:
      atmosphere model
    • getRbar

      public double getRbar()
      Get the critical distance.

      The critical distance from the center of the central body aims at defining the atmosphere entry/exit.

      Returns:
      the critical distance from the center of the central body (m)
    • setRbar

      public void setRbar(double rbar)
      Set the critical distance from the center of the central body at which the atmosphere is considered to end, i.e. beyond this distance atmospheric drag is not considered.
      Parameters:
      rbar - the critical distance from the center of the central body (m)
    • getEventDetectors

      public Stream<EventDetector> getEventDetectors()
      Get the discrete events related to the model.

      This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.

      Returns:
      stream of event detectors
    • getFieldEventDetectors

      public <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
      Get the discrete events related to the model.

      This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.

      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      field - field to which the state belongs
      Returns:
      stream of event detectors
    • getLLimits

      protected double[] getLLimits(SpacecraftState state, AuxiliaryElements auxiliaryElements)
      Compute the limits in L, the true longitude, for integration.
      Specified by:
      getLLimits in class AbstractGaussianContribution
      Parameters:
      state - current state information: date, kinematics, attitude
      auxiliaryElements - auxiliary elements related to the current orbit
      Returns:
      the integration limits in L
    • getLLimits

      protected <T extends CalculusFieldElement<T>> T[] getLLimits(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements)
      Compute the limits in L, the true longitude, for integration.
      Specified by:
      getLLimits in class AbstractGaussianContribution
      Type Parameters:
      T - type of the elements
      Parameters:
      state - current state information: date, kinematics, attitude
      auxiliaryElements - auxiliary elements related to the current orbit
      Returns:
      the integration limits in L
    • getParametersDriversWithoutMu

      protected List<ParameterDriver> getParametersDriversWithoutMu()
      Get the drivers for force model parameters except the one for the central attraction coefficient.

      The driver for central attraction coefficient is automatically added at the last element of the ParameterDriver array into AbstractGaussianContribution.getParametersDrivers() method.

      Specified by:
      getParametersDriversWithoutMu in class AbstractGaussianContribution
      Returns:
      drivers for force model parameters
    • getSpacecraft

      public DragSensitive getSpacecraft()
      Get spacecraft shape.
      Returns:
      spacecraft shape
    • getDrag

      public DragForce getDrag()
      Get drag force.
      Returns:
      drag force