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