fr.cnes.sirius.patrius.stela.forces.atmospheres
Class MSIS00Adapter

java.lang.Object
  extended by fr.cnes.sirius.patrius.stela.forces.atmospheres.MSIS00Adapter
All Implemented Interfaces:
Serializable, Atmosphere, ExtendedAtmosphere

public class MSIS00Adapter
extends Object
implements ExtendedAtmosphere

This class implements the MSIS00 atmospheric model.
It is an interface layer between the NRLMSISE00 class - adapted from Fortran - and the SIRIUS data structures. It implements the method getDensity of the interface Atmosphere, based on the MSIS00 atmospheric model.

Warning: this model is not continuous. There is a discontinuity every day (at 0h in UTC time scale). Discontinuities are however very small (1E-3 on a relative scale).

Since:
1.3
Version:
$Id: MSIS00Adapter.java 17584 2017-05-10 13:26:39Z bignon $
Author:
Vincent Ruch, Rami Houdroge, Tiziana Sabatini
See Also:
Serialized Form
Concurrency :
thread-hostile
Concurrency comment :
The direct use of thread hostile objects makes this class thread hostile itself.

Constructor Summary
MSIS00Adapter(MSISE2000InputParameters data, double rEq, double f, CelestialBody sunBody)
          Simple constructor for class MSIS00Adapter.
 
Method Summary
 AtmosphereData getData(AbsoluteDate date, Vector3D position, Frame frame)
          Get detailed atmospheric data.
 double getDensity(AbsoluteDate date, Vector3D position, Frame frame)
          Get the local density.
 double getSpeedOfSound(AbsoluteDate date, Vector3D position, Frame frame)
          Get the local speed of sound.
 Vector3D getVelocity(AbsoluteDate date, Vector3D position, Frame frame)
          Get the spacecraft velocity relative to the atmosphere.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MSIS00Adapter

public MSIS00Adapter(MSISE2000InputParameters data,
                     double rEq,
                     double f,
                     CelestialBody sunBody)
Simple constructor for class MSIS00Adapter.

Parameters:
data - solar data
rEq - the Earth equatorial radius
f - the Earth flattening
sunBody - the sun
Method Detail

getDensity

public double getDensity(AbsoluteDate date,
                         Vector3D position,
                         Frame frame)
                  throws OrekitException
Get the local density.

Specified by:
getDensity in interface Atmosphere
Parameters:
date - current date
position - current position in frame
frame - the frame in which is defined the position
Returns:
local density (kg/m3)
Throws:
OrekitException - if date is out of range of solar activity model or if some frame conversion cannot be performed

getVelocity

public Vector3D getVelocity(AbsoluteDate date,
                            Vector3D position,
                            Frame frame)
                     throws OrekitException
Description copied from interface: Atmosphere
Get the spacecraft velocity relative to the atmosphere.

Specified by:
getVelocity in interface Atmosphere
Parameters:
date - current date
position - current position in frame
frame - the frame in which is defined the position
Returns:
velocity (m/s) (defined in the same frame as the position)
Throws:
OrekitException - if some conversion cannot be performed

getSpeedOfSound

public double getSpeedOfSound(AbsoluteDate date,
                              Vector3D position,
                              Frame frame)
                       throws OrekitException
Get the local speed of sound.

Specified by:
getSpeedOfSound in interface Atmosphere
Parameters:
date - current date
position - current position in frame
frame - the frame in which is defined the position
Returns:
speed of sound (m/s)
Throws:
OrekitException - if some conversion cannot be performed

getData

public AtmosphereData getData(AbsoluteDate date,
                              Vector3D position,
                              Frame frame)
                       throws OrekitException
Get detailed atmospheric data.

MSISE00Adapter provides all data mentioned in AtmosphereData.

Specified by:
getData in interface ExtendedAtmosphere
Parameters:
date - current date
position - current position in frame
frame - the frame in which is defined the position
Returns:
detailed atmospheric data
Throws:
OrekitException - if some atmospheric data cannot be retrieved (because date is out of range of solar activity model or if some frame conversion cannot be performed)


Copyright © 2017 CNES. All Rights Reserved.