mars_lib  0.1.0.3dc76ee85e09
Modular and Robust Sensor-Fusion
Public Member Functions | Public Attributes | List of all members
mars::MediumPressureOptions Struct Reference

The MediumPressureOptions struct contains all medium-related (gas, liquid, fluid, etc.) variables needed for pressure calculation. More...

#include </home/runner/work/mars_lib/mars_lib/source/mars/include/mars/sensors/pressure/pressure_conversion.h>

+ Collaboration diagram for mars::MediumPressureOptions:

Public Member Functions

 MediumPressureOptions ()
 Default constructor for MediumPressureOptions and sets all constants to default values. More...
 
 MediumPressureOptions (double P_sl, double M, double r, double g)
 Detailted constructor for Pressure::Type::GAS constants. More...
 
 MediumPressureOptions (double rho, double g)
 Detailted constructor for Pressure::Type::LIQUID constants. More...
 
void set_constants ()
 Sets a couple of constants for faster calculations. More...
 
void update_constants (Pressure p0)
 Updates the constants related to the reference pressure P_0, where height = 0. More...
 
void PrintGasOptions ()
 Print a list of all gas options currently set. More...
 

Public Attributes

const double g { 9.80665 }
 gravity constant [m/s^2] More...
 
const double P_sl { 101325 }
 (gas) pressure at sealevel [Pascal] More...
 
const double M { 0.0289644 }
 (gas) molar mass of dry air [Kg/mol] More...
 
const double r { 8.31432 }
 (gas) universal gas constant [Nm/mol*K] More...
 
const double rho { 997 }
 (liquid) density of the medium [kg/m^3] More...
 
double rOverMg
 (gas) = r/(M*g), for faster calculations More...
 
double ln_Psl
 (gas) = log(P_sl), log of the pressure at sealevel More...
 
double ln_P0PslT
 (gas) = (log(P_meas) - log(P_sl)) * T_meas More...
 
double OneOverGRho
 (liquid) = 1/(g*rho) More...
 

Detailed Description

The MediumPressureOptions struct contains all medium-related (gas, liquid, fluid, etc.) variables needed for pressure calculation.

See also
https://en.wikipedia.org/wiki/Barometric_formula#Pressure_equations

Constructor & Destructor Documentation

◆ MediumPressureOptions() [1/3]

mars::MediumPressureOptions::MediumPressureOptions ( )
inline

Default constructor for MediumPressureOptions and sets all constants to default values.

104  {
105  set_constants();
106  }
void set_constants()
Sets a couple of constants for faster calculations.
Definition: pressure_conversion.h:156
+ Here is the call graph for this function:

◆ MediumPressureOptions() [2/3]

mars::MediumPressureOptions::MediumPressureOptions ( double  P_sl,
double  M,
double  r,
double  g 
)
inline

Detailted constructor for Pressure::Type::GAS constants.

Parameters
P_slpressure at sealevel in [Pascal] (default: 101325)
Mmolar mass of dry air in Kg/mol
runiversal gas constant in Nm/(mol*K)
ggravity constant in m/s^2
See also
https://en.wikipedia.org/wiki/Barometric_formula#Pressure_equations
117  : g(g), P_sl(P_sl), M(M), r(r)
118  {
119  set_constants();
120  }
const double r
(gas) universal gas constant [Nm/mol*K]
Definition: pressure_conversion.h:140
const double M
(gas) molar mass of dry air [Kg/mol]
Definition: pressure_conversion.h:139
const double g
gravity constant [m/s^2]
Definition: pressure_conversion.h:135
const double P_sl
(gas) pressure at sealevel [Pascal]
Definition: pressure_conversion.h:138
+ Here is the call graph for this function:

◆ MediumPressureOptions() [3/3]

mars::MediumPressureOptions::MediumPressureOptions ( double  rho,
double  g 
)
inline

Detailted constructor for Pressure::Type::LIQUID constants.

Parameters
rhodensity of the liquid [kg/m^3] (default: 997)
ggravity constant in m/s^2
See also
https://en.wikipedia.org/wiki/Barometric_formula#Pressure_equations
129  : g(g), rho(rho)
130  {
131  set_constants();
132  }
const double rho
(liquid) density of the medium [kg/m^3]
Definition: pressure_conversion.h:143
+ Here is the call graph for this function:

Member Function Documentation

◆ set_constants()

void mars::MediumPressureOptions::set_constants ( )
inline

Sets a couple of constants for faster calculations.

157  {
158  rOverMg = r / (M * g);
159  ln_Psl = std::log(P_sl);
160  OneOverGRho = 1.0 / (g * rho);
161  }
double rOverMg
(gas) = r/(M*g), for faster calculations
Definition: pressure_conversion.h:146
double OneOverGRho
(liquid) = 1/(g*rho)
Definition: pressure_conversion.h:151
double ln_Psl
(gas) = log(P_sl), log of the pressure at sealevel
Definition: pressure_conversion.h:147
+ Here is the caller graph for this function:

◆ update_constants()

void mars::MediumPressureOptions::update_constants ( Pressure  p0)
inline

Updates the constants related to the reference pressure P_0, where height = 0.

Parameters
p0Pressure to set as reference pressure
169  {
170  ln_P0PslT = (std::log(p0.data_) - ln_Psl) * p0.temperature_K_;
171  }
double ln_P0PslT
(gas) = (log(P_meas) - log(P_sl)) * T_meas
Definition: pressure_conversion.h:148

◆ PrintGasOptions()

void mars::MediumPressureOptions::PrintGasOptions ( )
inline

Print a list of all gas options currently set.

177  {
178  std::cout << "Medium Options:\n"
179  << "\tg: " << g << " m/s^2\n"
180  << "\tGas Options:\n"
181  << "\t P_sl: " << P_sl << " Pa\n"
182  << "\t M: " << M << " Kg*mol\n"
183  << "\t r: " << r << " Nm/mol*K\n"
184  << "\t rOverMg: " << rOverMg << " Nm s^2 / mol^2 Kg Km\n"
185  << "\t ln_Psl: " << ln_Psl << " log(Pa)\n"
186  << "\tLiquid Options:\n"
187  << "\t rho: " << rho << " Pa\n"
188  << "\t 1/gRho: " << OneOverGRho << " Pa\n"
189  << std::endl;
190  }

Member Data Documentation

◆ g

const double mars::MediumPressureOptions::g { 9.80665 }

gravity constant [m/s^2]

◆ P_sl

const double mars::MediumPressureOptions::P_sl { 101325 }

(gas) pressure at sealevel [Pascal]

◆ M

const double mars::MediumPressureOptions::M { 0.0289644 }

(gas) molar mass of dry air [Kg/mol]

◆ r

const double mars::MediumPressureOptions::r { 8.31432 }

(gas) universal gas constant [Nm/mol*K]

◆ rho

const double mars::MediumPressureOptions::rho { 997 }

(liquid) density of the medium [kg/m^3]

◆ rOverMg

double mars::MediumPressureOptions::rOverMg

(gas) = r/(M*g), for faster calculations

◆ ln_Psl

double mars::MediumPressureOptions::ln_Psl

(gas) = log(P_sl), log of the pressure at sealevel

◆ ln_P0PslT

double mars::MediumPressureOptions::ln_P0PslT

(gas) = (log(P_meas) - log(P_sl)) * T_meas

◆ OneOverGRho

double mars::MediumPressureOptions::OneOverGRho

(liquid) = 1/(g*rho)


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