Class SingleBodyAbsoluteAttraction

  • All Implemented Interfaces:
    ForceModel, ParametersDriversProvider

    public class SingleBodyAbsoluteAttraction
    extends AbstractForceModel
    Body attraction force model computed as absolute acceleration towards a body.

    This force model represents the same physical principles as NewtonianAttraction, but has several major differences:

    • the attracting body can be away from the integration frame center,
    • several instances of this force model can be added when several bodies are involved,
    • this force model is never automatically added by the numerical propagator

    The possibility for the attracting body to be away from the frame center allows to use this force model when integrating for example an interplanetary trajectory propagated in an Earth centered frame (in which case an instance of InertialForces must also be added to take into account the coupling effect of relative frames motion).

    The possibility to add several instances allows to use this in interplanetary trajectories or in trajectories about Lagrangian points

    The fact this force model is never automatically added by the numerical propagator differs from NewtonianAttraction as NewtonianAttraction may be added automatically when propagating a trajectory represented as an Orbit, which must always refer to a central body, if user did not add the NewtonianAttraction or set the central attraction coefficient by himself.

    Author:
    Luc Maisonobe, Julio Hernanz
    See Also:
    InertialForces
    • Field Detail

      • ATTRACTION_COEFFICIENT_SUFFIX

        public static final String ATTRACTION_COEFFICIENT_SUFFIX
        Suffix for parameter name for attraction coefficient enabling Jacobian processing.
        See Also:
        Constant Field Values
    • Method Detail

      • dependsOnPositionOnly

        public boolean dependsOnPositionOnly()
        Check if force models depends on position only.
        Returns:
        true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
      • 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
        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
        Returns:
        acceleration in same frame as state
      • getEventsDetectors

        public Stream<EventDetector> getEventsDetectors()
        Get the discrete events related to the model.
        Returns:
        stream of events detectors
      • getFieldEventsDetectors

        public <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventsDetectors​(Field<T> field)
        Description copied from interface: ForceModel
        Get the discrete events related to the model.
        Type Parameters:
        T - extends CalculusFieldElement<T>
        Parameters:
        field - field to which the state belongs
        Returns:
        stream of events detectors
      • getParametersDrivers

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