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