Interface CartesianToleranceProvider

  • All Known Subinterfaces:
    ToleranceProvider

    public interface CartesianToleranceProvider
    Interface to define integration tolerances for adaptive schemes (like the embedded Runge-Kutta ones) propagating the position-velocity vector and the mass, for a total of 7 primary dependent variables (in that order). The tolerances are given as an array of array: each row has 7 elements, whilst the first column is the absolute tolerances and the second the relative ones.
    Since:
    13.0
    Author:
    Romain Serra
    See Also:
    NumericalPropagator, FieldNumericalPropagator, CartesianToleranceProvider
    • Field Detail

      • DEFAULT_ABSOLUTE_MASS_TOLERANCE

        static final double DEFAULT_ABSOLUTE_MASS_TOLERANCE
        Default absolute tolerance for mass integration.
        See Also:
        Constant Field Values
    • Method Detail

      • getTolerances

        double[][] getTolerances​(Vector3D position,
                                 Vector3D velocity)
        Retrieve the integration tolerances given reference position and velocity vectors.
        Parameters:
        position - reference position vector
        velocity - reference velocity vector
        Returns:
        absolute and relative tolerances
      • getTolerances

        default <T extends CalculusFieldElement<T>> double[][] getTolerances​(FieldVector3D<T> position,
                                                                             FieldVector3D<T> velocity)
        Retrieve the integration tolerances given reference position and velocity Field vectors.
        Type Parameters:
        T - field type
        Parameters:
        position - reference position vector
        velocity - reference velocity vector
        Returns:
        absolute and relative tolerances
      • getTolerances

        default double[][] getTolerances​(CartesianOrbit cartesianOrbit)
        Retrieve the integration tolerances given a reference Cartesian orbit.
        Parameters:
        cartesianOrbit - reference orbit
        Returns:
        absolute and relative tolerances
      • getTolerances

        default <T extends CalculusFieldElement<T>> double[][] getTolerances​(FieldCartesianOrbit<T> cartesianOrbit)
        Retrieve the integration tolerances given a reference Cartesian orbit.
        Type Parameters:
        T - field type
        Parameters:
        cartesianOrbit - reference orbit
        Returns:
        absolute and relative tolerances
      • getTolerances

        default double[][] getTolerances​(AbsolutePVCoordinates absolutePVCoordinates)
        Retrieve the integration tolerances given a reference absolute position-velocity vector.
        Parameters:
        absolutePVCoordinates - reference position-velocity
        Returns:
        absolute and relative tolerances
      • getTolerances

        default <T extends CalculusFieldElement<T>> double[][] getTolerances​(FieldAbsolutePVCoordinates<T> absolutePVCoordinates)
        Retrieve the integration tolerances given a reference absolute position-velocity vector.
        Type Parameters:
        T - field type
        Parameters:
        absolutePVCoordinates - reference position-velocity
        Returns:
        absolute and relative tolerances
      • of

        static CartesianToleranceProvider of​(double dP,
                                             double dV,
                                             double dM)
        Build a provider based on expected errors for position, velocity and mass respectively.

        The tolerances are only orders of magnitude, and integrator tolerances are only local estimates, not global ones. So some care must be taken when using these tolerances. Setting 1mm as a position error does NOT mean the tolerances will guarantee a 1mm error position after several orbits integration.

        Parameters:
        dP - expected position error
        dV - expected velocity error
        dM - expected mass error
        Returns:
        tolerance provider
      • of

        static CartesianToleranceProvider of​(double dP)
        Build a provider based on expected errors for position only.

        The tolerances are only orders of magnitude, and integrator tolerances are only local estimates, not global ones. So some care must be taken when using these tolerances. Setting 1mm as a position error does NOT mean the tolerances will guarantee a 1mm error position after several orbits integration.

        Parameters:
        dP - expected position error
        Returns:
        tolerance provider