org.orekit.forces.atmospheres
Class HarrisPriester

java.lang.Object
  extended by org.orekit.forces.atmospheres.HarrisPriester
All Implemented Interfaces:
Serializable, Atmosphere

public class HarrisPriester
extends Object
implements Atmosphere

This atmosphere model is the realization of the Modified Harris-Priester model.

This model is a static one that takes into account the diurnal density bulge. It doesn't need any space weather data but a density vs. altitude table, which depends on solar activity.

The implementation relies on the book:
Satellite Orbits
Oliver Montenbruck, Eberhard Gill
Springer 2005

Author:
Pascal Parraud
See Also:
Serialized Form

Constructor Summary
HarrisPriester(PVCoordinatesProvider sun, BodyShape earth)
          Simple constructor for Modified Harris-Priester atmosphere model.
HarrisPriester(PVCoordinatesProvider sun, BodyShape earth, double n)
          Constructor for Modified Harris-Priester atmosphere model.
HarrisPriester(PVCoordinatesProvider sun, BodyShape earth, double[][] tabAltRho)
          Constructor for Modified Harris-Priester atmosphere model.
HarrisPriester(PVCoordinatesProvider sun, BodyShape earth, double[][] tabAltRho, double n)
          Constructor for Modified Harris-Priester atmosphere model.
 
Method Summary
 double getDensity(AbsoluteDate date, Vector3D position, Frame frame)
          Get the local density.
 double getDensity(double sunRAsc, double sunDecl, Vector3D satPos, double satAlt)
          Get the local density.
 double getMaxAlt()
          Get the maximal altitude for the model.
 double getMinAlt()
          Get the minimal altitude for the model.
 double getSpeedOfSound(AbsoluteDate date, Vector3D position, Frame frame)
          Get the local speed of sound.
 double[][] getTabDensity()
          Get the current density table.
 Vector3D getVelocity(AbsoluteDate date, Vector3D position, Frame frame)
          Get the inertial velocity of atmosphere molecules.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HarrisPriester

public HarrisPriester(PVCoordinatesProvider sun,
                      BodyShape earth)
Simple constructor for Modified Harris-Priester atmosphere model.

The cosine exponent value is set to 4 by default.

The default embedded density table is the one given in the referenced book from Montenbruck & Gill. It is given for mean solar activity and spreads over 100 to 1000 km.

Parameters:
sun - the sun position
earth - the earth body shape

HarrisPriester

public HarrisPriester(PVCoordinatesProvider sun,
                      BodyShape earth,
                      double n)
Constructor for Modified Harris-Priester atmosphere model.

Recommanded values for the cosine exponent spread over the range 2, for low inclination orbits, to 6, for polar orbits.

The default embedded density table is the one given in the referenced book from Montenbruck & Gill. It is given for mean solar activity and spreads over 100 to 1000 km.

Parameters:
sun - the sun position
earth - the earth body shape
n - the cosine exponent

HarrisPriester

public HarrisPriester(PVCoordinatesProvider sun,
                      BodyShape earth,
                      double[][] tabAltRho)
Constructor for Modified Harris-Priester atmosphere model.

The provided density table must be an array such as:

The altitude must be increasing without limitation in range.
The internal density table is a copy of the provided one.

The cosine exponent value is set to 4 by default.

Parameters:
sun - the sun position
earth - the earth body shape
tabAltRho - the density table

HarrisPriester

public HarrisPriester(PVCoordinatesProvider sun,
                      BodyShape earth,
                      double[][] tabAltRho,
                      double n)
Constructor for Modified Harris-Priester atmosphere model.

Recommanded values for the cosine exponent spread over the range 2, for low inclination orbits, to 6, for polar orbits.

The provided density table must be an array such as:

The altitude must be increasing without limitation in range.
The internal density table is a copy of the provided one.

Parameters:
sun - the sun position
earth - the earth body shape
tabAltRho - the density table
n - the cosine exponent
Method Detail

getTabDensity

public double[][] getTabDensity()
Get the current density table.

The density table is an array such as:

The altitude must be increasing without limitation in range.

The returned density table is a copy of the current one.

Returns:
density vs. altitude table

getMinAlt

public double getMinAlt()
Get the minimal altitude for the model.

No computation is possible below this altitude.

Returns:
the minimal altitude (m)

getMaxAlt

public double getMaxAlt()
Get the maximal altitude for the model.

Above this altitude, density is assumed to be zero.

Returns:
the maximal altitude (m)

getDensity

public double getDensity(double sunRAsc,
                         double sunDecl,
                         Vector3D satPos,
                         double satAlt)
                  throws OrekitException
Get the local density.

Parameters:
sunRAsc - Right Ascension of Sun (radians)
sunDecl - Declination of Sun (radians)
satPos - position of s/c in earth frame(m)
satAlt - height of s/c (m)
Returns:
the local density (kg/m3)
Throws:
OrekitException - if altitude is below the model minimal altitude

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 some frame conversion cannot be performed or if altitude is below the model minimal altitude

getVelocity

public Vector3D getVelocity(AbsoluteDate date,
                            Vector3D position,
                            Frame frame)
                     throws OrekitException
Get the inertial velocity of atmosphere molecules.

Here the case is simplified : atmosphere is supposed to have a null velocity in earth frame.

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 frame 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


Copyright © 2017 CNES. All Rights Reserved.