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