AdiabaticAtmosphere Class Reference

Adiabatic atmosphere model based on the troposphere model in the Manual of the ICAO Standard Atmosphere. More...

#include <AdiabaticAtmosphere.hh>

Inherits Atmosphere.

Public Member Functions

 AdiabaticAtmosphere (physics::World &_world)
 Constructor. More...
 
virtual ~AdiabaticAtmosphere ()
 Destructor. More...
 
virtual void Load (sdf::ElementPtr _sdf)
 Load the atmosphere model. More...
 
double MassDensity (const double _altitude=0.0) const
 Get the density in kg/m^3 at a given altitude. More...
 
virtual double Pressure (const double _altitude=0.0) const
 Get the pressure at a specified altitude in pascals. More...
 
virtual void Reset ()
 Reset the atmosphere model. More...
 
sdf::ElementPtr SDF () const
 Get a pointer to the SDF element for this atmosphere model. More...
 
virtual void SetPressure (const double _pressure)
 Set the sea level pressure. More...
 
virtual void SetTemperature (const double _t)
 Set the sea level temperature. More...
 
virtual void SetTemperatureGradient (const double _gradient)
 Set the temperature gradient dT/dZ with respect to increasing altitude around sea level. More...
 
virtual double Temperature (const double _altitude=0.0) const
 Get the actual modeled temperature in kelvins at a given altitude. More...
 
double TemperatureGradient () const
 Get the sea level temperature gradient with respect to increasing altitude. More...
 
virtual std::string Type () const
 Return the atmosphere model type (such as "adiabatic"). More...
 

Static Public Attributes

static const double IDEAL_GAS_CONSTANT_R
 Universal ideal gas constant in J/(mol.K) More...
 
static const double MOLAR_MASS
 Molar mass of the air in kg/mol. More...
 

Protected Member Functions

virtual void OnAtmosphereMsg (ConstAtmospherePtr &_msg)
 Virtual callback for gztopic "~/atmosphere". More...
 
virtual void OnRequest (ConstRequestPtr &_msg)
 Virtual callback for gztopic "~/request". More...
 
void Publish (const msgs::Response &_msg) const
 Publish response to a request. More...
 
void UpdateMassDensity ()
 Update the mass density of the air at sea level using the ideal gas law. More...
 
physics::WorldWorld () const
 Return the world. More...
 

Protected Attributes

std::unique_ptr
< AdiabaticAtmospherePrivate > 
dataPtr
 

Detailed Description

Adiabatic atmosphere model based on the troposphere model in the Manual of the ICAO Standard Atmosphere.

http://ntrs.nasa.gov/search.jsp?R=19930083952 This model assumes a specific composition of gases, the ideal gas law, hydrostatic equilibrium, and constant gradients of gravity and temperature with respect to altitude. The troposphere model is recommended for altitudes below 11 km.

Constructor & Destructor Documentation

AdiabaticAtmosphere ( physics::World _world)
explicit

Constructor.

Parameters
[in]_worldThe World that uses this atmosphere model.
virtual ~AdiabaticAtmosphere ( )
virtual

Destructor.

Member Function Documentation

virtual void Load ( sdf::ElementPtr  _sdf)
virtual

Load the atmosphere model.

Parameters
[in]_sdfPointer to the SDF parameters.

Reimplemented from Atmosphere.

double MassDensity ( const double  _altitude = 0.0) const
virtual

Get the density in kg/m^3 at a given altitude.

Parameters
[in]_altitudeAltitude above sea level in meters.
Returns
Density in kg/m^3 at the specified altitude.

Reimplemented from Atmosphere.

virtual void OnAtmosphereMsg ( ConstAtmospherePtr &  _msg)
protectedvirtual

Virtual callback for gztopic "~/atmosphere".

Parameters
[in]_msgAtmosphere message.

Reimplemented from Atmosphere.

virtual void OnRequest ( ConstRequestPtr &  _msg)
protectedvirtual

Virtual callback for gztopic "~/request".

Parameters
[in]_msgRequest message.

Reimplemented from Atmosphere.

virtual double Pressure ( const double  _altitude = 0.0) const
virtual

Get the pressure at a specified altitude in pascals.

Parameters
[in]_altitudeAltitude above sea level in meters.
Returns
Pressure in pascals at the specified altitude.

Reimplemented from Atmosphere.

void Publish ( const msgs::Response &  _msg) const
protectedinherited

Publish response to a request.

Parameters
[in]_msgMessage to be published.
virtual void Reset ( )
virtualinherited

Reset the atmosphere model.

sdf::ElementPtr SDF ( ) const
inherited

Get a pointer to the SDF element for this atmosphere model.

Returns
Pointer to the atmosphere SDF element.
virtual void SetPressure ( const double  _pressure)
virtualinherited

Set the sea level pressure.

Parameters
[in]_pressurePressure in pascals.
virtual void SetTemperature ( const double  _t)
virtualinherited

Set the sea level temperature.

Parameters
[in]_tTemperature value in kelvins.
virtual void SetTemperatureGradient ( const double  _gradient)
virtual

Set the temperature gradient dT/dZ with respect to increasing altitude around sea level.

Parameters
[in]_gradientValue of the temperature gradient dT/dZ around sea level in K/m.

Implements Atmosphere.

virtual double Temperature ( const double  _altitude = 0.0) const
virtual

Get the actual modeled temperature in kelvins at a given altitude.

Parameters
[in]_altitudeAltitude above sea level in meters.
Returns
Modeled temperature in kelvin at the specified altitude.

Reimplemented from Atmosphere.

double TemperatureGradient ( ) const
inherited

Get the sea level temperature gradient with respect to increasing altitude.

Returns
Temperature gradient at sea level in K/m.
virtual std::string Type ( ) const
virtual

Return the atmosphere model type (such as "adiabatic").

Returns
Type of the atmosphere model.

Implements Atmosphere.

void UpdateMassDensity ( )
protectedinherited

Update the mass density of the air at sea level using the ideal gas law.

See https://en.wikipedia.org/wiki/Ideal_gas_law

physics::World& World ( ) const
protectedinherited

Return the world.

Returns
Reference to the world.

Member Data Documentation

std::unique_ptr<AdiabaticAtmospherePrivate> dataPtr
protected
const double IDEAL_GAS_CONSTANT_R
staticinherited

Universal ideal gas constant in J/(mol.K)

const double MOLAR_MASS
staticinherited

Molar mass of the air in kg/mol.


The documentation for this class was generated from the following file: