Cantera 2.6.0

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
IonGasTransport Class Reference
Models of Phases of Matter » Transport Properties for Species in Phases

Class IonGasTransport implements Stockmayer-(n,6,4) model for transport of ions. More...

`#include <IonGasTransport.h>`

Inheritance diagram for IonGasTransport:
[legend]
Collaboration diagram for IonGasTransport:
[legend]

## Public Member Functions
virtual std::string | transportType () const
| Identifies the Transport object type. More...
virtual void | init (ThermoPhase *thermo, int mode, int log_level)
| Initialize a transport manager. More...
virtual double | viscosity ()
| Viscosity of the mixture (kg/m/s). More...
virtual double | thermalConductivity ()
| Returns the mixture thermal conductivity (W/m/K). More...
virtual void | getMobilities (double *const mobi)
| The mobilities for ions in gas. More...
virtual void | getMixDiffCoeffs (double *const d)
| The mixture transport for ionized gas. More...
virtual double | electricalConductivity ()
Public Member Functions inherited from MixTransport
| MixTransport ()
| Default constructor. More...
virtual std::string | transportType () const
| Identifies the Transport object type. More...
virtual void | getThermalDiffCoeffs (doublereal *const dt)
| Return the thermal diffusion coefficients. More...
virtual doublereal | thermalConductivity ()
| Returns the mixture thermal conductivity (W/m /K) More...
virtual void | getMobilities (doublereal *const mobil)
| Get the Electrical mobilities (m^2/V/s). More...
virtual void | update_T ()
| Update the internal parameters whenever the temperature has changed. More...
virtual void | update_C ()
| Update the internal parameters whenever the concentrations have changed. More...
virtual void | getSpeciesFluxes (size_t ndim, const doublereal *const grad_T, size_t ldx, const doublereal *const grad_X, size_t ldf, doublereal *const fluxes)
| Get the species diffusive mass fluxes wrt to the mass averaged velocity, given the gradients in mole fraction and temperature. More...
virtual void | init (ThermoPhase *thermo, int mode=0, int log_level=0)
| Initialize a transport manager. More...
Public Member Functions inherited from GasTransport
virtual doublereal | viscosity ()
| Viscosity of the mixture (kg /m /s) More...
virtual void | getSpeciesViscosities (doublereal *const visc)
| Get the pure-species viscosities. More...
virtual void | getBinaryDiffCoeffs (const size_t ld, doublereal *const d)
| Returns the matrix of binary diffusion coefficients. More...
virtual void | getMixDiffCoeffs (doublereal *const d)
| Returns the Mixture-averaged diffusion coefficients [m^2/s]. More...
virtual void | getMixDiffCoeffsMole (doublereal *const d)
| Returns the mixture-averaged diffusion coefficients [m^2/s]. More...
virtual void | getMixDiffCoeffsMass (doublereal *const d)
| Returns the mixture-averaged diffusion coefficients [m^2/s]. More...
virtual void | getViscosityPolynomial (size_t i, double *coeffs) const
| Return the polynomial fits to the viscosity of species i. More...
virtual void | getConductivityPolynomial (size_t i, double *coeffs) const
| Return the temperature fits of the heat conductivity of species i. More...
virtual void | getBinDiffusivityPolynomial (size_t i, size_t j, double *coeffs) const
| Return the polynomial fits to the binary diffusivity of species pair (i, j) More...
virtual void | getCollisionIntegralPolynomial (size_t i, size_t j, double *astar_coeffs, double *bstar_coeffs, double *cstar_coeffs) const
| Return the polynomial fits to the collision integral of species pair (i, j) More...
virtual void | setViscosityPolynomial (size_t i, double *coeffs)
| Modify the polynomial fits to the viscosity of species i. More...
virtual void | setConductivityPolynomial (size_t i, double *coeffs)
| Modify the temperature fits of the heat conductivity of species i. More...
virtual void | setBinDiffusivityPolynomial (size_t i, size_t j, double *coeffs)
| Modify the polynomial fits to the binary diffusivity of species pair (i, j) More...
virtual void | setCollisionIntegralPolynomial (size_t i, size_t j, double *astar_coeffs, double *bstar_coeffs, double *cstar_coeffs, bool actualT)
| Modify the polynomial fits to the collision integral of species pair (i, j) More...
virtual void | init (ThermoPhase *thermo, int mode=0, int log_level=0)
| Initialize a transport manager. More...
bool | CKMode () const
| Boolean indicating the form of the transport properties polynomial fits. More...
Public Member Functions inherited from Transport
| Transport (ThermoPhase *thermo=0, size_t ndim=1)
| Constructor. More...
| Transport (const Transport &)=delete
Transport & | operator= (const Transport &)=delete
virtual std::string | transportType () const
| Identifies the Transport object type. More...
ThermoPhase & | thermo ()
bool | ready ()
void | setNDim (const int ndim)
| Set the number of dimensions to be expected in flux expressions. More...
size_t | nDim () const
| Return the number of dimensions in flux expressions. More...
void | checkSpeciesIndex (size_t k) const
| Check that the specified species index is in range. More...
void | checkSpeciesArraySize (size_t kk) const
| Check that an array size is at least nSpecies(). More...
virtual doublereal | getElectricConduct ()
| Compute the mixture electrical conductivity (S m-1) at the current conditions of the phase (Siemens m-1) More...
virtual void | getElectricCurrent (int ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_V, doublereal *current)
| Compute the electric current density in A/m^2. More...
virtual void | getSpeciesFluxes (size_t ndim, const doublereal *const grad_T, size_t ldx, const doublereal *const grad_X, size_t ldf, doublereal *const fluxes)
| Get the species diffusive mass fluxes wrt to the specified solution averaged velocity, given the gradients in mole fraction and temperature. More...
virtual void | getSpeciesFluxesES (size_t ndim, const doublereal *grad_T, size_t ldx, const doublereal *grad_X, size_t ldf, const doublereal *grad_Phi, doublereal *fluxes)
| Get the species diffusive mass fluxes wrt to the mass averaged velocity, given the gradients in mole fraction, temperature and electrostatic potential. More...
virtual void | getSpeciesVdiff (size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, doublereal *Vdiff)
| Get the species diffusive velocities wrt to the mass averaged velocity, given the gradients in mole fraction and temperature. More...
virtual void | getSpeciesVdiffES (size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_Phi, doublereal *Vdiff)
| Get the species diffusive velocities wrt to the mass averaged velocity, given the gradients in mole fraction, temperature, and electrostatic potential. More...
virtual void | getMolarFluxes (const doublereal *const state1, const doublereal *const state2, const doublereal delta, doublereal *const cfluxes)
| Get the molar fluxes [kmol/m^2/s], given the thermodynamic state at two nearby points. More...
virtual void | getMassFluxes (const doublereal *state1, const doublereal *state2, doublereal delta, doublereal *mfluxes)
| Get the mass fluxes [kg/m^2/s], given the thermodynamic state at two nearby points. More...
virtual void | getThermalDiffCoeffs (doublereal *const dt)
| Return a vector of Thermal diffusion coefficients [kg/m/sec]. More...
virtual void | getBinaryDiffCoeffs (const size_t ld, doublereal *const d)
| Returns the matrix of binary diffusion coefficients [m^2/s]. More...
virtual void | getMultiDiffCoeffs (const size_t ld, doublereal *const d)
| Return the Multicomponent diffusion coefficients. Units: [m^2/s]. More...
virtual void | getMixDiffCoeffs (doublereal *const d)
| Returns a vector of mixture averaged diffusion coefficients. More...
virtual void | getMixDiffCoeffsMole (doublereal *const d)
| Returns a vector of mixture averaged diffusion coefficients. More...
virtual void | getMixDiffCoeffsMass (doublereal *const d)
| Returns a vector of mixture averaged diffusion coefficients. More...
virtual void | getViscosityPolynomial (size_t i, double *coeffs) const
| Return the polynomial fits to the viscosity of species i. More...
virtual void | getConductivityPolynomial (size_t i, double *coeffs) const
| Return the temperature fits of the heat conductivity of species i. More...
virtual void | getBinDiffusivityPolynomial (size_t i, size_t j, double *coeffs) const
| Return the polynomial fits to the binary diffusivity of species pair (i, j) More...
virtual void | getCollisionIntegralPolynomial (size_t i, size_t j, double *astar_coeffs, double *bstar_coeffs, double *cstar_coeffs) const
| Return the polynomial fits to the collision integral of species pair (i, j) More...
virtual void | setViscosityPolynomial (size_t i, double *coeffs)
| Modify the polynomial fits to the viscosity of species i. More...
virtual void | setConductivityPolynomial (size_t i, double *coeffs)
| Modify the temperature fits of the heat conductivity of species i. More...
virtual void | setBinDiffusivityPolynomial (size_t i, size_t j, double *coeffs)
| Modify the polynomial fits to the binary diffusivity of species pair (i, j) More...
virtual void | setCollisionIntegralPolynomial (size_t i, size_t j, double *astar_coeffs, double *bstar_coeffs, double *cstar_coeffs, bool flag)
| Modify the polynomial fits to the collision integral of species pair (i, j) More...
virtual void | setParameters (const int type, const int k, const doublereal *const p)
| Set model parameters for derived classes. More...
AnyMap | parameters () const
| Return the parameters for a phase definition which are needed to reconstruct an identical object using the newTransport function. More...
void | setVelocityBasis (VelocityBasis ivb)
| Sets the velocity basis. More...
VelocityBasis | getVelocityBasis () const
| Gets the velocity basis. More...
virtual doublereal | bulkViscosity ()
| The bulk viscosity in Pa-s. More...
virtual doublereal | ionConductivity ()
| The ionic conductivity in 1/ohm/m. More...
virtual void | getSpeciesIonConductivity (doublereal *const ionCond)
| Returns the pure species ionic conductivity. More...
virtual void | mobilityRatio (double *mobRat)
| Returns the pointer to the mobility ratios of the species in the phase. More...
virtual void | getSpeciesMobilityRatio (double **mobRat)
| Returns the pure species limit of the mobility ratios. More...
virtual void | getFluidMobilities (doublereal *const mobil_f)
| Get the fluid mobilities (s kmol/kg). More...
virtual void | setThermo (ThermoPhase &thermo)
| Specifies the ThermoPhase object. More...
virtual void | setRoot (std::shared_ptr< Solution > root)
| Set root Solution holding all phase information. More...

## Protected Member Functions
void | setupN64 ()
| setup parameters for n64 model More...
virtual void | fitDiffCoeffs (MMCollisionInt &integrals)
| Generate polynomial fits to the binary diffusion coefficients. More...
double | omega11_n64 (const double tstar, const double gamma)
Protected Member Functions inherited from MixTransport
void | updateCond_T ()
| Update the temperature dependent parts of the species thermal conductivities. More...
Protected Member Functions inherited from GasTransport
| GasTransport (ThermoPhase *thermo=0)
virtual void | update_T ()
virtual void | update_C ()=0
virtual void | updateViscosity_T ()
| Update the temperature-dependent viscosity terms. More...
virtual void | updateSpeciesViscosities ()
| Update the pure-species viscosities. More...
virtual void | updateDiff_T ()
| Update the binary diffusion coefficients. More...
virtual void | setupCollisionParameters ()
| Setup parameters for a new kinetic-theory-based transport manager for low-density gases. More...
void | setupCollisionIntegral ()
| Setup range for polynomial fits to collision integrals of Monchick & Mason. More...
void | getTransportData ()
| Read the transport database. More...
void | makePolarCorrections (size_t i, size_t j, doublereal &f_eps, doublereal &f_sigma)
| Corrections for polar-nonpolar binary diffusion coefficients. More...
void | fitCollisionIntegrals (MMCollisionInt &integrals)
| Generate polynomial fits to collision integrals. More...
virtual void | fitProperties (MMCollisionInt &integrals)
| Generate polynomial fits to the viscosity and conductivity. More...
void | getBinDiffCorrection (doublereal t, MMCollisionInt &integrals, size_t k, size_t j, doublereal xk, doublereal xj, doublereal &fkj, doublereal &fjk)
| Second-order correction to the binary diffusion coefficients. More...
Protected Member Functions inherited from Transport
void | finalize ()
| Enable the transport object for use. More...

## Protected Attributes
vector_fp | m_speciesCharge
| electrical properties More...
std::vector< size_t > | m_kIon
| index of ions (exclude electron.) More...
std::vector< size_t > | m_kNeutral
| index of neutral species More...
size_t | m_kElectron
| index of electron More...
DenseMatrix | m_gamma
| parameter of omega11 of n64 More...
vector_fp | m_om11_O2
| polynomial of the collision integral for O2/O2- More...
Protected Attributes inherited from MixTransport
vector_fp | m_cond
| vector of species thermal conductivities (W/m /K) More...
doublereal | m_lambda
| Internal storage for the calculated mixture thermal conductivity. More...
bool | m_spcond_ok
| Update boolean for the species thermal conductivities. More...
bool | m_condmix_ok
| Update boolean for the mixture rule for the mixture thermal conductivity. More...
Protected Attributes inherited from GasTransport
vector_fp | m_molefracs
| Vector of species mole fractions. More...
doublereal | m_viscmix
| Internal storage for the viscosity of the mixture (kg /m /s) More...
bool | m_visc_ok
| Update boolean for mixture rule for the mixture viscosity. More...
bool | m_viscwt_ok
| Update boolean for the weighting factors for the mixture viscosity. More...
bool | m_spvisc_ok
| Update boolean for the species viscosities. More...
bool | m_bindiff_ok
| Update boolean for the binary diffusivities at unit pressure. More...
int | m_mode
| Type of the polynomial fits to temperature. More...
DenseMatrix | m_phi
| m_phi is a Viscosity Weighting Function. size = m_nsp * n_nsp More...
vector_fp | m_spwork
| work space length = m_kk More...
vector_fp | m_visc
| vector of species viscosities (kg /m /s). More...
std::vector< vector_fp > | m_visccoeffs
| Polynomial fits to the viscosity of each species. More...
vector_fp | m_mw
| Local copy of the species molecular weights. More...
DenseMatrix | m_wratjk
| Holds square roots of molecular weight ratios. More...
DenseMatrix | m_wratkj1
| Holds square roots of molecular weight ratios. More...
vector_fp | m_sqvisc
| vector of square root of species viscosities sqrt(kg /m /s). More...
vector_fp | m_polytempvec
| Powers of the ln temperature, up to fourth order. More...
doublereal | m_temp
| Current value of the temperature at which the properties in this object are calculated (Kelvin). More...
doublereal | m_kbt
| Current value of Boltzmann constant times the temperature (Joules) More...
doublereal | m_sqrt_kbt
| current value of Boltzmann constant times the temperature. More...
doublereal | m_sqrt_t
| current value of temperature to 1/2 power More...
doublereal | m_logt
| Current value of the log of the temperature. More...
doublereal | m_t14
| Current value of temperature to 1/4 power. More...
doublereal | m_t32
| Current value of temperature to the 3/2 power. More...
std::vector< vector_fp > | m_diffcoeffs
| Polynomial fits to the binary diffusivity of each species. More...
DenseMatrix | m_bdiff
| Matrix of binary diffusion coefficients at the reference pressure and the current temperature Size is nsp x nsp. More...
std::vector< vector_fp > | m_condcoeffs
| temperature fits of the heat conduction More...
std::vector< vector_int > | m_poly
| Indices for the (i,j) interaction in collision integral fits. More...
std::vector< vector_fp > | m_omega22_poly
| Fit for omega22 collision integral. More...
std::vector< vector_int > | m_star_poly_uses_actualT
| Flag to indicate for which (i,j) interaction pairs the actual temperature is used instead of the reduced temperature. More...
std::vector< vector_fp > | m_astar_poly
| Fit for astar collision integral. More...
std::vector< vector_fp > | m_bstar_poly
| Fit for bstar collision integral. More...
std::vector< vector_fp > | m_cstar_poly
| Fit for cstar collision integral. More...
vector_fp | m_zrot
| Rotational relaxation number for each species. More...
vector_fp | m_crot
| Dimensionless rotational heat capacity of each species. More...
std::vector< bool > | m_polar
| Vector of booleans indicating whether a species is a polar molecule. More...
vector_fp | m_alpha
| Polarizability of each species in the phase. More...
vector_fp | m_eps
| Lennard-Jones well-depth of the species in the current phase. More...
vector_fp | m_sigma
| Lennard-Jones diameter of the species in the current phase. More...
DenseMatrix | m_reducedMass
| This is the reduced mass of the interaction between species i and j. More...
DenseMatrix | m_diam
| hard-sphere diameter for (i,j) collision More...
DenseMatrix | m_epsilon
| The effective well depth for (i,j) collisions. More...
DenseMatrix | m_dipole
| The effective dipole moment for (i,j) collisions. More...
DenseMatrix | m_delta
| Reduced dipole moment of the interaction between two species. More...
vector_fp | m_w_ac
| Pitzer acentric factor. More...
vector_fp | m_disp
| Dispersion coefficient. More...
vector_fp | m_quad_polar
| Quadrupole polarizability. More...
int | m_log_level
| Level of verbose printing during initialization. More...
Protected Attributes inherited from Transport
ThermoPhase * | m_thermo
| pointer to the object representing the phase More...
bool | m_ready
| true if finalize has been called More...
size_t | m_nsp
| Number of species. More...
size_t | m_nDim
| Number of dimensions used in flux expressions. More...
int | m_velocityBasis
| Velocity basis from which diffusion velocities are computed. More...
std::weak_ptr< Solution > | m_root
| reference to Solution More...

## Detailed Description

Class IonGasTransport implements Stockmayer-(n,6,4) model for transport of ions.

As implemented here, only binary transport between neutrals and ions is considered for calculating mixture-average diffusion coefficients and mobilities. When polarizability is not provide for an ion, LJ model is used instead of n64 model. Only neutral species are considered for thermal conductivity and viscosity.

References for Stockmayer-(n,6,4) model:

1. Selle, Stefan, and Uwe Riedel. "Transport properties of ionized species." Annals of the New York Academy of Sciences 891.1 (1999): 72-80.
2. Selle, Stefan, and Uwe Riedel. "Transport coefficients of reacting air at high temperatures." 38th Aerospace Sciences Meeting and Exhibit. 1999.
3. Han, Jie, et al. "Numerical modelling of ion transport in flames." Combustion Theory and Modelling 19.6 (2015): 744-772. DOI: 10.1080/13647830.2015.1090018
4. Chiflikian, R. V. "The analog of Blanc’s law for drift velocities of electrons in gas mixtures in weakly ionized plasma." Physics of Plasmas 2.10 (1995): 3902-3909.
5. Viehland, L. A., et al. "Tables of transport collision integrals for (n, 6, 4) ion-neutral potentials." Atomic Data and Nuclear Data Tables 16.6 (1975): 495-514.

Stockmayer-(n,6,4) model is not suitable for collision between O2/O2- due to resonant charge transfer. Therefore, an experimental collision data is used instead.

Data taken from:

Prager, Jens. Modeling and simulation of charged species in lean methane-oxygen flames. Diss. 2005. Page 104.

Definition at line 49 of file IonGasTransport.h.

## Constructor & Destructor Documentation

## ◆ IonGasTransport()

IonGasTransport | ( |  | ) |

Definition at line 16 of file IonGasTransport.cpp.

## Member Function Documentation

## ◆ transportType()

virtual std::string transportType | ( |  | ) | const
| inline virtual

Identifies the Transport object type.

Each derived class should override this method to return a meaningful identifier.

Reimplemented from MixTransport.

Definition at line 54 of file IonGasTransport.h.

## ◆ init()

void init | ( | ThermoPhase * | thermo,
|  | int | mode,
|  | int | log_level
| ) |  |
| virtual

Initialize a transport manager.

This routine sets up a transport manager. It calculates the collision integrals and populates species-dependent data structures.

Parameters

  thermo | Pointer to the ThermoPhase object
  mode | Chemkin compatible mode or not. This alters the specification of the collision integrals. defaults to no.
  log_level | Defaults to zero, no logging

Reimplemented from MixTransport.

Definition at line 21 of file IonGasTransport.cpp.

References Phase::nSpecies(), and Cantera::polyfit().

## ◆ viscosity()

double viscosity | ( |  | ) |
| virtual

Viscosity of the mixture (kg/m/s).

Only Neutral species contribute to Viscosity.

Reimplemented from GasTransport.

Definition at line 100 of file IonGasTransport.cpp.

References Cantera::multiply().

## ◆ thermalConductivity()

double thermalConductivity | ( |  | ) |
| virtual

Returns the mixture thermal conductivity (W/m/K).

Only Neutral species contribute to thermal conductivity.

Reimplemented from MixTransport.

Definition at line 124 of file IonGasTransport.cpp.

## ◆ getMobilities()

void getMobilities | ( | double *const | mobi | ) |
| virtual

The mobilities for ions in gas.

The ion mobilities are calculated by Blanc's law.

Reimplemented from MixTransport.

Definition at line 386 of file IonGasTransport.cpp.

References Cantera::ElectronCharge.

## ◆ getMixDiffCoeffs()

void getMixDiffCoeffs | ( | double *const | d | ) |
| virtual

The mixture transport for ionized gas.

The binary transport between two charged species is neglected.

Reimplemented from GasTransport.

Definition at line 351 of file IonGasTransport.cpp.

References Cantera::ElectronCharge.

## ◆ electricalConductivity()

double electricalConductivity | ( |  | ) |
| virtual

The electrical conductivity (Siemens/m).

\[ \sigma = \sum_k{\left|C_k\right| \mu_k \frac{X_k P}{k_b T}} \]

Reimplemented from Transport.

Definition at line 143 of file IonGasTransport.cpp.

References Cantera::ElectronCharge, and Cantera::npos.

## ◆ setupN64()

void setupN64 | ( |  | ) |
| protected

setup parameters for n64 model

Definition at line 251 of file IonGasTransport.cpp.

References Cantera::ElectronCharge, Cantera::epsilon_0, and Cantera::Pi.

## ◆ fitDiffCoeffs()

void fitDiffCoeffs | ( | MMCollisionInt & | integrals | ) |
| protected virtual

Generate polynomial fits to the binary diffusion coefficients.

Use Stockmayer-(n,6,4) model for collision between charged and neutral species.

Reimplemented from GasTransport.

Definition at line 160 of file IonGasTransport.cpp.

References Cantera::Boltzmann, Cantera::Pi, Cantera::poly4(), Cantera::poly5(), Cantera::polyfit(), Cantera::vec2str(), Cantera::writelog(), and Cantera::writelogf().

## ◆ omega11_n64()

double omega11_n64 | ( | const double | tstar,
|  | const double | gamma
| ) |  |
| protected

Collision integral of omega11 of n64 collision model. The collision integral was fitted by Han et al. using the table by Viehlan et al. Note: Han release the range to 1000, but Selle suggested that a high temperature model is needed for T* > 10.

Definition at line 319 of file IonGasTransport.cpp.

## Member Data Documentation

## ◆ m_speciesCharge

vector_fp m_speciesCharge
| protected

electrical properties

Definition at line 101 of file IonGasTransport.h.

## ◆ m_kIon

std::vector<size_t> m_kIon
| protected

index of ions (exclude electron.)

Definition at line 104 of file IonGasTransport.h.

## ◆ m_kNeutral

std::vector<size_t> m_kNeutral
| protected

index of neutral species

Definition at line 107 of file IonGasTransport.h.

## ◆ m_kElectron

size_t m_kElectron
| protected

index of electron

Definition at line 110 of file IonGasTransport.h.

## ◆ m_gamma

DenseMatrix m_gamma
| protected

parameter of omega11 of n64

Definition at line 113 of file IonGasTransport.h.

## ◆ m_om11_O2

vector_fp m_om11_O2
| protected

polynomial of the collision integral for O2/O2-

Definition at line 116 of file IonGasTransport.h.

The documentation for this class was generated from the following files:

- IonGasTransport.h
- IonGasTransport.cpp