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.

        Conversion from osculating to mean orbit is done through a fixed-point iteration process.

        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.

        Conversion from osculating to mean orbit is done through a fixed-point iteration process.

        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.

        Conversion from osculating to mean orbit is done through a fixed-point iteration process.

        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.

        Conversion from osculating to mean orbit is done through a fixed-point iteration process.

        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.

        Conversion from osculating to mean orbit is done through a fixed-point iteration process.

        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.

        Conversion from osculating to mean orbit will be done through a fixed-point iteration process.

        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.

        Conversion from osculating to mean orbit will be done through a fixed-point iteration process.

        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 attitude,
                                              T mass,
                                              UnnormalizedSphericalHarmonicsProvider provider,
                                              UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics,
                                              PropagationType initialType)
        Private helper constructor.

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

        Conversion from osculating to mean orbit will be done through a fixed-point iteration process.

        Parameters:
        initialOrbit - initial orbit
        attitude - attitude provider
        mass - spacecraft mass
        provider - for un-normalized zonal coefficients
        harmonics - provider.onDate(initialOrbit.getDate())
        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.

        Conversion from osculating to mean orbit will be done through a fixed-point iteration process.

        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.

        Conversion from osculating to mean orbit will be done through a fixed-point iteration process.

        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
      • 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,
                                              OsculatingToMeanConverter converter)
        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.

        Conversion from osculating to mean orbit will be done through the given converter.

        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)
        converter - osculating to mean orbit converter
        Since:
        13.0
    • 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
      • 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,
                                                                                                 OsculatingToMeanConverter converter)
        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 the given osculating to mean orbit converter.

        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)
        converter - osculating to mean orbit converter
        Returns:
        mean orbit in a Eckstein-Hechler sense
        Since:
        13.0
      • 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
      • resetInitialState

        public void resetInitialState​(FieldSpacecraftState<T> state,
                                      PropagationType stateType,
                                      OsculatingToMeanConverter converter)
        Reset the propagator initial state.
        Parameters:
        state - new initial state to consider
        stateType - mean Eckstein-Hechler orbit or osculating orbit
        converter - osculating to mean orbit converter
        Since:
        13.0
      • 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
      • resetIntermediateState

        protected void resetIntermediateState​(FieldSpacecraftState<T> state,
                                              boolean forward,
                                              OsculatingToMeanConverter converter)
        Reset an intermediate state.
        Parameters:
        state - new intermediate state to consider
        forward - if true, the intermediate state is valid for propagations after itself
        converter - osculating to mean orbit converter
        Since:
        13.0
      • getOsculatingCircularOrbit

        public FieldCircularOrbit<T> getOsculatingCircularOrbit​(FieldAbsoluteDate<T> date)
        Get the osculating circular orbit from the EH model.

        This method is only relevant for the conversion from osculating to mean orbit.

        Parameters:
        date - target date for the orbit
        Returns:
        the osculating circular orbite
      • getParametersDrivers

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