biogears::GeneralMath Class Reference

#include <GeneralMath.h>

Static Public Member Functions

static void CalculateConcentration (const SEScalarMass &mass, const SEScalarVolume &volume, SEScalarMassPerVolume &concentration, Logger *logger=nullptr)
 Calculates the concentration of a substance given mass and volume. concentration = mass / volume. More...
 
static void CalculateMass (const SEScalarVolume &volume, const SEScalarMassPerVolume &concentration, SEScalarMass &mass, Logger *logger=nullptr)
 Calculates the mass of a substance given concentration and volume. mass = concentration * volume. More...
 
static void CalculateHenrysLawConcentration (const SESubstance &substance, const SEScalarPressure &partialPressure, SEScalarMassPerVolume &concentration, Logger *logger=nullptr)
 Calculates the mass of a substance given concentration and volume. mass = concentration * volume. More...
 
static void CalculatePartialPressureInGas (const SEScalarFraction &volumeFraction, const SEScalarPressure &pressure, SEScalarPressure &partialPressure, Logger *logger=nullptr)
 Calculates the partial pressure of a substance in gas based on the volumeFraction * pressure. More...
 
static void CalculatePartialPressureInLiquid (const SESubstance &substance, const SEScalarMassPerVolume &concentration, SEScalarPressure &partialPressure, Logger *logger=nullptr)
 Calculates the partial pressure of a substance in liquid using (density and solubility coefficient) and the concentration. More...
 
static void CalculateOsmolarity (const SEScalarAmountPerVolume &sodiumMolarity, const SEScalarAmountPerVolume &potassiumMolarity, const SEScalarAmountPerVolume &glucoseMolarity, const SEScalarAmountPerVolume &ureaMolarity, SEScalarOsmolarity &fluidOsmolarity)
 [Bhagat1984CalculatedOsmolality] More...
 
static void CalculateOsmolality (const SEScalarAmountPerVolume &sodiumMolarity, const SEScalarAmountPerVolume &potassiumMolarity, const SEScalarAmountPerVolume &glucoseMolarity, const SEScalarAmountPerVolume &ureaMolarity, const SEScalar &specificGravity, SEScalarOsmolality &fluidOsmolality)
 [Bhagat1984CalculatedOsmolality] More...
 
static void CalculateSpecificGravity (const SEScalarMass &mass, const SEScalarVolume &volume, SEScalar &specificGravity, Logger *logger=nullptr)
 
static void CalculateWaterDensity (const SEScalarTemperature &temp, SEScalarMassPerVolume &density)
 
static void Combinations (::std::vector< int > maxValues,::std::vector<::std::vector< int >> &permutations)
 
static double AntoineEquation (double dTemperature_C)
 
static double LinearInterpolator (double x1, double x2, double y1, double y2, double xPrime)
 Performs linear interpolation between two points. More...
 
static double PercentDifference (double expected, double calculated)
 
static double PercentTolerance (double expected, double calculated, double epsilon=1e-20)
 
static double ResistanceFunction (double dbase, double dmin, double dmax, double dx)
 Returns y value for the specified exponential function given a normalized x value (0.0 to 1.0). More...
 
static double LogisticFunction (double a, double x50, double k, double x)
 A logistic function. More...
 
static double CalculateNernstPotential (SELiquidCompartment &extra, SELiquidCompartment &intra, SESubstance *ion, double &coreTemp_K)
 Calculates Nernst Potential. More...
 
static double HillActivation (double x, double n, double h)
 
static double HillInhibition (double x, double n, double h)
 
static double VectorSum (std::vector< double > &vec)
 

Member Function Documentation

double biogears::GeneralMath::AntoineEquation ( double  dTemperature_C)
static
void biogears::GeneralMath::CalculateConcentration ( const SEScalarMass mass,
const SEScalarVolume volume,
SEScalarMassPerVolume concentration,
Logger logger = nullptr 
)
static

Calculates the concentration of a substance given mass and volume. concentration = mass / volume.

void biogears::GeneralMath::CalculateHenrysLawConcentration ( const SESubstance substance,
const SEScalarPressure partialPressure,
SEScalarMassPerVolume concentration,
Logger logger = nullptr 
)
static

Calculates the mass of a substance given concentration and volume. mass = concentration * volume.

void biogears::GeneralMath::CalculateMass ( const SEScalarVolume volume,
const SEScalarMassPerVolume concentration,
SEScalarMass mass,
Logger logger = nullptr 
)
static

Calculates the mass of a substance given concentration and volume. mass = concentration * volume.

double biogears::GeneralMath::CalculateNernstPotential ( SELiquidCompartment extra,
SELiquidCompartment intra,
SESubstance ion,
double &  coreTemp_K 
)
static

Calculates Nernst Potential.

Parameters
extraextracellular tissue compartment
intraintracellular tissue compartment
ionion being considered (Na, K, Cl)
Returns
E_nernst

Calculates the Nernst potential of an ion based on its concentration gradient. The difference between this value and the current cell potential dictates the rate and direction of ion movement

void biogears::GeneralMath::CalculateOsmolality ( const SEScalarAmountPerVolume sodiumMolarity,
const SEScalarAmountPerVolume potassiumMolarity,
const SEScalarAmountPerVolume glucoseMolarity,
const SEScalarAmountPerVolume ureaMolarity,
const SEScalar specificGravity,
SEScalarOsmolality fluidOsmolality 
)
static

[Bhagat1984CalculatedOsmolality]

void biogears::GeneralMath::CalculateOsmolarity ( const SEScalarAmountPerVolume sodiumMolarity,
const SEScalarAmountPerVolume potassiumMolarity,
const SEScalarAmountPerVolume glucoseMolarity,
const SEScalarAmountPerVolume ureaMolarity,
SEScalarOsmolarity fluidOsmolarity 
)
static

[Bhagat1984CalculatedOsmolality]

void biogears::GeneralMath::CalculatePartialPressureInGas ( const SEScalarFraction volumeFraction,
const SEScalarPressure pressure,
SEScalarPressure partialPressure,
Logger logger = nullptr 
)
static

Calculates the partial pressure of a substance in gas based on the volumeFraction * pressure.

void biogears::GeneralMath::CalculatePartialPressureInLiquid ( const SESubstance substance,
const SEScalarMassPerVolume concentration,
SEScalarPressure partialPressure,
Logger logger = nullptr 
)
static

Calculates the partial pressure of a substance in liquid using (density and solubility coefficient) and the concentration.

void biogears::GeneralMath::CalculateSpecificGravity ( const SEScalarMass mass,
const SEScalarVolume volume,
SEScalar specificGravity,
Logger logger = nullptr 
)
static
void biogears::GeneralMath::CalculateWaterDensity ( const SEScalarTemperature temp,
SEScalarMassPerVolume density 
)
static
void biogears::GeneralMath::Combinations ( ::std::vector< int >  maxValues,
::std::vector<::std::vector< int >> &  permutations 
)
static
double biogears::GeneralMath::HillActivation ( double  x,
double  n,
double  h 
)
static
double biogears::GeneralMath::HillInhibition ( double  x,
double  n,
double  h 
)
static
double biogears::GeneralMath::LinearInterpolator ( double  x1,
double  x2,
double  y1,
double  y2,
double  xPrime 
)
static

Performs linear interpolation between two points.

Parameters
x1value 1 on the x axis
x2value 2 on the x axis
y1the y value corresponding to x1
y2the y value corresponding to x2
xPrimethe interpolation point
Returns
the y value corresponding to xPrime

Linear Interpolator finds the y value at xPrime. The slope and Y intercept of the line connecting (x1,y1) and (x2,y2) are then found so y = mx + b can be used to find yPrime by inputting xPrime.

double biogears::GeneralMath::LogisticFunction ( double  a,
double  x50,
double  k,
double  x 
)
static

A logistic function.

Parameters
aasymptote
x50x-value at sigmoid midpoint
kcurve steepness and direction parameter
xinput value
Returns
y

A logistic function.

double biogears::GeneralMath::PercentDifference ( double  expected,
double  calculated 
)
static
double biogears::GeneralMath::PercentTolerance ( double  expected,
double  calculated,
double  epsilon = 1e-20 
)
static
double biogears::GeneralMath::ResistanceFunction ( double  dbase,
double  dmin,
double  dmax,
double  dx 
)
static

Returns y value for the specified exponential function given a normalized x value (0.0 to 1.0).

y = dbase ^ [(Log10(dmin/dmax) * x) + Log10(dmax)]

Parameters
dbasebase value
dminminimum
dmaxmaximum
xnormalized x, 0.0 to 1.0
Returns
y

Exponential function used to model airflow resistance. Requires a base value for the function, a minimum y value (x = 0), and maximum y value (x = 1). Return the y value that maps to x.

Limitations:

  • dmin > 0
  • dmax > 0
  • 0.0 <= dx <= 1.0

If any of the input variables fall outside the above bounds, the function returns NaN

double biogears::GeneralMath::VectorSum ( std::vector< double > &  vec)
static