[Transport] Fix conversion of dipole moments from Debye to SI units
The existing formulas for converting Debye to SI units did not maintain the correct dimensionality for the dipole moment. The updated formulas do not change the results of any calculations, but the dipole moment is now correctly expressed in Coulomb-meters.
This commit is contained in:
parent
79baacc605
commit
e05da2a6a5
2 changed files with 8 additions and 8 deletions
|
|
@ -218,11 +218,11 @@ public:
|
|||
|
||||
//! The effective dipole moment for (i,j) collisions
|
||||
/*!
|
||||
* tr.dipoleMoment has units of Debye's. A Debye is 10-18 cm3/2 erg1/2
|
||||
* dipoleMoment has units of Debye. A Debye is 3.335e-30 C-m
|
||||
*
|
||||
* tr.dipole(i,i) = 1.e-25 * SqrtTen * trdat.dipoleMoment;
|
||||
* tr.dipole(i,i) = 1.e-21 / lightSpeed * dipoleMoment;
|
||||
* tr.dipole(i,j) = sqrt(tr.dipole(i,i)*tr.dipole(j,j));
|
||||
* Units are in Debye (note, no kmol -> this is a per molecule amount)
|
||||
* (note, no kmol -> this is a per molecule amount)
|
||||
*
|
||||
* Length nsp * nsp. This is a symmetric matrix.
|
||||
*/
|
||||
|
|
@ -231,7 +231,7 @@ public:
|
|||
//! Matrix containing the reduced dipole moment of the interaction between two species
|
||||
/*!
|
||||
* This is the reduced dipole moment of the interaction between two species
|
||||
* 0.5 * tr.dipole(i,j)*tr.dipole(i,j) (epsilon(i,j) * d * d * d);
|
||||
* 0.5 * tr.dipole(i,j)^2 / (4 * Pi * epsilon_0 * epsilon(i,j) * d^3);
|
||||
*
|
||||
* Length nsp * nsp .This is a symmetric matrix
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ void TransportFactory::makePolarCorrections(size_t i, size_t j,
|
|||
d3np = pow(tr.sigma[knp],3);
|
||||
d3p = pow(tr.sigma[kp],3);
|
||||
alpha_star = tr.alpha[knp]/d3np;
|
||||
mu_p_star = tr.dipole(kp,kp)/sqrt(d3p * tr.eps[kp]);
|
||||
mu_p_star = tr.dipole(kp,kp)/sqrt(4 * Pi * epsilon_0 * d3p * tr.eps[kp]);
|
||||
xi = 1.0 + 0.25 * alpha_star * mu_p_star * mu_p_star *
|
||||
sqrt(tr.eps[kp]/tr.eps[knp]);
|
||||
f_sigma = pow(xi, -1.0/6.0);
|
||||
|
|
@ -466,7 +466,7 @@ void TransportFactory::setupMM(const std::vector<const XML_Node*> &transport_dat
|
|||
// reduced dipole moment delta* (nondimensional)
|
||||
doublereal d = diam(i,j);
|
||||
tr.delta(i,j) = 0.5 * tr.dipole(i,j)*tr.dipole(i,j)
|
||||
/ (epsilon(i,j) * d * d * d);
|
||||
/ (4 * Pi * epsilon_0 * epsilon(i,j) * d * d * d);
|
||||
|
||||
makePolarCorrections(i, j, tr, f_eps, f_sigma);
|
||||
tr.diam(i,j) *= f_sigma;
|
||||
|
|
@ -760,10 +760,10 @@ void TransportFactory::getTransportData(const ThermoPhase& thermo, const std::ve
|
|||
}
|
||||
|
||||
// Dipole moment of the molecule.
|
||||
// Given in Debye (a debye is 10-18 cm3/2 erg1/2)
|
||||
// Given in Debye (a Debye is 1e-18 statC-m or 3.3356e-30 C-m)
|
||||
double dipole = ctml::getFloat(node, "dipoleMoment");
|
||||
if (dipole >= 0.0) {
|
||||
tr.dipole(j,j) = 1.e-25 * SqrtTen * dipole;
|
||||
tr.dipole(j,j) = 1e-21 / lightSpeed * dipole;
|
||||
tr.polar[j] = (dipole > 0.0);
|
||||
} else {
|
||||
throw TransportDBError(i, "negative dipole moment");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue