Class FieldKeplerianOrbit<T extends CalculusFieldElement<T>>

    • Constructor Detail

      • FieldKeplerianOrbit

        public FieldKeplerianOrbit​(T a,
                                   T e,
                                   T i,
                                   T pa,
                                   T raan,
                                   T anomaly,
                                   PositionAngleType type,
                                   PositionAngleType cachedPositionAngleType,
                                   Frame frame,
                                   FieldAbsoluteDate<T> date,
                                   T mu)
                            throws IllegalArgumentException
        Creates a new instance.
        Parameters:
        a - semi-major axis (m), negative for hyperbolic orbits
        e - eccentricity (positive or equal to 0)
        i - inclination (rad)
        pa - perigee argument (ω, rad)
        raan - right ascension of ascending node (Ω, rad)
        anomaly - mean, eccentric or true anomaly (rad)
        type - type of anomaly
        cachedPositionAngleType - type of cached anomaly
        frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
        date - date of the orbital parameters
        mu - central attraction coefficient (m³/s²)
        Throws:
        IllegalArgumentException - if frame is not a pseudo-inertial frame or a and e don't match for hyperbolic orbits, or v is out of range for hyperbolic orbits
        Since:
        12.1
      • FieldKeplerianOrbit

        public FieldKeplerianOrbit​(T a,
                                   T e,
                                   T i,
                                   T pa,
                                   T raan,
                                   T anomaly,
                                   PositionAngleType type,
                                   Frame frame,
                                   FieldAbsoluteDate<T> date,
                                   T mu)
                            throws IllegalArgumentException
        Creates a new instance.
        Parameters:
        a - semi-major axis (m), negative for hyperbolic orbits
        e - eccentricity (positive or equal to 0)
        i - inclination (rad)
        pa - perigee argument (ω, rad)
        raan - right ascension of ascending node (Ω, rad)
        anomaly - mean, eccentric or true anomaly (rad)
        type - type of anomaly
        frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
        date - date of the orbital parameters
        mu - central attraction coefficient (m³/s²)
        Throws:
        IllegalArgumentException - if frame is not a pseudo-inertial frame or a and e don't match for hyperbolic orbits, or v is out of range for hyperbolic orbits
        Since:
        12.1
      • FieldKeplerianOrbit

        public FieldKeplerianOrbit​(T a,
                                   T e,
                                   T i,
                                   T pa,
                                   T raan,
                                   T anomaly,
                                   T aDot,
                                   T eDot,
                                   T iDot,
                                   T paDot,
                                   T raanDot,
                                   T anomalyDot,
                                   PositionAngleType type,
                                   PositionAngleType cachedPositionAngleType,
                                   Frame frame,
                                   FieldAbsoluteDate<T> date,
                                   T mu)
                            throws IllegalArgumentException
        Creates a new instance.
        Parameters:
        a - semi-major axis (m), negative for hyperbolic orbits
        e - eccentricity (positive or equal to 0)
        i - inclination (rad)
        pa - perigee argument (ω, rad)
        raan - right ascension of ascending node (Ω, rad)
        anomaly - mean, eccentric or true anomaly (rad)
        aDot - semi-major axis derivative, null if unknown (m/s)
        eDot - eccentricity derivative, null if unknown
        iDot - inclination derivative, null if unknown (rad/s)
        paDot - perigee argument derivative, null if unknown (rad/s)
        raanDot - right ascension of ascending node derivative, null if unknown (rad/s)
        anomalyDot - mean, eccentric or true anomaly derivative, null if unknown (rad/s)
        type - type of anomaly
        cachedPositionAngleType - type of cached anomaly
        frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
        date - date of the orbital parameters
        mu - central attraction coefficient (m³/s²)
        Throws:
        IllegalArgumentException - if frame is not a pseudo-inertial frame or a and e don't match for hyperbolic orbits, or v is out of range for hyperbolic orbits
        Since:
        12.1
      • FieldKeplerianOrbit

        public FieldKeplerianOrbit​(T a,
                                   T e,
                                   T i,
                                   T pa,
                                   T raan,
                                   T anomaly,
                                   T aDot,
                                   T eDot,
                                   T iDot,
                                   T paDot,
                                   T raanDot,
                                   T anomalyDot,
                                   PositionAngleType type,
                                   Frame frame,
                                   FieldAbsoluteDate<T> date,
                                   T mu)
                            throws IllegalArgumentException
        Creates a new instance.
        Parameters:
        a - semi-major axis (m), negative for hyperbolic orbits
        e - eccentricity (positive or equal to 0)
        i - inclination (rad)
        pa - perigee argument (ω, rad)
        raan - right ascension of ascending node (Ω, rad)
        anomaly - mean, eccentric or true anomaly (rad)
        aDot - semi-major axis derivative, null if unknown (m/s)
        eDot - eccentricity derivative, null if unknown
        iDot - inclination derivative, null if unknown (rad/s)
        paDot - perigee argument derivative, null if unknown (rad/s)
        raanDot - right ascension of ascending node derivative, null if unknown (rad/s)
        anomalyDot - mean, eccentric or true anomaly derivative, null if unknown (rad/s)
        type - type of anomaly
        frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
        date - date of the orbital parameters
        mu - central attraction coefficient (m³/s²)
        Throws:
        IllegalArgumentException - if frame is not a pseudo-inertial frame or a and e don't match for hyperbolic orbits, or v is out of range for hyperbolic orbits
      • FieldKeplerianOrbit

        public FieldKeplerianOrbit​(FieldOrbit<T> op)
        Constructor from any kind of orbital parameters.
        Parameters:
        op - orbital parameters to copy
      • FieldKeplerianOrbit

        public FieldKeplerianOrbit​(Field<T> field,
                                   KeplerianOrbit op)
        Constructor from Field and KeplerianOrbit.

        Build a FieldKeplerianOrbit from non-Field KeplerianOrbit.

        Parameters:
        field - CalculusField to base object on
        op - non-field orbit with only "constant" terms
        Since:
        12.0
      • FieldKeplerianOrbit

        public FieldKeplerianOrbit​(Field<T> field,
                                   Orbit op)
        Constructor from Field and Orbit.

        Build a FieldKeplerianOrbit from any non-Field Orbit.

        Parameters:
        field - CalculusField to base object on
        op - non-field orbit with only "constant" terms
        Since:
        12.0
    • Method Detail

      • getA

        public T getA()
        Get the semi-major axis.

        Note that the semi-major axis is considered negative for hyperbolic orbits.

        Specified by:
        getA in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        semi-major axis (m)
      • getADot

        public T getADot()
        Get the semi-major axis derivative.

        Note that the semi-major axis is considered negative for hyperbolic orbits.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getADot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        semi-major axis derivative (m/s)
      • getEDot

        public T getEDot()
        Get the eccentricity derivative.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getEDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        eccentricity derivative
      • getI

        public T getI()
        Get the inclination.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getI in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        inclination (rad)
      • getPerigeeArgument

        public T getPerigeeArgument()
        Get the perigee argument.
        Returns:
        perigee argument (rad)
      • getPerigeeArgumentDot

        public T getPerigeeArgumentDot()
        Get the perigee argument derivative.
        Returns:
        perigee argument derivative (rad/s)
      • getRightAscensionOfAscendingNode

        public T getRightAscensionOfAscendingNode()
        Get the right ascension of the ascending node.
        Returns:
        right ascension of the ascending node (rad)
      • getRightAscensionOfAscendingNodeDot

        public T getRightAscensionOfAscendingNodeDot()
        Get the right ascension of the ascending node derivative.
        Returns:
        right ascension of the ascending node derivative (rad/s)
      • getTrueAnomaly

        public T getTrueAnomaly()
        Get the true anomaly.
        Returns:
        true anomaly (rad)
      • getTrueAnomalyDot

        public T getTrueAnomalyDot()
        Get the true anomaly derivative.
        Returns:
        true anomaly derivative (rad/s)
      • getEccentricAnomaly

        public T getEccentricAnomaly()
        Get the eccentric anomaly.
        Returns:
        eccentric anomaly (rad)
      • getEccentricAnomalyDot

        public T getEccentricAnomalyDot()
        Get the eccentric anomaly derivative.
        Returns:
        eccentric anomaly derivative (rad/s)
      • getMeanAnomaly

        public T getMeanAnomaly()
        Get the mean anomaly.
        Returns:
        mean anomaly (rad)
      • getMeanAnomalyDot

        public T getMeanAnomalyDot()
        Get the mean anomaly derivative.
        Returns:
        mean anomaly derivative (rad/s)
      • getAnomaly

        public T getAnomaly​(PositionAngleType type)
        Get the anomaly.
        Parameters:
        type - type of the angle
        Returns:
        anomaly (rad)
      • getAnomalyDot

        public T getAnomalyDot​(PositionAngleType type)
        Get the anomaly derivative.
        Parameters:
        type - type of the angle
        Returns:
        anomaly derivative (rad/s)
      • getEquinoctialEx

        public T getEquinoctialEx()
        Get the first component of the equinoctial eccentricity vector.
        Specified by:
        getEquinoctialEx in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        first component of the equinoctial eccentricity vector
      • getEquinoctialExDot

        public T getEquinoctialExDot()
        Get the first component of the equinoctial eccentricity vector derivative.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getEquinoctialExDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        first component of the equinoctial eccentricity vector derivative
      • getEquinoctialEy

        public T getEquinoctialEy()
        Get the second component of the equinoctial eccentricity vector.
        Specified by:
        getEquinoctialEy in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        second component of the equinoctial eccentricity vector
      • getEquinoctialEyDot

        public T getEquinoctialEyDot()
        Get the second component of the equinoctial eccentricity vector derivative.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getEquinoctialEyDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        second component of the equinoctial eccentricity vector derivative
      • getHx

        public T getHx()
        Get the first component of the inclination vector.
        Specified by:
        getHx in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        first component of the inclination vector
      • getHxDot

        public T getHxDot()
        Get the first component of the inclination vector derivative.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getHxDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        first component of the inclination vector derivative
      • getHy

        public T getHy()
        Get the second component of the inclination vector.
        Specified by:
        getHy in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        second component of the inclination vector
      • getHyDot

        public T getHyDot()
        Get the second component of the inclination vector derivative.
        Specified by:
        getHyDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        second component of the inclination vector derivative
      • getLvDot

        public T getLvDot()
        Get the true longitude argument derivative.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getLvDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        d(v + ω + Ω)/dt true longitude argument derivative (rad/s)
      • getLE

        public T getLE()
        Get the eccentric longitude argument.
        Specified by:
        getLE in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        E + ω + Ω eccentric longitude argument (rad)
      • getLEDot

        public T getLEDot()
        Get the eccentric longitude argument derivative.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getLEDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        d(E + ω + Ω)/dt eccentric longitude argument derivative (rad/s)
      • getLMDot

        public T getLMDot()
        Get the mean longitude argument derivative.

        If the orbit was created without derivatives, the value returned is null.

        Specified by:
        getLMDot in class FieldOrbit<T extends CalculusFieldElement<T>>
        Returns:
        d(M + ω + Ω)/dt mean longitude argument derivative (rad/s)
      • withFrame

        public FieldKeplerianOrbit<T> withFrame​(Frame inertialFrame)
        Create a new object representing the same physical orbital state, but attached to a different reference frame. If the new frame is not inertial, an exception will be thrown.
        Specified by:
        withFrame in class FieldOrbit<T extends CalculusFieldElement<T>>
        Parameters:
        inertialFrame - reference frame of output orbit
        Returns:
        orbit with different frame
      • addKeplerContribution

        public void addKeplerContribution​(PositionAngleType type,
                                          T gm,
                                          T[] pDot)
        Add the contribution of the Keplerian motion to parameters derivatives

        This method is used by integration-based propagators to evaluate the part of Keplerian motion to evolution of the orbital state.

        Specified by:
        addKeplerContribution in class FieldOrbit<T extends CalculusFieldElement<T>>
        Parameters:
        type - type of the position angle in the state
        gm - attraction coefficient to use
        pDot - array containing orbital state derivatives to update (the Keplerian part must be added to the array components, as the array may already contain some non-zero elements corresponding to non-Keplerian parts)
      • toString

        public String toString()
        Returns a string representation of this Keplerian parameters object.
        Overrides:
        toString in class Object
        Returns:
        a string representation of this object
      • hasNonKeplerianRates

        public boolean hasNonKeplerianRates()
        Tells whether the instance holds rates (first-order time derivatives) for dependent variables that are incompatible with Keplerian motion.
        Specified by:
        hasNonKeplerianRates in interface PositionAngleBased<T extends CalculusFieldElement<T>>
        Returns:
        true if and only if holding non-Keplerian rates