Class AbstractJacchiaBowmanModel
- java.lang.Object
-
- org.orekit.models.earth.atmosphere.AbstractSunInfluencedAtmosphere
-
- org.orekit.models.earth.atmosphere.AbstractJacchiaBowmanModel
-
- All Implemented Interfaces:
Atmosphere
public abstract class AbstractJacchiaBowmanModel extends AbstractSunInfluencedAtmosphere
Base class for Jacchia-Bowman atmospheric models.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractJacchiaBowmanModel(ExtendedPositionProvider sun, TimeScale utc, BodyShape earth, AbsoluteDate minDataEpoch, AbsoluteDate maxDataEpoch)
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected double
computeDensity(AbsoluteDate date, double sunRA, double sunDecli, double satLon, double satLat, double satAlt)
Computes the local density with initial entries.protected <T extends CalculusFieldElement<T>>
TcomputeDensity(FieldAbsoluteDate<T> date, T sunRA, T sunDecli, T satLon, T satLat, T satAlt)
Computes the local density with initial entries.protected abstract double
computeTc(AbsoluteDate date)
Computes the temperature equation.protected abstract double
computeTInf(AbsoluteDate date, double tsubl, double dtclst)
Computes the local exospheric temperature.protected abstract <T extends CalculusFieldElement<T>>
TcomputeTInf(AbsoluteDate date, T tsubl, T dtclst)
Computes the local exospheric temperature.double
getDensity(AbsoluteDate date, Vector3D position, Frame frame)
Get the local density.<T extends CalculusFieldElement<T>>
TgetDensity(FieldAbsoluteDate<T> date, FieldVector3D<T> position, Frame frame)
Get the local density.BodyShape
getEarth()
Get the Earth body shape.protected abstract double
getF10(AbsoluteDate date)
Get the 10.7-cm Solar flux (1e-22*Watt/(m²*Hertz))
(Tabular time 1.0 day earlier).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).Frame
getFrame()
Get the frame of the central body.TimeScale
getUtc()
Get the UTC time scale.protected abstract double
semian(AbsoluteDate date, double day, double altKm)
Computes the semi-annual variation (delta log(rho)).protected abstract <T extends CalculusFieldElement<T>>
Tsemian(AbsoluteDate date, T day, T altKm)
Computes the semi-annual variation (delta log(rho)).-
Methods inherited from class org.orekit.models.earth.atmosphere.AbstractSunInfluencedAtmosphere
getSun, getSunPosition, getSunPosition
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.models.earth.atmosphere.Atmosphere
getVelocity, getVelocity
-
-
-
-
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 shapeminDataEpoch
- earliest epoch of solar activity datamaxDataEpoch
- 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 dateposition
- current position in frameframe
- 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 dateposition
- current position in frameframe
- 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 epochsunRA
- 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 epochsunRA
- 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 epochday
- day of yearaltKm
- 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 epochtsubl
- 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 epochday
- day of yearaltKm
- 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 epochtsubl
- exospheric temperature ("tsubl" term), given by Equation (17)dtclst
- correction to dTc for local solar time and lat correction- Returns:
- the local exospheric temperature
-
-