Atmosphere Class Referenceabstract

This models a base atmosphere class to serve as a common interface to any derived atmosphere models. More...

#include <physics/physics.hh>

Inherited by AdiabaticAtmosphere.

Public Member Functions

 Atmosphere (physics::World &_world)
 Default constructor. More...
 
virtual ~Atmosphere ()
 Destructor. More...
 
virtual void Load (sdf::ElementPtr _sdf)
 Load the atmosphere model. More...
 
virtual 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)=0
 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 =0
 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...
 

Detailed Description

This models a base atmosphere class to serve as a common interface to any derived atmosphere models.

Constructor & Destructor Documentation

Atmosphere ( physics::World _world)
explicit

Default constructor.

Parameters
[in]_worldReference to the world.
virtual ~Atmosphere ( )
virtual

Destructor.

Member Function Documentation

virtual void Load ( sdf::ElementPtr  _sdf)
virtual

Load the atmosphere model.

Parameters
[in]_sdfPointer to the SDF parameters.

Reimplemented in AdiabaticAtmosphere.

virtual 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 in AdiabaticAtmosphere.

virtual void OnAtmosphereMsg ( ConstAtmospherePtr &  _msg)
protectedvirtual

Virtual callback for gztopic "~/atmosphere".

Parameters
[in]_msgAtmosphere message.

Reimplemented in AdiabaticAtmosphere.

virtual void OnRequest ( ConstRequestPtr &  _msg)
protectedvirtual

Virtual callback for gztopic "~/request".

Parameters
[in]_msgRequest message.

Reimplemented in AdiabaticAtmosphere.

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 in AdiabaticAtmosphere.

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

Publish response to a request.

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

Reset the atmosphere model.

sdf::ElementPtr SDF ( ) const

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

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

Set the sea level pressure.

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

Set the sea level temperature.

Parameters
[in]_tTemperature value in kelvins.
virtual void SetTemperatureGradient ( const double  _gradient)
pure 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.

Implemented in AdiabaticAtmosphere.

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 in AdiabaticAtmosphere.

double TemperatureGradient ( ) const

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
pure virtual

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

Returns
Type of the atmosphere model.

Implemented in AdiabaticAtmosphere.

void UpdateMassDensity ( )
protected

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
protected

Return the world.

Returns
Reference to the world.

Member Data Documentation

const double IDEAL_GAS_CONSTANT_R
static

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

const double MOLAR_MASS
static

Molar mass of the air in kg/mol.


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