Cantera  2.3.0
LiquidTranInteraction.h
Go to the documentation of this file.
1 /**
2  * @file LiquidTranInteraction.h
3  * Header file defining the class LiquidTranInteraction and classes which
4  * derive from LiquidTranInteraction.
5  */
6 
7 // This file is part of Cantera. See License.txt in the top-level directory or
8 // at http://www.cantera.org/license.txt for license and copyright information.
9 
10 #ifndef CT_LIQUIDTRANINTERACTION_H
11 #define CT_LIQUIDTRANINTERACTION_H
12 
13 #include "TransportParams.h"
14 #include "LiquidTransportData.h"
15 #include "cantera/base/xml.h"
16 
17 namespace Cantera
18 {
19 //! Composition dependence type for liquid mixture transport properties
20 /*!
21  * Types of temperature dependencies:
22  * - 0 - Mixture calculations with this property are not allowed
23  * - 1 - Use solvent (species 0) properties
24  * - 2 - Properties weighted linearly by mole fractions
25  * - 3 - Properties weighted linearly by mass fractions
26  * - 4 - Properties weighted logarithmically by mole fractions (interaction energy weighting)
27  * - 5 - Interactions given pairwise between each possible species (i.e. D_ij)
28  *
29  * \verbatim
30  * <transport model="Liquid">
31  * <viscosity>
32  * <compositionDependence model="logMoleFractions">
33  * <interaction>
34  * <speciesA> LiCl(L) </speciesA>
35  * <speciesB> KCl(L) </speciesB>
36  * <Eij units="J/kmol"> -1.0 </Eij>
37  * <Sij units="J/kmol/K"> 1.0E-1 </Sij>
38  * -or- <Sij>
39  * <floatArray units="J/kmol/K"> 1.0E-1, 0.001 0.01 </floatArray>
40  * </Sij>
41  * -same form for Hij,Aij,Bij-
42  * </interaction>
43  * </compositionDependence>
44  * </viscosity>
45  * <speciesDiffusivity>
46  * <compositionDependence model="pairwiseInteraction">
47  * <interaction>
48  * <speciesA> Li+ </speciesA>
49  * <speciesB> K+ </speciesB>
50  * <Dij units="m2/s"> 1.5 </Dij>
51  * </interaction>
52  * <interaction>
53  * <speciesA> K+ </speciesA>
54  * <speciesB> Cl- </speciesB>
55  * <Dij units="m2/s"> 1.0 </Dij>
56  * </interaction>
57  * <interaction>
58  * <speciesA> Li+ </speciesA>
59  * <speciesB> Cl- </speciesB>
60  * <Dij units="m2/s"> 1.2 </Dij>
61  * </interaction>
62  * </compositionDependence>
63  * </speciesDiffusivity>
64  * <thermalConductivity>
65  * <compositionDependence model="massFractions"/>
66  * </thermalConductivity>
67  * <hydrodynamicRadius>
68  * <compositionDependence model="none"/>
69  * </hydrodynamicRadius>
70  * </transport>
71  * \endverbatim
72  */
74  LTI_MODEL_NOTSET=-1,
75  LTI_MODEL_SOLVENT,
76  LTI_MODEL_MOLEFRACS,
77  LTI_MODEL_MASSFRACS,
78  LTI_MODEL_LOG_MOLEFRACS,
79  LTI_MODEL_PAIRWISE_INTERACTION,
80  LTI_MODEL_STEFANMAXWELL_PPN,
81  LTI_MODEL_STOKES_EINSTEIN,
82  LTI_MODEL_MOLEFRACS_EXPT,
83  LTI_MODEL_NONE,
84  LTI_MODEL_MULTIPLE
85 };
86 
87 //! Base class to handle transport property evaluation in a mixture.
88 /*!
89  * In a mixture, the mixture transport properties will generally depend on the
90  * contributions of each of the standard state species transport properties.
91  * Many composition dependencies are possible. This class,
92  * LiquidTranInteraction, is designed to be a base class for the implementation
93  * of various models for the mixing of standard state species transport
94  * properties.
95  *
96  * There are two very broad types of transport properties to consider. First,
97  * there are properties for which a mixture value can be obtained through some
98  * mixing rule. These are obtained using the method getMixTransProp().
99  * Viscosity is typical of this. Second, there are properties for which a matrix
100  * of properties may exist. This matrix of properties is obtained from the
101  * method getMatrixTransProp(). Diffusion coefficients are of this type.
102  * Subclasses should implement the appropriate one or both of these methods.
103  */
105 {
106 public:
107  //! Constructor
108  /**
109  * @param tp_ind Index indicating the transport property type (e.g., viscosity)
110  */
111  LiquidTranInteraction(TransportPropertyType tp_ind = TP_UNKNOWN);
112 
113  virtual ~LiquidTranInteraction();
114 
115  //! initialize LiquidTranInteraction objects with thermo and XML node
116  /**
117  * @param compModelNode `<compositionDependence>` XML node
118  * @param thermo Pointer to thermo object
119  */
120  virtual void init(const XML_Node& compModelNode = XML_Node(),
121  thermo_t* thermo = 0);
122 
123  virtual void setParameters(LiquidTransportParams& trParam) {}
124 
125  //! Return the mixture transport property value.
126  //! (Must be implemented in subclasses.)
127  virtual doublereal getMixTransProp(doublereal* speciesValues, doublereal* weightSpecies = 0) {
128  throw NotImplementedError("LiquidTranInteraction::getMixTransProp");
129  }
130 
131  virtual doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs) {
132  throw NotImplementedError("LiquidTranInteraction::getMixTransProp");
133  }
134 
135  virtual void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0) {
136  throw NotImplementedError("LiquidTranInteraction::getMixTransProp");
137  }
138 
139 protected:
140  //! Model for species interaction effects. Takes enum LiquidTranMixingModel
142 
143  //! enum indicating what property this is (i.e viscosity)
145 
146  //! pointer to thermo object to get current temperature
148 
149  //! Matrix of interaction coefficients for polynomial in molefraction*weight
150  //! of speciesA (no temperature dependence, dimensionless)
151  std::vector<DenseMatrix*> m_Aij;
152 
153  //! Matrix of interaction coefficients for polynomial in molefraction*weight
154  //! of speciesA (linear temperature dependence, units 1/K)
155  std::vector<DenseMatrix*> m_Bij;
156 
157  //! Matrix of interactions (in energy units, 1/RT temperature dependence)
159 
160  //! Matrix of interaction coefficients for polynomial in molefraction*weight
161  //! of speciesA (in energy units, 1/RT temperature dependence)
162  std::vector<DenseMatrix*> m_Hij;
163 
164  //! Matrix of interaction coefficients for polynomial in molefraction*weight
165  //! of speciesA (in entropy units, divided by R)
166  std::vector<DenseMatrix*> m_Sij;
167 
168  //! Matrix of interactions
170 };
171 
172 class LTI_Solvent : public LiquidTranInteraction
173 {
174 public:
175  LTI_Solvent(TransportPropertyType tp_ind = TP_UNKNOWN);
176 
177  //! Return the mixture transport property value.
178  /**
179  * Takes the separate species transport properties as input (this method
180  * does not know what transport property it is at this point).
181  */
182  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
183  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
184 
185  //! Return the matrix of binary interaction parameters.
186  /**
187  * Takes the proper mixing rule for the binary interaction parameters
188  * and calculates them: Not implemented for this mixing rule.
189  */
190  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0);
191 };
192 
193 //! Simple mole fraction weighting of transport properties
194 /**
195  * This model weights the transport property by the mole fractions. The
196  * overall formula for the mixture viscosity is
197  *
198  * \f[
199  * \eta_{mix} = \sum_i X_i \eta_i + \sum_i \sum_j X_i X_j A_{i,j}
200  * \f]
201  */
203 {
204 public:
205  LTI_MoleFracs(TransportPropertyType tp_ind = TP_UNKNOWN) :
206  LiquidTranInteraction(tp_ind) {
207  m_model = LTI_MODEL_MOLEFRACS;
208  }
209 
210  //! Return the mixture transport property value.
211  /**
212  * Takes the separate species transport properties as input (this method
213  * does not know what transport property it is at this point.
214  */
215  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
216  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
217 
218  //! Return the matrix of binary interaction parameters.
219  /**
220  * Takes the proper mixing rule for the binary interaction parameters
221  * and calculates them: Not Implemented for this Mixing rule;
222  */
223  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0) {
224  mat = (*m_Aij[0]);
225  }
226 };
227 
228 //! Simple mass fraction weighting of transport properties
229 /*!
230  * This model weights the transport property by the mass fractions. The
231  * overall formula for the mixture viscosity is
232  *
233  * \f[
234  * \eta_{mix} = \sum_i Y_i \eta_i
235  * + \sum_i \sum_j Y_i Y_j A_{i,j}
236  * \f].
237  */
239 {
240 public:
241  LTI_MassFracs(TransportPropertyType tp_ind = TP_UNKNOWN) :
242  LiquidTranInteraction(tp_ind) {
243  m_model = LTI_MODEL_MASSFRACS;
244  }
245 
246  //! Return the mixture transport property value.
247  /**
248  * Takes the separate species transport properties as input (this method
249  * does not know what transport property it is at this point.
250  */
251  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
252  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
253 
254  //! Return the matrix of binary interaction parameters.
255  /**
256  * Takes the proper mixing rule for the binary interaction parameters
257  * and calculates them: Not implemented for this mixing rule.
258  */
259  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0) {
260  mat = (*m_Aij[0]);
261  }
262 };
263 
264 //! Mixing rule using logarithms of the mole fractions
265 /**
266  * This model is based on the idea that liquid molecules are generally
267  * interacting with some energy and entropy of interaction. For transport
268  * properties that depend on these energies of interaction, the mixture
269  * transport property can be written in terms of its logarithm
270  *
271  * \f[ \ln \eta_{mix} = \sum_i X_i \ln \eta_i
272  * + \sum_i \sum_j X_i X_j ( S_{i,j} + E_{i,j} / T )
273  * \f].
274  *
275  * These additional interaction terms multiply the mixture property by
276  * \f[ \exp( \sum_{i} \sum_{j} X_i X_j ( S_{i,j} + E_{i,j} / T ) ) \f]
277  * so that the self-interaction terms \f$ S_{i,j} \f$ and
278  * \f$ E_{i,j} \f$ should be zero.
279  *
280  * Note that the energies and entropies of interaction should be
281  * a function of the composition themselves, but this is not yet
282  * implemented. (We might follow the input of Margules model
283  * thermodynamic data for the purpose of implementing this.)
284  *
285  * Sample input for this method is
286  * \verbatim
287  * <transport model="Liquid">
288  * <viscosity>
289  * <compositionDependence model="logMoleFractions">
290  * <interaction speciesA="Li+" speciesB="K+">
291  * <!--
292  * interactions are from speciesA = LiCl(L)
293  * and speciesB = KCl(L).
294  * -->
295  * <Eij units="J/kmol"> -1.0e3 </Eij>
296  * <Sij units="J/kmol/K"> 80.0e-5 </Sij>
297  * </interaction>
298  * </compositionDependence>
299  * </viscosity>
300  * </transport>
301  * \endverbatim
302  */
304 {
305 public:
306  LTI_Log_MoleFracs(TransportPropertyType tp_ind = TP_UNKNOWN) :
307  LiquidTranInteraction(tp_ind) {
308  m_model = LTI_MODEL_LOG_MOLEFRACS;
309  }
310 
311  //! Return the mixture transport property value.
312  /**
313  * Takes the separate species transport properties as input (this method
314  * does not know what transport property it is at this point.
315  */
316  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
317  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
318 
319  //! Return the matrix of binary interaction parameters.
320  /**
321  * Takes the proper mixing rule for the binary interaction parameters
322  * and calculates them: Not implemented for this mixing rule.
323  */
324  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0) {
325  mat = m_Eij;
326  }
327 };
328 
329 //! Transport properties that act like pairwise interactions
330 //! as in binary diffusion coefficients.
331 /**
332  * This class holds parameters for transport properties expressed as a matrix
333  * of pairwise interaction parameters. Input can be provided for constant or
334  * Arrhenius forms of the separate parameters.
335  *
336  * Sample input for this method is
337  * \verbatim
338  * <transport model="Liquid">
339  * <speciesDiffusivity>
340  * <compositionDependence model="pairwiseInteraction">
341  * <interaction speciesA="LiCl(L)" speciesB="KCl(L)">
342  * <Dij units="m/s"> 1.0e-8 </Dij>
343  * <Eij units="J/kmol"> 24.0e6 </Eij>
344  * </interaction>
345  * </compositionDependence>
346  * </speciesDiffusivity>
347  * </transport>
348  * \endverbatim
349  */
351 {
352 public:
353  LTI_Pairwise_Interaction(TransportPropertyType tp_ind = TP_UNKNOWN) :
354  LiquidTranInteraction(tp_ind) {
355  m_model = LTI_MODEL_PAIRWISE_INTERACTION;
356  }
357 
358  void setParameters(LiquidTransportParams& trParam);
359 
360  //! Return the mixture transport property value.
361  /**
362  * Takes the separate species transport properties as input (this method
363  * does not know what transport property it is at this point.
364  */
365  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
366  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
367 
368  //! Return the matrix of binary interaction parameters.
369  /**
370  * Takes the proper mixing rule for the binary interaction parameters
371  * and calculates them
372  */
373  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0);
374 protected:
375 
376  std::vector<LTPspecies*> m_diagonals;
377 };
378 
379 
380 //! Stefan Maxwell Diffusion Coefficients can be solved for given
381 //! ion conductivity, mobility ratios, and self diffusion coeffs.
382 //! This class is only valid for a common anion mixture of two
383 //! salts with cations of equal charge. Hence the name _PPN.
384 /**
385  * This class requres you specify
386  *
387  * 1 - ion conductivity
388  *
389  * 2 - mobility ratio of the two cations (set all other ratios to zero)
390  *
391  * 3 - Self diffusion coefficients of the cations (set others to zero)
392  * is used to calculate the "mutual diffusion coefficient". The
393  * approximation needed to do so requires the cations have equal charge.
394  *
395  * We than calculate the Stefan Maxwell Diffusion Coefficients by
396  * \f[
397  * \frac{1}{D_{12}} = (1-\epsilon X_A)(1+\epsilon X_B)
398  * \frac{\nu_- + \nu_+}{\nu_-\nu_+^2D}
399  * + \frac{z_-z_+ F^2}{\kappa V R T}
400  * \f]
401  * \f[
402  * \frac{1}{D_{12}} = -\epsilon X_B(1-\epsilon X_A)
403  * \frac{\nu_- + \nu_+}{\nu_-^2\nu_+D}
404  * - \frac{z_-z_+ F^2}{\kappa V R T}
405  * \f]
406  * \f[
407  * \frac{1}{D_{23}} = \epsilon X_A(1+\epsilon X_B)
408  * \frac{\nu_- + \nu_+}{\nu_-^2\nu_+D}
409  * - \frac{z_-z_+ F^2}{\kappa V R T}
410  * \f]
411  * where F is Faraday's constant, RT is the gas constant times the
412  * tempurature, and V is the molar volume (basis is moles of ions) that is
413  * calculated by the ThermoPhase member. X_A and X_B are the mole fractions
414  * of the salts composed of cation(1) and cation(2), respectively, that share
415  * a common anion(3). \f$\nu_{+,-}\f$ are the stoichiometric coefficients in
416  * the dissociation reaction of the salts to the ions with charges of
417  * \f$z_{+,-}\f$. Assuming that the cations have equal charge, the "mutual
418  * diffusion coefficient" is calculated using the cation self diffusion
419  * coefficients.
420  * \f[
421  * \frac{1}{\nu_-\nu_+D} = \left(1+\frac{\partial \gamma_B}{\partial N_B}
422  * \right)\frac{X_A}{D_2^*}+\left(1+\frac{\partial \gamma_A}{\partial N_A}
423  * \right)\frac{X_B}{D_1^*}
424  * \f]
425  * where the self diffusion coefficients, \f$D_i^*\f$, are temperature and
426  * composition parameterized inputs and the derivative of the activity
427  * coefficient, \f$\frac{\partial \gamma_B}{\partial N_B}\f$, is calculated
428  * by the ThermoPhase member using the excess enthalpy and entropy upon mixing.
429  *
430  * Finally, the deviation of the transferrence numbers from ideality,
431  * \f$\epsilon\f$, is calculated from the mobility ratio of the cations.
432  * \f[
433  * \epsilon = \frac{1-b_2/b_1}{X_A+X_Bb_2/b_1}
434  * \f]
435  * Where \f$b_i\f$ are the mobilities of the two cations. Everywhere,
436  * cation 1 corresponds with salt A and cation 2 with salt B.
437  *
438  * Sample input for this method is
439  * \verbatim
440  * <transport model="Liquid">
441  * <speciesDiffusivity>
442  * <compositionDependence model="stefanMaxwell_PPN">
443  * </compositionDependence>
444  * </speciesDiffusivity>
445  * </transport>
446  * \endverbatim
447  */
449 {
450 public:
451  LTI_StefanMaxwell_PPN(TransportPropertyType tp_ind = TP_UNKNOWN) :
452  LiquidTranInteraction(tp_ind) {
453  m_model = LTI_MODEL_STEFANMAXWELL_PPN;
454  }
455 
456  void setParameters(LiquidTransportParams& trParam);
457 
458  //! Return the mixture transport property value.
459  /**
460  * Takes the separate species transport properties as input (this method
461  * does not know what transport property it is at this point.
462  */
463  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
464  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
465 
466  //! Return the matrix of binary interaction parameters.
467  /**
468  * Takes the proper mixing rule for the binary interaction parameters
469  * and calculates them
470  */
471  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0);
472 
473 protected:
474  doublereal m_ionCondMix;
475  LiquidTranInteraction* m_ionCondMixModel;
476  std::vector<LTPspecies*> m_ionCondSpecies;
477  typedef std::vector<LTPspecies*> LTPvector;
478  DenseMatrix m_mobRatMix;
479  std::vector<LiquidTranInteraction*> m_mobRatMixModel;
480  std::vector<LTPvector> m_mobRatSpecies;
481 
482  std::vector<LiquidTranInteraction*> m_selfDiffMixModel;
483  vector_fp m_selfDiffMix;
484  std::vector<LTPvector> m_selfDiffSpecies;
485 };
486 
487 
488 class LTI_StokesEinstein : public LiquidTranInteraction
489 {
490 public:
491  LTI_StokesEinstein(TransportPropertyType tp_ind = TP_UNKNOWN) :
492  LiquidTranInteraction(tp_ind) {
493  m_model = LTI_MODEL_STOKES_EINSTEIN;
494  }
495 
496  void setParameters(LiquidTransportParams& trParam);
497 
498  //! Return the mixture transport property value.
499  /**
500  * Takes the separate species transport properties
501  * as input (this method does not know what
502  * transport property it is at this point.
503  */
504  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
505  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
506 
507  //! Return the matrix of binary interaction parameters.
508  /**
509  * Takes the proper mixing rule for the binary interaction parameters
510  * and calculates them
511  */
512  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0);
513 
514 protected:
515  std::vector<LTPspecies*> m_viscosity;
516  std::vector<LTPspecies*> m_hydroRadius;
517 };
518 
519 //! Simple mole fraction weighting of transport properties
520 /**
521  * This model weights the transport property by the mole fractions. The
522  * overall formula for the mixture viscosity is
523  *
524  * \f[ \eta_{mix} = \sum_i X_i \eta_i
525  * + \sum_i \sum_j X_i X_j A_{i,j} \f].
526  */
528 {
529 public:
530  LTI_MoleFracs_ExpT(TransportPropertyType tp_ind = TP_UNKNOWN) :
531  LiquidTranInteraction(tp_ind) {
532  m_model = LTI_MODEL_MOLEFRACS_EXPT;
533  }
534 
535  //! Return the mixture transport property value.
536  /**
537  * Takes the separate species transport properties as input (this method
538  * does not know what transport property it is at this point.
539  */
540  doublereal getMixTransProp(doublereal* valueSpecies, doublereal* weightSpecies = 0);
541  doublereal getMixTransProp(std::vector<LTPspecies*> LTPptrs);
542 
543  //! Return the matrix of binary interaction parameters.
544  /**
545  * Takes the proper mixing rule for the binary interaction parameters
546  * and calculates them: Not Implemented for this mixing rule
547  */
548  void getMatrixTransProp(DenseMatrix& mat, doublereal* speciesValues = 0) {
549  mat = (*m_Aij[0]);
550  }
551 };
552 
553 }
554 
555 #endif
thermo_t * m_thermo
pointer to thermo object to get current temperature
doublereal getMixTransProp(doublereal *valueSpecies, doublereal *weightSpecies=0)
Return the mixture transport property value.
TransportPropertyType
Enumeration of the types of transport properties that can be handled by the variables in the various ...
Definition: LTPspecies.h:34
LiquidTranMixingModel m_model
Model for species interaction effects. Takes enum LiquidTranMixingModel.
std::vector< DenseMatrix * > m_Hij
Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (in energy units...
An error indicating that an unimplemented function has been called.
Definition: ctexceptions.h:193
Simple mass fraction weighting of transport properties.
doublereal getMixTransProp(doublereal *valueSpecies, doublereal *weightSpecies=0)
Return the mixture transport property value.
std::vector< DenseMatrix * > m_Bij
Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (linear temperat...
std::vector< DenseMatrix * > m_Aij
Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (no temperature ...
Class XML_Node is a tree-based representation of the contents of an XML file.
Definition: xml.h:97
Transport properties that act like pairwise interactions as in binary diffusion coefficients.
TransportPropertyType m_property
enum indicating what property this is (i.e viscosity)
void getMatrixTransProp(DenseMatrix &mat, doublereal *speciesValues=0)
Return the matrix of binary interaction parameters.
virtual doublereal getMixTransProp(doublereal *speciesValues, doublereal *weightSpecies=0)
Return the mixture transport property value.
void getMatrixTransProp(DenseMatrix &mat, doublereal *speciesValues=0)
Return the matrix of binary interaction parameters.
void getMatrixTransProp(DenseMatrix &mat, doublereal *speciesValues=0)
Return the matrix of binary interaction parameters.
void getMatrixTransProp(DenseMatrix &mat, doublereal *speciesValues=0)
Return the matrix of binary interaction parameters.
Header file defining class LiquidTransportData.
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:93
Class LiquidTransportParams holds transport model parameters relevant to transport in mixtures...
void getMatrixTransProp(DenseMatrix &mat, doublereal *speciesValues=0)
Return the matrix of binary interaction parameters.
Mixing rule using logarithms of the mole fractions.
DenseMatrix m_Dij
Matrix of interactions.
Classes providing support for XML data files.
LiquidTranMixingModel
Composition dependence type for liquid mixture transport properties.
LiquidTranInteraction(TransportPropertyType tp_ind=TP_UNKNOWN)
Constructor.
std::vector< DenseMatrix * > m_Sij
Matrix of interaction coefficients for polynomial in molefraction*weight of speciesA (in entropy unit...
Simple mole fraction weighting of transport properties.
void getMatrixTransProp(DenseMatrix &mat, doublereal *speciesValues=0)
Return the matrix of binary interaction parameters.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
Definition: ct_defs.h:157
doublereal getMixTransProp(doublereal *valueSpecies, doublereal *weightSpecies=0)
Return the mixture transport property value.
doublereal getMixTransProp(doublereal *valueSpecies, doublereal *weightSpecies=0)
Return the mixture transport property value.
Stefan Maxwell Diffusion Coefficients can be solved for given ion conductivity, mobility ratios...
Simple mole fraction weighting of transport properties.
doublereal getMixTransProp(doublereal *valueSpecies, doublereal *weightSpecies=0)
Return the mixture transport property value.
virtual void init(const XML_Node &compModelNode=XML_Node(), thermo_t *thermo=0)
initialize LiquidTranInteraction objects with thermo and XML node
Namespace for the Cantera kernel.
Definition: application.cpp:29
doublereal getMixTransProp(doublereal *valueSpecies, doublereal *weightSpecies=0)
Return the mixture transport property value.
DenseMatrix m_Eij
Matrix of interactions (in energy units, 1/RT temperature dependence)
Base class to handle transport property evaluation in a mixture.
Class that holds the data that is read in from the XML file, and which is used for processing of the ...
A class for full (non-sparse) matrices with Fortran-compatible data storage, which adds matrix operat...
Definition: DenseMatrix.h:72