From acd75e20fe9284b449b1f51a8337f23a9c121c1d Mon Sep 17 00:00:00 2001 From: bangshiuh Date: Wed, 24 Oct 2018 14:07:13 -0400 Subject: [PATCH] [Transport] Add IonGasTransport::electricalConductivity --- include/cantera/transport/IonGasTransport.h | 7 +++++++ src/transport/IonGasTransport.cpp | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/cantera/transport/IonGasTransport.h b/include/cantera/transport/IonGasTransport.h index cff33e2b9a..93e21c407e 100644 --- a/include/cantera/transport/IonGasTransport.h +++ b/include/cantera/transport/IonGasTransport.h @@ -73,6 +73,13 @@ class IonGasTransport : public MixTransport //! 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 0acd9b3973..96d749c57c 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);