Interface ToleranceProvider

  • All Superinterfaces:
    CartesianToleranceProvider

    public interface ToleranceProvider
    extends CartesianToleranceProvider
    Interface to define integration tolerances for adaptive schemes (like the embedded Runge-Kutta ones) propagating the position-velocity vector (or an equivalent set of coordinates) 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
    • Method Detail

      • getTolerances

        double[][] getTolerances​(Orbit referenceOrbit,
                                 OrbitType propagationOrbitType,
                                 PositionAngleType positionAngleType)
        Retrieve the integration tolerances given a reference orbit.
        Parameters:
        referenceOrbit - orbit
        propagationOrbitType - orbit type for propagation (can be different from the input orbit one)
        positionAngleType - reference position angle type
        Returns:
        absolute and relative tolerances
      • getTolerances

        default double[][] getTolerances​(Orbit referenceOrbit,
                                         OrbitType propagationOrbitType)
        Retrieve the integration tolerances given a reference orbit.
        Parameters:
        referenceOrbit - orbit
        propagationOrbitType - orbit type for propagation (can be different from the input orbit one)
        Returns:
        absolute and relative tolerances
      • getTolerances

        default <T extends CalculusFieldElement<T>> double[][] getTolerances​(FieldOrbit<T> referenceOrbit,
                                                                             OrbitType propagationOrbitType,
                                                                             PositionAngleType positionAngleType)
        Retrieve the integration tolerances given a reference Field orbit.
        Type Parameters:
        T - field type
        Parameters:
        referenceOrbit - orbit
        propagationOrbitType - orbit type for propagation (can be different from the input orbit one)
        positionAngleType - reference position angle type
        Returns:
        absolute and relative tolerances
      • getTolerances

        default <T extends CalculusFieldElement<T>> double[][] getTolerances​(FieldOrbit<T> referenceOrbit,
                                                                             OrbitType propagationOrbitType)
        Retrieve the integration tolerances given a reference Field orbit.
        Type Parameters:
        T - field type
        Parameters:
        referenceOrbit - orbit
        propagationOrbitType - orbit type for propagation (can be different from the input orbit one)
        Returns:
        absolute and relative tolerances
      • of

        static ToleranceProvider of​(double absoluteTolerance,
                                    double relativeTolerance)
        Build a provider using a single value for absolute and respective tolerance respectively.
        Parameters:
        absoluteTolerance - absolute tolerance value to be used
        relativeTolerance - relative tolerance value to be used
        Returns:
        tolerance provider
      • of

        static ToleranceProvider of​(CartesianToleranceProvider cartesianToleranceProvider)
        Build a provider based on a tolerance provider for Cartesian coordinates.

        Orbits Jacobian matrices are used to get consistent errors on orbital parameters.

        Parameters:
        cartesianToleranceProvider - tolerance provider dedicated to Cartesian propagation
        Returns:
        tolerance provider
      • getDefaultToleranceProvider

        static ToleranceProvider getDefaultToleranceProvider​(double dP)
        Defines a default tolerance provider. It is consistent with values from previous versions of Orekit obtained via other APIs.

        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:
        tolerances