Interface ToleranceProvider

All Superinterfaces:
CartesianToleranceProvider
All Known Implementing Classes:
SimpleToleranceProvider

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:
  • Method Details

    • 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(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