Class AbstractJacchiaBowmanModel

java.lang.Object
org.orekit.models.earth.atmosphere.AbstractSunInfluencedAtmosphere
org.orekit.models.earth.atmosphere.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:
  • Constructor Details

    • 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 Details

    • 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