public class DTM2000 extends AbstractDTM
NB Since the initial implementation (rev 1665), the model has been modified to fix a bug (see Story V-83 for validation) : the number of days in the year (cachedDay)is a double, instead of an integer. This modification should be integrated in the OREKIT future version.
It is described in the paper:
The DTM-2000 empirical thermosphere model with new data assimilation and constraints at lower boundary: accuracy
and properties
S. Bruinsma, G. Thuillier and F. Barlier
Journal of Atmospheric and Solar-Terrestrial Physics 65 (2003) 1053–1070
Two computation methods are proposed to the user:
AbstractDTM.getDensity(double, double, double, double, double, double, double, double, double)
.drag force model
computation.This model provides dense output for altitudes beyond 120 km. Computed data are:
The model needs geographical and time information to compute general values, but also needs space weather data : mean and instantaneous solar flux and geomagnetic indices.
Mean solar flux is (for the moment) represented by the F10.7 indices. Instantaneous flux can be set to the mean value if the data is not available. Geomagnetic activity is represented by the Kp indice, which goes from 1 (very low activity) to 9 (high activity).
All these data can be found on the NOAA (National Oceanic and Atmospheric Administration) website.Mod : Modified line 871, added TimeZone.getTimeZone("GMT+00:00") to get a GregorianCalendar that doesnt depend on the machine locale time zone.
Mod : DTM2000 thread-safety improved : instances in different threads no longer corrupt each others' computations. But sharing one instance between several threads is untested (no realistic use case found).
akp, alat, ALEFA, ATOMIC_NITROGEN, ATOMIC_OXYGEN, az, az2, c2h, c3h, cachedAlti, cachedDay, cachedF, cachedFbar, cachedHl, cachedTemperature, cc, ch, CPMG, daz, daz2, dh, dhe, do2, dox, dt0, dtp, dtt, earth, GSURF, h, he, HELIUM, HYDROGEN, inputParams, MA, MOLECULAR_NITROGEN, MOLECULAR_OXYGEN, o, o2, p10, p10mg, p11, p20, p20mg, p21, p22, p30, p31, p32, p33, p40, p40mg, p41, p42, p50, p51, p52, p60, p62, RE, RGAS, ro, ROT, ROT2, s2h, s3h, sh, SPMG, sun, t0, tinf, tp, tt, VMA, XLMG, xlon, ZLB0
Constructor and Description |
---|
DTM2000(DTMInputParameters parameters,
PVCoordinatesProvider sunIn,
BodyShape earthIn)
Simple constructor for independent computation.
|
Modifier and Type | Method and Description |
---|---|
Atmosphere |
copy()
A copy of the atmosphere.
|
protected void |
densityComputationFromFortran()
This function performs the actual density compuation once the inputs values
are saved into the global caches.
|
protected double |
gFunction(double[] a,
double[] da,
int ff0,
int kleEq)
Computation of function G.
|
checkSolarActivityData, computeGeographicMagneticCoefficients, getData, getDensity, getEarth, getParameters, getSpeedOfSound, getSun, getVelocity, initderivatives, initializeLegendreCoefficients
public DTM2000(DTMInputParameters parameters, PVCoordinatesProvider sunIn, BodyShape earthIn) throws PatriusException
parameters
- the solar and magnetic activity datasunIn
- the sun positionearthIn
- the earth body shapePatriusException
- if some resource file reading error occursprotected void densityComputationFromFortran()
densityComputationFromFortran
in class AbstractDTM
protected double gFunction(double[] a, double[] da, int ff0, int kleEq)
gFunction
in class AbstractDTM
a
- vector of coefficients for computationda
- vector of partial derivativesff0
- coefficient flag (1 for Ox, Az, He, T°; 0 for H and tp120)kleEq
- season indicator flag (summer, winter, equinox)public Atmosphere copy()
The following attributes are not deeply copied:
DTMInputParameters
PVCoordinatesProvider
BodyShape
The following attributes are not deeply copied:
DTMInputParameters
PVCoordinatesProvider
BodyShape
copy
in interface Atmosphere
copy
in class AbstractDTM
Copyright © 2021 CNES. All rights reserved.