Cantera  2.4.0
IonGasTransport.h
Go to the documentation of this file.
1 /**
2  * @file IonGasTransport.h
3  */
4 
5 // This file is part of Cantera. See License.txt in the top-level directory or
6 // at http://www.cantera.org/license.txt for license and copyright information.
7 
8 #ifndef CT_ION_GAS_TRANSPORT_H
9 #define CT_ION_GAS_TRANSPORT_H
10 
11 #include "MixTransport.h"
12 
13 namespace Cantera
14 {
15 //! Class IonGasTransport implements Stockmayer-(n,6,4) model for transport of ions.
16 /*!
17  * As implemented here, only binary transport between netrals and ions is considered
18  * for calculating mixture-average diffusion coefficients and mobilities. When
19  * polarizability is not provide for an ion, LJ model is used instead of n64 model.
20  * Only neutral species are considered for thermal conductivity and viscousity.
21  *
22  * References for Stockmayer-(n,6,4) model:
23  *
24  * 1. Selle, Stefan, and Uwe Riedel. "Transport properties of ionized species."
25  * Annals of the New York Academy of Sciences 891.1 (1999): 72-80.
26  * 2. Selle, Stefan, and Uwe Riedel. "Transport coefficients of reacting air at
27 * high temperatures." 38th Aerospace Sciences Meeting and Exhibit. 1999.
28  * 3. Han, Jie, et al. "Numerical modelling of ion transport in flames."
29  * Combustion Theory and Modelling 19.6 (2015): 744-772.
30  * DOI: 10.1080/13647830.2015.1090018
31  * 4. Chiflikian, R. V. "The analog of Blanc’s law for drift velocities
32  * of electrons in gas mixtures in weakly ionized plasma."
33  * Physics of Plasmas 2.10 (1995): 3902-3909.
34  * 5. Viehland, L. A., et al. "Tables of transport collision integrals for
35  * (n, 6, 4) ion-neutral potentials." Atomic Data and Nuclear Data Tables
36  * 16.6 (1975): 495-514.
37  * @ingroup tranprops
38  */
40 {
41 public:
43 
44  virtual std::string transportType() const {
45  return "Ion";
46  }
47 
48  virtual void init(thermo_t* thermo, int mode, int log_level);
49 
50  //! Viscosity of the mixture (kg/m/s).
51  //! Only Neutral species contribute to Viscosity.
52  virtual double viscosity();
53 
54  //! Returns the mixture thermal conductivity (W/m/K).
55  //! Only Neutral species contribute to therrmal conductivity.
56  virtual double thermalConductivity();
57 
58  //! The mobilities for ions in gas.
59  //! The ion mobilities are calculated by Blanc's law.
60  virtual void getMobilities(double* const mobi);
61 
62  //! The mixture transport for ionized gas.
63  //! The binary transport between two charged species is neglected.
64  virtual void getMixDiffCoeffs(double* const d);
65 
66 protected:
67  //! setup parameters for n64 model
68  void setupN64();
69 
70  //! Generate polynomial fits to the binary diffusion coefficients.
71  //! Use Stockmayer-(n,6,4) model for collision between charged and neutral species.
72  virtual void fitDiffCoeffs(MMCollisionInt& integrals);
73 
74  /*!
75  * Collision integral of omega11 of n64 collision model.
76  * The collision integral was fitted by Han et al. using the table
77  * by Viehlan et al.
78  * Note: Han release the range to 1000, but Selle suggested that
79  * a high temperature model is needed for T* > 10.
80  */
81  double omega11_n64(const double tstar, const double gamma);
82 
83  //! electrical properties
85 
86  //! index of ions (exclude electron.)
87  std::vector<size_t> m_kIon;
88 
89  //! index of neutral species
90  std::vector<size_t> m_kNeutral;
91 
92  //! index of electron
93  size_t m_kElectron;
94 
95  //! parameter of omega11 of n64
97 };
98 
99 }
100 
101 #endif
virtual void getMixDiffCoeffs(double *const d)
The mixture transport for ionized gas.
std::vector< size_t > m_kIon
index of ions (exclude electron.)
DenseMatrix m_gamma
parameter of omega11 of n64
size_t m_kElectron
index of electron
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:93
std::vector< int > vector_int
Vector of ints.
Definition: ct_defs.h:159
Class IonGasTransport implements Stockmayer-(n,6,4) model for transport of ions.
vector_int m_speciesCharge
electrical properties
virtual std::string transportType() const
Identifies the Transport object type.
virtual double thermalConductivity()
Returns the mixture thermal conductivity (W/m/K).
virtual double viscosity()
Viscosity of the mixture (kg/m/s).
std::vector< size_t > m_kNeutral
index of neutral species
double omega11_n64(const double tstar, const double gamma)
thermo_t & thermo()
virtual void init(thermo_t *thermo, int mode, int log_level)
Initialize a transport manager.
virtual void fitDiffCoeffs(MMCollisionInt &integrals)
Generate polynomial fits to the binary diffusion coefficients.
virtual void getMobilities(double *const mobi)
The mobilities for ions in gas.
Calculation of Collision integrals.
void setupN64()
setup parameters for n64 model
Namespace for the Cantera kernel.
Definition: AnyMap.cpp:8
Class MixTransport implements mixture-averaged transport properties for ideal gas mixtures...
Definition: MixTransport.h:56
Headers for the MixTransport object, which models transport properties in ideal gas solutions using a...
A class for full (non-sparse) matrices with Fortran-compatible data storage, which adds matrix operat...
Definition: DenseMatrix.h:50