Class FieldEcksteinHechlerPropagator<T extends CalculusFieldElement<T>>

    • Constructor Detail

      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              double referenceRadius,
                                              T mu,
                                              double c20,
                                              double c30,
                                              double c40,
                                              double c50,
                                              double c60)
        Build a propagator from FieldOrbit and potential.

        Mass and attitude provider are set to unspecified non-null arbitrary values.

        The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

        Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0

        Cn,0 = -Jn

        Using this constructor, an initial osculating orbit is considered.

        Parameters:
        initialOrbit - initial FieldOrbit
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
        c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
        c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
        c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
        c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
        See Also:
        Constants, FieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider, double, CalculusFieldElement, double, double, double, double, double)
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              T mass,
                                              double referenceRadius,
                                              T mu,
                                              double c20,
                                              double c30,
                                              double c40,
                                              double c50,
                                              double c60)
        Build a propagator from FieldOrbit, mass and potential.

        Attitude law is set to an unspecified non-null arbitrary value.

        The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

        Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0

        Cn,0 = -Jn

        Using this constructor, an initial osculating orbit is considered.

        Parameters:
        initialOrbit - initial FieldOrbit
        mass - spacecraft mass
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
        c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
        c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
        c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
        c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
        See Also:
        FieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider, CalculusFieldElement, double, CalculusFieldElement, double, double, double, double, double)
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              AttitudeProvider attitudeProv,
                                              UnnormalizedSphericalHarmonicsProvider provider)
        Build a propagator from FieldOrbit, attitude provider and potential provider.

        Mass is set to an unspecified non-null arbitrary value.

        Using this constructor, an initial osculating orbit is considered.

        Parameters:
        initialOrbit - initial FieldOrbit
        attitudeProv - attitude provider
        provider - for un-normalized zonal coefficients
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              AttitudeProvider attitudeProv,
                                              double referenceRadius,
                                              T mu,
                                              double c20,
                                              double c30,
                                              double c40,
                                              double c50,
                                              double c60)
        Build a propagator from FieldOrbit, attitude provider and potential.

        Mass is set to an unspecified non-null arbitrary value.

        The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

        Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0

        Cn,0 = -Jn

        Using this constructor, an initial osculating orbit is considered.

        Parameters:
        initialOrbit - initial FieldOrbit
        attitudeProv - attitude provider
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
        c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
        c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
        c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
        c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              AttitudeProvider attitudeProv,
                                              T mass,
                                              double referenceRadius,
                                              T mu,
                                              double c20,
                                              double c30,
                                              double c40,
                                              double c50,
                                              double c60)
        Build a propagator from FieldOrbit, attitude provider, mass and potential.

        The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

        Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0

        Cn,0 = -Jn

        Using this constructor, an initial osculating orbit is considered.

        Parameters:
        initialOrbit - initial FieldOrbit
        attitudeProv - attitude provider
        mass - spacecraft mass
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
        c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
        c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
        c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
        c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
        See Also:
        FieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider, CalculusFieldElement, double, CalculusFieldElement, double, double, double, double, double, PropagationType)
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              UnnormalizedSphericalHarmonicsProvider provider,
                                              PropagationType initialType)
        Build a propagator from orbit and potential provider.

        Mass and attitude provider are set to unspecified non-null arbitrary values.

        Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.

        Parameters:
        initialOrbit - initial orbit
        provider - for un-normalized zonal coefficients
        initialType - initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)
        Since:
        10.2
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              AttitudeProvider attitudeProv,
                                              T mass,
                                              UnnormalizedSphericalHarmonicsProvider provider,
                                              PropagationType initialType)
        Build a propagator from orbit, attitude provider, mass and potential provider.

        Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.

        Parameters:
        initialOrbit - initial orbit
        attitudeProv - attitude provider
        mass - spacecraft mass
        provider - for un-normalized zonal coefficients
        initialType - initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)
        Since:
        10.2
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              AttitudeProvider attitudeProv,
                                              T mass,
                                              double referenceRadius,
                                              T mu,
                                              double c20,
                                              double c30,
                                              double c40,
                                              double c50,
                                              double c60,
                                              PropagationType initialType)
        Build a propagator from FieldOrbit, attitude provider, mass and potential.

        The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

        Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0

        Cn,0 = -Jn

        Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.

        Parameters:
        initialOrbit - initial FieldOrbit
        attitudeProv - attitude provider
        mass - spacecraft mass
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
        c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
        c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
        c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
        c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
        initialType - initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)
        Since:
        10.2
      • FieldEcksteinHechlerPropagator

        public FieldEcksteinHechlerPropagator​(FieldOrbit<T> initialOrbit,
                                              AttitudeProvider attitudeProv,
                                              T mass,
                                              double referenceRadius,
                                              T mu,
                                              double c20,
                                              double c30,
                                              double c40,
                                              double c50,
                                              double c60,
                                              PropagationType initialType,
                                              double epsilon,
                                              int maxIterations)
        Build a propagator from FieldOrbit, attitude provider, mass and potential.

        The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

        Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0

        Cn,0 = -Jn

        Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.

        Parameters:
        initialOrbit - initial FieldOrbit
        attitudeProv - attitude provider
        mass - spacecraft mass
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
        c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
        c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
        c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
        c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
        initialType - initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)
        epsilon - convergence threshold for mean parameters conversion
        maxIterations - maximum iterations for mean parameters conversion
        Since:
        11.2
    • Method Detail

      • computeMeanOrbit

        public static <T extends CalculusFieldElement<T>> FieldCircularOrbit<T> computeMeanOrbit​(FieldOrbit<T> osculating,
                                                                                                 UnnormalizedSphericalHarmonicsProvider provider,
                                                                                                 UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
        Conversion from osculating to mean orbit.

        Compute mean orbit in a Eckstein-Hechler sense, corresponding to the osculating SpacecraftState in input.

        Since the osculating orbit is obtained with the computation of short-periodic variation, the resulting output will depend on the gravity field parameterized in input.

        The computation is done through a fixed-point iteration process.

        Type Parameters:
        T - type of the filed elements
        Parameters:
        osculating - osculating orbit to convert
        provider - for un-normalized zonal coefficients
        harmonics - provider.onDate(osculating.getDate())
        Returns:
        mean orbit in a Eckstein-Hechler sense
        Since:
        11.2
      • computeMeanOrbit

        public static <T extends CalculusFieldElement<T>> FieldCircularOrbit<T> computeMeanOrbit​(FieldOrbit<T> osculating,
                                                                                                 UnnormalizedSphericalHarmonicsProvider provider,
                                                                                                 UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics,
                                                                                                 double epsilon,
                                                                                                 int maxIterations)
        Conversion from osculating to mean orbit.

        Compute mean orbit in a Eckstein-Hechler sense, corresponding to the osculating SpacecraftState in input.

        Since the osculating orbit is obtained with the computation of short-periodic variation, the resulting output will depend on the gravity field parameterized in input.

        The computation is done through a fixed-point iteration process.

        Type Parameters:
        T - type of the filed elements
        Parameters:
        osculating - osculating orbit to convert
        provider - for un-normalized zonal coefficients
        harmonics - provider.onDate(osculating.getDate())
        epsilon - convergence threshold for mean parameters conversion
        maxIterations - maximum iterations for mean parameters conversion
        Returns:
        mean orbit in a Eckstein-Hechler sense
        Since:
        11.2
      • computeMeanOrbit

        public static <T extends CalculusFieldElement<T>> FieldCircularOrbit<T> computeMeanOrbit​(FieldOrbit<T> osculating,
                                                                                                 double referenceRadius,
                                                                                                 double mu,
                                                                                                 double c20,
                                                                                                 double c30,
                                                                                                 double c40,
                                                                                                 double c50,
                                                                                                 double c60,
                                                                                                 double epsilon,
                                                                                                 int maxIterations)
        Conversion from osculating to mean orbit.

        Compute mean orbit in a Eckstein-Hechler sense, corresponding to the osculating SpacecraftState in input.

        Since the osculating orbit is obtained with the computation of short-periodic variation, the resulting output will depend on the gravity field parameterized in input.

        The computation is done through a fixed-point iteration process.

        Type Parameters:
        T - type of the filed elements
        Parameters:
        osculating - osculating orbit to convert
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
        c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
        c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
        c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
        c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
        epsilon - convergence threshold for mean parameters conversion
        maxIterations - maximum iterations for mean parameters conversion
        Returns:
        mean orbit in a Eckstein-Hechler sense
        Since:
        11.2
      • resetInitialState

        public void resetInitialState​(FieldSpacecraftState<T> state,
                                      PropagationType stateType)
        Reset the propagator initial state.
        Parameters:
        state - new initial state to consider
        stateType - mean Eckstein-Hechler orbit or osculating orbit
        Since:
        10.2
      • resetInitialState

        public void resetInitialState​(FieldSpacecraftState<T> state,
                                      PropagationType stateType,
                                      double epsilon,
                                      int maxIterations)
        Reset the propagator initial state.
        Parameters:
        state - new initial state to consider
        stateType - mean Eckstein-Hechler orbit or osculating orbit
        epsilon - convergence threshold for mean parameters conversion
        maxIterations - maximum iterations for mean parameters conversion
        Since:
        11.2
      • resetIntermediateState

        protected void resetIntermediateState​(FieldSpacecraftState<T> state,
                                              boolean forward,
                                              double epsilon,
                                              int maxIterations)
        Reset an intermediate state.
        Parameters:
        state - new intermediate state to consider
        forward - if true, the intermediate state is valid for propagations after itself
        epsilon - convergence threshold for mean parameters conversion
        maxIterations - maximum iterations for mean parameters conversion
        Since:
        11.2
      • getParametersDrivers

        public List<ParameterDriver> getParametersDrivers()
        Get the drivers for parameters.
        Returns:
        drivers for parameters