Class AbstractJacchiaBowmanModel

  • All Implemented Interfaces:
    Atmosphere
    Direct Known Subclasses:
    JB2006, JB2008

    public abstract class AbstractJacchiaBowmanModel
    extends AbstractSunInfluencedAtmosphere
    Base class for Jacchia-Bowman atmospheric models.
    Since:
    13.1
    Author:
    Bruce R Bowman (HQ AFSPC, Space Analysis Division), Feb 2006: FORTRAN routine, Fabien Maussion (java translation), Bryan Cazabonne (field elements translation)
    See Also:
    JB2006, JB2008
    • Constructor Detail

      • AbstractJacchiaBowmanModel

        protected AbstractJacchiaBowmanModel​(ExtendedPositionProvider sun,
                                             TimeScale utc,
                                             BodyShape earth,
                                             AbsoluteDate minDataEpoch,
                                             AbsoluteDate maxDataEpoch)
        Constructor.
        Parameters:
        sun - position provider.
        utc - UTC time scale. Used to computed the day fraction.
        earth - the earth body shape
        minDataEpoch - earliest epoch of solar activity data
        maxDataEpoch - latest epoch of solar activity data
    • Method Detail

      • getUtc

        public TimeScale getUtc()
        Get the UTC time scale.
        Returns:
        UTC time scale
      • getEarth

        public BodyShape getEarth()
        Get the Earth body shape.
        Returns:
        the Earth body shape
      • getDensity

        public double getDensity​(AbsoluteDate date,
                                 Vector3D position,
                                 Frame frame)
        Get the local density.
        Parameters:
        date - current date
        position - current position in frame
        frame - the frame in which is defined the position
        Returns:
        local density (kg/m³)
      • getDensity

        public <T extends CalculusFieldElement<T>> T getDensity​(FieldAbsoluteDate<T> date,
                                                                FieldVector3D<T> position,
                                                                Frame frame)
        Get the local density.
        Type Parameters:
        T - instance of CalculusFieldElement
        Parameters:
        date - current date
        position - current position in frame
        frame - the frame in which is defined the position
        Returns:
        local density (kg/m³)
      • getFrame

        public Frame getFrame()
        Get the frame of the central body.
        Returns:
        frame of the central body.
      • computeDensity

        protected double computeDensity​(AbsoluteDate date,
                                        double sunRA,
                                        double sunDecli,
                                        double satLon,
                                        double satLat,
                                        double satAlt)
        Computes the local density with initial entries.
        Parameters:
        date - computation epoch
        sunRA - Right Ascension of Sun (radians)
        sunDecli - Declination of Sun (radians)
        satLon - Right Ascension of position (radians)
        satLat - Geocentric latitude of position (radians)
        satAlt - Height of position (m)
        Returns:
        total mass-Density at input position (kg/m³)
      • computeDensity

        protected <T extends CalculusFieldElement<T>> T computeDensity​(FieldAbsoluteDate<T> date,
                                                                       T sunRA,
                                                                       T sunDecli,
                                                                       T satLon,
                                                                       T satLat,
                                                                       T satAlt)
        Computes the local density with initial entries.
        Type Parameters:
        T - type of the elements
        Parameters:
        date - computation epoch
        sunRA - Right Ascension of Sun (radians)
        sunDecli - Declination of Sun (radians)
        satLon - Right Ascension of position (radians)
        satLat - Geocentric latitude of position (radians)
        satAlt - Height of position (m)
        Returns:
        total mass-Density at input position (kg/m³)
      • semian

        protected abstract double semian​(AbsoluteDate date,
                                         double day,
                                         double altKm)
        Computes the semi-annual variation (delta log(rho)).
        Parameters:
        date - computation epoch
        day - day of year
        altKm - height (km)
        Returns:
        semi-annual variation
      • computeTInf

        protected abstract double computeTInf​(AbsoluteDate date,
                                              double tsubl,
                                              double dtclst)
        Computes the local exospheric temperature.
        Parameters:
        date - computation epoch
        tsubl - exospheric temperature ("tsubl" term), given by Equation (17)
        dtclst - correction to dTc for local solar time and lat correction
        Returns:
        the local exospheric temperature
      • computeTc

        protected abstract double computeTc​(AbsoluteDate date)
        Computes the temperature equation.
        Parameters:
        date - computation epoch
        Returns:
        the temperature equation
      • getF10

        protected abstract double getF10​(AbsoluteDate date)
        Get the 10.7-cm Solar flux (1e-22*Watt/(m²*Hertz))
        (Tabular time 1.0 day earlier).
        Parameters:
        date - computation epoch
        Returns:
        the 10.7-cm Solar flux from model input parameters
      • getF10B

        protected abstract double getF10B​(AbsoluteDate date)
        Get the 10.7-cm Solar Flux, averaged 81-day centered on the input time
        (Tabular time 1.0 day earlier).
        Parameters:
        date - computation epoch
        Returns:
        the 10.7-cm Solar Flux, averaged 81-day centered on the input time
      • semian

        protected abstract <T extends CalculusFieldElement<T>> T semian​(AbsoluteDate date,
                                                                        T day,
                                                                        T altKm)
        Computes the semi-annual variation (delta log(rho)).
        Type Parameters:
        T - type of the elements
        Parameters:
        date - computation epoch
        day - day of year
        altKm - height (km)
        Returns:
        semi-annual variation
      • computeTInf

        protected abstract <T extends CalculusFieldElement<T>> T computeTInf​(AbsoluteDate date,
                                                                             T tsubl,
                                                                             T dtclst)
        Computes the local exospheric temperature.
        Type Parameters:
        T - type of the elements
        Parameters:
        date - computation epoch
        tsubl - exospheric temperature ("tsubl" term), given by Equation (17)
        dtclst - correction to dTc for local solar time and lat correction
        Returns:
        the local exospheric temperature