mars_lib 0.1.0.2abe2576fe7f
Modular and Robust Sensor-Fusion
Loading...
Searching...
No Matches
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.
 
 MediumPressureOptions (double P_sl, double M, double r, double g)
 Detailted constructor for Pressure::Type::GAS constants.
 
 MediumPressureOptions (double rho, double g)
 Detailted constructor for Pressure::Type::LIQUID constants.
 
void set_constants ()
 Sets a couple of constants for faster calculations.
 
void update_constants (Pressure p0)
 Updates the constants related to the reference pressure P_0, where height = 0.
 
void PrintGasOptions ()
 Print a list of all gas options currently set.
 

Public Attributes

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

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 {
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] (default: 0.289644)
runiversal gas constant in [Nm/(mol*K)] (default 8.3144598)
ggravity constant in [m/s^2] (default: 9.80665)
See also
https://en.wikipedia.org/wiki/Barometric_formula#Pressure_equations
117 : g(g), P_sl(P_sl), M(M), r(r)
118 {
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] (default: 9.80665)
See also
https://en.wikipedia.org/wiki/Barometric_formula#Pressure_equations
129 : g(g), rho(rho)
130 {
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]

135{ 9.80665 };

◆ P_sl

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

(gas) pressure at sealevel [Pascal]

138{ 101325 };

◆ M

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

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

139{ 0.0289644 };

◆ r

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

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

140{ 8.31432 };

◆ rho

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

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

143{ 997 };

◆ 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: