Page MenuHomec4science

laws.hpp
No OneTemporary

File Metadata

Created
Tue, Jan 28, 02:27

laws.hpp

/*-------------------------------------------------------
- Module : physics
- File : laws
- Author : Fabien Georget
Copyright (c) 2014, Fabien Georget, Princeton University
---------------------------------------------------------*/
#ifndef SPECMICP_LAWS_LAWS_HPP
#define SPECMICP_LAWS_LAWS_HPP
//! \file laws Simple physical laws
#include "constants.hpp"
#include <cmath>
namespace specmicp {
namespace laws {
inline double pressure_perfect_gas(double n, double V, double T=298.15)
{
return n*constants::gas_constant*T/V;
}
inline double mole_perfect_gas(double P, double V, double T=298.15)
{
return P*V/(constants::gas_constant*T);
}
inline double debye_huckel(double sqrtI, double zi, double ao)
{
if (zi != 0)
{
double tmp = - constants::Adebye*std::pow(2, zi)*sqrtI;
tmp /= (1 + ao*constants::Bdebye*sqrtI);
return tmp;
}
else return 0;
}
inline double extended_debye_huckel(double I, double sqrtI, double zi, double ao, double bdot)
{
double tmp = debye_huckel(sqrtI, zi, ao);
return tmp + bdot*I;
}
inline double extended_debye_huckel(double I, double zi, double ao, double bdot)
{
double tmp = debye_huckel(std::sqrt(I), zi, ao);
return tmp + bdot*I;
}
} // end namespace laws
} // end namespace specmicp
#endif // SPECMICP_LAWS_LAWS_HPP

Event Timeline