diff --git a/include/cantera/transport/IonGasTransport.h b/include/cantera/transport/IonGasTransport.h index cff33e2b9..93e21c407 100644 --- a/include/cantera/transport/IonGasTransport.h +++ b/include/cantera/transport/IonGasTransport.h @@ -73,6 +73,13 @@ public: //! The binary transport between two charged species is neglected. virtual void getMixDiffCoeffs(double* const d); + /*! The electrical conductivity (Siemens/m). + * \f[ + * \sigma = \sum_k{\left|C_k\right| \mu_k \frac{X_k P}{k_b T}} + * \f] + */ + virtual double electricalConductivity(); + protected: //! setup parameters for n64 model void setupN64(); diff --git a/src/transport/IonGasTransport.cpp b/src/transport/IonGasTransport.cpp index 0acd9b397..96d749c57 100644 --- a/src/transport/IonGasTransport.cpp +++ b/src/transport/IonGasTransport.cpp @@ -127,6 +127,23 @@ double IonGasTransport::thermalConductivity() return m_lambda; } +double IonGasTransport::electricalConductivity() +{ + vector_fp mobi(m_nsp); + getMobilities(&mobi[0]); + double p = m_thermo->pressure(); + double sum = 0.0; + for (size_t k : m_kIon) { + double ND_k = m_molefracs[k] * p / m_kbt; + sum += ND_k * abs(m_speciesCharge[k]) * ElectronCharge * mobi[k]; + } + if (m_kElectron != npos) { + sum += m_molefracs[m_kElectron] * p / m_kbt * + ElectronCharge * mobi[m_kElectron]; + } + return sum; +} + void IonGasTransport::fitDiffCoeffs(MMCollisionInt& integrals) { GasTransport::fitDiffCoeffs(integrals);