Interface CartesianToleranceProvider

All Known Subinterfaces:
ToleranceProvider
All Known Implementing Classes:
ConstantCartesianToleranceProvider, SimpleToleranceProvider

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

    • DEFAULT_ABSOLUTE_MASS_TOLERANCE

      static final double DEFAULT_ABSOLUTE_MASS_TOLERANCE
      Default absolute tolerance for mass integration.
      See Also:
  • Method Details

    • 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 relative tolerance is inferred from these values.

      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