Class FieldNumericalPropagator<T extends CalculusFieldElement<T>>

    • Method Detail

      • setIgnoreCentralAttraction

        public void setIgnoreCentralAttraction​(boolean ignoreCentralAttraction)
        Set the flag to ignore or not the creation of a NewtonianAttraction.
        Parameters:
        ignoreCentralAttraction - if true, NewtonianAttraction is not added automatically if missing
      • removeForceModels

        public void removeForceModels()
        Remove all perturbing force models from the global perturbation model.

        Once all perturbing forces have been removed (and as long as no new force model is added), the integrated orbit will follow a Keplerian evolution only.

        See Also:
        addForceModel(ForceModel)
      • setInitialState

        public void setInitialState​(FieldSpacecraftState<T> initialState)
        Set the initial state.
        Parameters:
        initialState - initial state
      • tolerances

        public static <T extends CalculusFieldElement<T>> double[][] tolerances​(T dP,
                                                                                FieldOrbit<T> orbit,
                                                                                OrbitType type)
        Estimate tolerance vectors for integrators.

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

         V r² |dV| = mu |dr|
         
        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.

        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.

        Type Parameters:
        T - elements type
        Parameters:
        dP - user specified position error
        orbit - reference orbit
        type - propagation type for the meaning of the tolerance vectors elements (it may be different from orbit.getType())
        Returns:
        a two rows array, row 0 being the absolute tolerance error and row 1 being the relative tolerance error
      • tolerances

        public static <T extends CalculusFieldElement<T>> double[][] tolerances​(T dP,
                                                                                T dV,
                                                                                FieldOrbit<T> orbit,
                                                                                OrbitType type)
        Estimate tolerance vectors for integrators when propagating in orbits.

        The errors are estimated from partial derivatives properties of orbits, starting from scalar position and velocity errors specified by the user.

        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.

        Type Parameters:
        T - elements type
        Parameters:
        dP - user specified position error
        dV - user specified velocity error
        orbit - reference orbit
        type - propagation type for the meaning of the tolerance vectors elements (it may be different from orbit.getType())
        Returns:
        a two rows array, row 0 being the absolute tolerance error and row 1 being the relative tolerance error
        Since:
        10.3