示例#1
0
  /**
   * Estimate tolerance vectors for an AdaptativeStepsizeIntegrator.
   *
   * <p>The errors are estimated from partial derivatives properties of orbits, starting from a
   * scalar position error specified by the user. Considering the energy conservation equation V =
   * sqrt(mu (2/r - 1/a)), we get at constant energy (i.e. on a Keplerian trajectory):
   *
   * <pre>
   *  V² r |dV| = mu |dr|
   *  </pre>
   *
   * So we deduce a scalar velocity error consistent with the position error. From here, we apply
   * orbits Jacobians matrices to get consistent errors on orbital parameters.
   *
   * <p>The tolerances are only <em>orders of magnitude</em>, 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.
   *
   * @param dP user specified position error (m)
   * @param orbit reference orbit
   * @return a two rows array, row 0 being the absolute tolerance error and row 1 being the relative
   *     tolerance error
   * @exception PropagationException if Jacobian is singular
   */
  public static double[][] tolerances(final double dP, final Orbit orbit)
      throws PropagationException {

    return NumericalPropagator.tolerances(dP, orbit, OrbitType.EQUINOCTIAL);
  }