Cantera  2.2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Types | Protected Attributes | List of all members
LTI_StefanMaxwell_PPN Class Reference

Stefan Maxwell Diffusion Coefficients can be solved for given ion conductivity, mobility ratios, and self diffusion coeffs. More...

#include <LiquidTranInteraction.h>

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

Public Member Functions

 LTI_StefanMaxwell_PPN (TransportPropertyType tp_ind=TP_UNKNOWN)
 
void setParameters (LiquidTransportParams &trParam)
 Copy constructor. More...
 
doublereal getMixTransProp (doublereal *valueSpecies, doublereal *weightSpecies=0)
 Return the mixture transport property value. More...
 
doublereal getMixTransProp (std::vector< LTPspecies * > LTPptrs)
 
void getMatrixTransProp (DenseMatrix &mat, doublereal *speciesValues=0)
 Return the matrix of binary interaction parameters. More...
 
- Public Member Functions inherited from LiquidTranInteraction
 LiquidTranInteraction (TransportPropertyType tp_ind=TP_UNKNOWN)
 Constructor. More...
 
 LiquidTranInteraction (const LiquidTranInteraction &right)
 
LiquidTranInteractionoperator= (const LiquidTranInteraction &right)
 
virtual void init (const XML_Node &compModelNode=XML_Node(), thermo_t *thermo=0)
 initialize LiquidTranInteraction objects with thermo and XML node More...
 

Protected Types

typedef std::vector< LTPspecies * > LTPvector
 

Protected Attributes

doublereal m_ionCondMix
 
LiquidTranInteractionm_ionCondMixModel
 
std::vector< LTPspecies * > m_ionCondSpecies
 
DenseMatrix m_mobRatMix
 
std::vector
< LiquidTranInteraction * > 
m_mobRatMixModel
 
std::vector< LTPvector > m_mobRatSpecies
 
std::vector
< LiquidTranInteraction * > 
m_selfDiffMixModel
 
vector_fp m_selfDiffMix
 
std::vector< LTPvector > m_selfDiffSpecies
 
- Protected Attributes inherited from LiquidTranInteraction
LiquidTranMixingModel m_model
 Model for species interaction effects Takes enum LiquidTranMixingModel. More...
 
TransportPropertyType m_property
 enum indicating what property this is (i.e viscosity) More...
 
thermo_tm_thermo
 pointer to thermo object to get current temperature More...
 
std::vector< DenseMatrix * > m_Aij
 Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (no temperature dependence, dimensionless) More...
 
std::vector< DenseMatrix * > m_Bij
 Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (linear temperature dependence, units 1/K) More...
 
DenseMatrix m_Eij
 Matrix of interactions (in energy units, 1/RT temperature dependence) More...
 
std::vector< DenseMatrix * > m_Hij
 Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (in energy units, 1/RT temperature dependence) More...
 
std::vector< DenseMatrix * > m_Sij
 Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (in entropy units, divided by R) More...
 
DenseMatrix m_Dij
 Matrix of interactions. More...
 

Detailed Description

Stefan Maxwell Diffusion Coefficients can be solved for given ion conductivity, mobility ratios, and self diffusion coeffs.

This class is only valid for a common anion mixture of two salts with cations of equal charge. Hence the name _PPN.

This class requres you specify

1 - ion conductivity

2 - mobility ratio of the two cations (set all other ratios to zero)

3 - Self diffusion coefficients of the cations (set others to zero) is used to calculate the "mutual diffusion coefficient". The approximation needed to do so requires the cations have equal charge.

We than calculate the Stefan Maxwell Diffusion Coefficients by

\[ \frac{1}{D_{12}} = (1-\epsilon X_A)(1+\epsilon X_B) \frac{\nu_- + \nu_+}{\nu_-\nu_+^2D} + \frac{z_-z_+ F^2}{\kappa V R T} \]

\[ \frac{1}{D_{12}} = -\epsilon X_B(1-\epsilon X_A) \frac{\nu_- + \nu_+}{\nu_-^2\nu_+D} - \frac{z_-z_+ F^2}{\kappa V R T} \]

\[ \frac{1}{D_{23}} = \epsilon X_A(1+\epsilon X_B) \frac{\nu_- + \nu_+}{\nu_-^2\nu_+D} - \frac{z_-z_+ F^2}{\kappa V R T} \]

where F is Faraday's constant, RT is the gas constant times the tempurature, and V is the molar volume (basis is moles of ions) that is calculated by the ThermoPhase member. X_A and X_B are the mole fractions of the salts composed of cation(1) and cation(2), respectively, that share a common anion(3). \(\nu_{+,-}\) are the stoichiometric coefficients in the dissociation reaction of the salts to the ions with charges of \(z_{+,-}\). Assuming that the cations have equal charge, the "mutual diffusion coefficient" is calculated using the cation self diffusion coefficients.

\[ \frac{1}{\nu_-\nu_+D} = \left(1+\frac{\partial \gamma_B}{\partial N_B} \right)\frac{X_A}{D_2^*}+\left(1+\frac{\partial \gamma_A}{\partial N_A} \right)\frac{X_B}{D_1^*} \]

where the self diffusion coefficients, \(D_i^*\), are temperature and composition parameterized inputs and the derivative of the activity coefficient, \(\frac{\partial \gamma_B}{\partial N_B}\), is calculated by the ThermoPhase member using the excess enthalpy and entropy upon mixing.

Finally, the deviation of the transferrence numbers from ideality, \(\epsilon\), is calculated from the mobility ratio of the cations.

\[ \epsilon = \frac{1-b_2/b_1}{X_A+X_Bb_2/b_1} \]

Where \(b_i\) are the mobilities of the two cations. Everywhere, cation 1 corresponds with salt A and cation 2 with salt B.

Sample input for this method is

*    <transport model="Liquid">
*       <speciesDiffusivity>
*          <compositionDependence model="stefanMaxwell_PPN">
*          </compositionDependence>
*       </speciesDiffusivity>
*    </transport>
*  

Definition at line 486 of file LiquidTranInteraction.h.

Member Function Documentation

void setParameters ( LiquidTransportParams trParam)
virtual
doublereal getMixTransProp ( doublereal *  valueSpecies,
doublereal *  weightSpecies = 0 
)
virtual

Return the mixture transport property value.

Takes the separate species transport properties as input (this method does not know what transport property it is at this point.

Reimplemented from LiquidTranInteraction.

Definition at line 551 of file LiquidTranInteraction.cpp.

References Phase::getMoleFractions(), LiquidTranInteraction::m_thermo, and Phase::nSpecies().

void getMatrixTransProp ( DenseMatrix mat,
doublereal *  speciesValues = 0 
)
virtual

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