Skip to content

Commit

Permalink
More meaningful variable names in units
Browse files Browse the repository at this point in the history
  • Loading branch information
mlund committed Jul 3, 2024
1 parent ffd0168 commit 4abb330
Showing 1 changed file with 61 additions and 61 deletions.
122 changes: 61 additions & 61 deletions src/units.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,170 +72,170 @@ namespace ChemistryUnits {

using T = double; //!< floating point size

constexpr T operator"" _rad(long double a)
constexpr T operator"" _rad(long double radians)
{
return a;
return radians;
} //!< angle in radians

constexpr T operator"" _deg(long double a)
constexpr T operator"" _deg(long double degrees)
{
return a * pc::pi / 180;
return degrees * pc::pi / 180.0;
} //!< angle in degrees (to radians)

constexpr T operator"" _K(long double temp)
constexpr T operator"" _K(long double kelvin)
{
return temp;
return T(kelvin);
} //!< temperature in kelvins

constexpr T operator"" _C(long double temp)
constexpr T operator"" _C(long double celsius)
{
return 273.15 + temp;
} //!< temperature in degrees Celcius (to kelvins)
return T(celsius) + 273.15;
} //!< temperature in degrees Celsius (to kelvins)

constexpr T operator"" _ps(long double tau)
constexpr T operator"" _ps(long double picoseconds)
{
return tau;
return picoseconds;
} //!< time in picoseconds

constexpr T operator"" _s(long double tau)
constexpr T operator"" _s(long double secs)
{
return tau * 1e12;
return T(secs) * 1e12;
} //!< time in seconds (to picoseconds)

constexpr T operator"" _angstrom(long double l)
constexpr T operator"" _angstrom(long double angstroms)
{
return l;
return angstroms;
} //!< length in ångströms

constexpr T operator"" _nm(long double l)
constexpr T operator"" _nm(long double nanometers)
{
return l * 10;
return T(nanometers * 10.0);
} //!< length in nanometers (to ångströms)

constexpr T operator"" _m(long double l)
constexpr T operator"" _m(long double meters)
{
return l * 1e10;
return T(meters * 1e10);
} //!< length in meters (to ångströms)

constexpr T operator"" _bohr(long double l)
constexpr T operator"" _bohr(long double bohrs)
{
return l * 0.52917721092;
return T(bohrs * 0.52917721092);
} //!< length in Bohr radii (to ångströms)

constexpr T operator"" _angstrom3(long double l)
constexpr T operator"" _angstrom3(long double cubic_angstroms)
{
return l;
return T(cubic_angstroms);
} //!< volume in cubic ångströms

constexpr T operator"" _m3(long double v)
constexpr T operator"" _m3(long double cubic_meters)
{
return v * 1e30;
return T(cubic_meters * 1e30);
} //!< volume in cubic meters (to cubic ångströms)

constexpr T operator"" _liter(long double v)
constexpr T operator"" _liter(long double liters)
{
return v * 1e27;
return T(liters * 1e27);
} //!< volume in liters (to cubic ångströms)

constexpr T operator"" _gmol(long double m)
constexpr T operator"" _gmol(long double grams_per_mole)
{
return m;
return grams_per_mole;
} //!< mass in grams per mole

constexpr T operator"" _kg(long double m)
constexpr T operator"" _kg(long double kilograms)
{
return m * 1e3 * pc::avogadro;
return T(kilograms) * 1e3 * pc::avogadro;
} //!< mass in kilograms per particle (to grams per mole)

constexpr T operator"" _Da(long double m)
constexpr T operator"" _Da(long double daltons)
{
return m;
return T(daltons);
} //!< mass in daltons per particle (to grams per mole)

//! amount of substance in moles (to number of particles)
constexpr T operator"" _mol(long double n)
constexpr T operator"" _mol(long double moles)
{
return n * pc::avogadro;
return T(moles) * pc::avogadro;
}

//! molar concentration (to particle density in number of particles per cubic ångström)
constexpr T operator"" _molar(long double c)
constexpr T operator"" _molar(long double molarity)
{
return c * 1.0_mol / 1.0_liter;
return T(molarity) * 1.0_mol / 1.0_liter;
}

//! millimolar concentration (to particle density in number of particles per cubic ångström)
constexpr T operator"" _millimolar(long double c)
constexpr T operator"" _millimolar(long double millimolar)
{
return c * 1.0e-3_mol / 1.0_liter;
return T(millimolar) * 1.0e-3_mol / 1.0_liter;
}

//! pressure in pascals (to particle density in number of particles per cubic ångström – assuming
//! the ideal gas law)
inline T operator"" _Pa(long double p)
inline T operator"" _Pa(long double pascals)
{
return p / pc::kT() / 1.0_m3;
return T(pascals) / pc::kT() / 1.0_m3;
}

//! pressure in atmospheres (to particle density in number of particles per cubic ångström –
//! assuming the ideal gas law)
inline T operator"" _atm(long double p)
inline T operator"" _atm(long double atmospheres)
{
return p * 101325.0_Pa;
return T(atmospheres) * 101325.0_Pa;
}

//! pressure in bars (to particles per cubic ångström – assuming the ideal gas law)
inline T operator"" _bar(long double p)
inline T operator"" _bar(long double bars)
{
return p * 100000.0_Pa;
return T(bars) * 100000.0_Pa;
}

//! dipole moment in electron—ångströms
constexpr T operator"" _eA(long double mu)
constexpr T operator"" _eA(long double electron_angstroms)
{
return mu;
return T(electron_angstroms);
}

//! dipole moment in debyes (to electron-ångströms)
constexpr T operator"" _debye(long double mu)
constexpr T operator"" _debye(long double debyes)
{
return mu * 0.208194334424626;
return T(debyes) * 0.208194334424626;
}

//! dipole moment in coulomb-meters (to electron ångströms)
constexpr T operator"" _Cm(long double mu)
constexpr T operator"" _Cm(long double coulomb_meters)
{
return mu * 1.0_debye / 3.335640951981520e-30;
return T(coulomb_meters) * 1.0_debye / 3.335640951981520e-30;
}

//! energy in kT (to kT)
constexpr T operator"" _kT(long double u)
constexpr T operator"" _kT(long double kT)
{
return u;
return T(kT);
}

//! energy in joules (to thermal energy units kT)
inline T operator"" _J(long double u)
inline T operator"" _J(long double joules)
{
return u / pc::kT();
return T(joules) / pc::kT();
}

//! energy in hartrees (to kT)
inline T operator"" _hartree(long double u)
inline T operator"" _hartree(long double hartrees)
{
return u * 4.35974434e-18_J;
return T(hartrees) * 4.35974434e-18_J;
}

//! energy in kilojoules per mole (to kT per particle)
inline T operator"" _kJmol(long double u)
inline T operator"" _kJmol(long double kJ_per_mole)
{
return u / pc::kT() / pc::avogadro * 1e3;
return T(kJ_per_mole) / pc::kT() / pc::avogadro * 1e3;
}

//! energy in kilocalories per mole (to kT per particle)
inline T operator"" _kcalmol(long double u)
inline T operator"" _kcalmol(long double kcal_per_mole)
{
return u * 4.1868_kJmol;
return T(kcal_per_mole) * 4.1868_kJmol;
}

} // namespace ChemistryUnits
Expand Down

0 comments on commit 4abb330

Please sign in to comment.