74 doublereal
toSI(
const std::string& units_) {
81 doublereal f = 1.0, fctr;
83 std::string u = units_, tok, tsub;
84 std::string::size_type k;
91 k = u.find_first_of(
"/-");
97 tsize =
static_cast<int>(tok.size());
100 }
else if (tok[tsize - 1] ==
'2') {
101 tsub = tok.substr(0,tsize-1);
104 }
else if (tok[tsize - 1] ==
'3') {
105 tsub = tok.substr(0,tsize-1);
108 }
else if (tok[tsize - 1] ==
'4') {
109 tsub = tok.substr(0,tsize-1);
111 fctr *= fctr*fctr*fctr;
112 }
else if (tok[tsize - 1] ==
'5') {
113 tsub = tok.substr(0,tsize-1);
115 fctr *= fctr*fctr*fctr*fctr;
116 }
else if (tok[tsize - 1] ==
'6') {
117 tsub = tok.substr(0,tsize-1);
119 fctr *= fctr*fctr*fctr*fctr*fctr;
132 }
else if (action ==
'/') {
139 u = u.substr(k+1,u.size());
154 std::map<std::string, doublereal>
m_u;
180 m_u[
"micron"] = 1.0e-6;
183 m_u[
"Angstrom"] = 1.0e-10;
184 m_u[
"Angstroms"] = 1.0e-10;
190 m_u[
"kcal"] = 4184.0;
198 m_u[
"gmol"] = 1.0e-3;
199 m_u[
"mole"] = 1.0e-3;
215 m_u[
"atm"] = 1.01325e5;
229 m_u[
"coulomb"] = 1.0;
244 m_u[
"centipoise"] = 0.001;
250 m_u[
"liter"] = 0.001;
std::map< std::string, doublereal > m_u
Map between a string and a units double value.
doublereal actEnergyToSI(const std::string &units_)
Return the multiplier required to convert an activation energy to SI units.
Unit()
Units class constructor, containing the default mappings between strings and units.
virtual ~Unit()
Empty Destructor.
const size_t npos
index returned by functions to indicate "no position"
This file contains definitions of terms that are used in internal routines and are unlikely to need m...
static Unit * s_u
pointer to the single instance of Unit
doublereal toSI(const std::string &units_)
Return the multiplier required to convert a dimensional quantity with units specified by string 'unit...
std::map< std::string, doublereal > m_act_u
Map between a string and a units double value for activation energy units.
static Unit * units()
Initialize the static Unit class.
Base class for exceptions thrown by Cantera classes.
const doublereal Avogadro
Avogadro's Number [number/kmol].
const doublereal GasConstant
Universal Gas Constant. [J/kmol/K].
static mutex_t units_mutex
Decl for static locker for Units singleton.
Definitions for the classes that are thrown when Cantera experiences an error condition (also contain...
static void deleteUnit()
Destroy the static Unit class.