Cantera  2.0
LiquidTransportParams.h
Go to the documentation of this file.
1 /**
2  * @file LiquidTransportParams.h
3  * Header file defining class LiquidTransportParams
4  */
5 
6 #ifndef CT_LIQUIDTRANSPORTPARAMS_H
7 #define CT_LIQUIDTRANSPORTPARAMS_H
8 
9 #include "cantera/base/ct_defs.h"
10 #include "TransportBase.h"
11 #include "TransportParams.h"
12 #include "LiquidTransportData.h"
13 #include "LiquidTranInteraction.h"
14 #include "cantera/base/xml.h"
15 #include "cantera/base/XML_Writer.h"
16 
17 #include <vector>
18 
19 namespace Cantera
20 {
21 //! Composition dependence type for liquid mixture transport properties
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  *
75  */
76 
77 
78 
79 
80 //! Class LiquidTransportParams holds transport model parameters
81 //! relevant to transport in mixtures.
82 /*!
83  * This class is used by TransportFactory to initialize transport objects.
84  */
86 {
87 
88 public:
89 
90  //! Constructor
92 
93  //! Destructor
95 
96  //! Copy constructor
97  /*!
98  * @param right Object to be copied
99  */
101 
102  //! Assignment operator
103  /*!
104  * @param right Object to be copied
105  */
107 
108  //! Species transport parameters
109  std::vector<Cantera::LiquidTransportData> LTData;
110 
111  //! Object that specifies the viscosity interaction for the mixture
113 
114  //! Object that specifes the ionic Conductivity of the mixture
116 
117  //! Vector of pointer to the LiquidTranInteraction object which handles the calculation of
118  //! each species' mobility ratios for the phase
119  /*!
120  * mobRat(i,j) = mu_i / mu_j
121  *
122  * It is returned in fortran-ordering format. ie. it is returned as mobRat[k], where
123  *
124  * k = j * nsp + i
125  */
126  std::vector<LiquidTranInteraction*> mobilityRatio;
127 
128  //! Vector of pointer to the LiquidTranInteraction object which handles the calculation of
129  //! each species' self diffusion coefficient for the phase
130  std::vector<LiquidTranInteraction*> selfDiffusion;
131 
132  //! Pointer to the LiquidTranInteraction object which handles the calculation of the
133  //! mixture thermal conductivity for the phase
135 
136  //! Pointer to the LiquidTranInteraction object which handles the calculation of the
137  //! species diffusivity for the phase
139 
140  //! Pointer to the LiquidTranInteraction object which handles the calculation of the
141  //! electrical conductivity for the phase
143 
144  //! Pointer to the LiquidTranInteraction object which handles the calculation of the hydrodynamic
145  //! radius for the phase
146  /*!
147  * @note I don't understand at the moment how one can define a hydrodynamic
148  * radius for the phase
149  */
151 
152  //! Model for species interaction effects for viscosity
153  //! Takes enum LiquidTranMixingModel
155 
156  //! Model for species interaction effects for ionic conductivity
157  //! Takes enum LiquidTranMixingModel
159 
160  //! Model for species interaction effects for mobility ratio
161  //! Takes enum LiquidTranMixingModel
162  std::vector<LiquidTranMixingModel*> model_mobilityRatio;
163 
164  //! Model for species interaction effects for mobility ratio
165  //! Takes enum LiquidTranMixingModel
166  std::vector<LiquidTranMixingModel*> model_selfDiffusion;
167 
168  //! Interaction associated with linear weighting of
169  //! thermal conductivity.
170  /**
171  * This is used for either LTI_MODEL_MASSFRACS
172  * or LTI_MODEL_MOLEFRACS.
173  * The overall formula for the mixture viscosity is
174  *
175  * \f[ \eta_{mix} = \sum_i X_i \eta_i
176  * + \sum_i \sum_j X_i X_j A_{i,j} \f].
177  */
179 
180  //! Model for species interaction effects for mass diffusivity
181  //! Takes enum LiquidTranMixingModel
183 
184  //! Interaction associated with linear weighting of
185  //! thermal conductivity.
186  /**
187  * This is used for either LTI_MODEL_PAIRWISE_INTERACTION or LTI_MODEL_STEFANMAXWELL_PPN.
188  * These provide species interaction coefficients associated with
189  * the Stefan-Maxwell formulation.
190  */
192 
193  //! Model for species interaction effects for hydrodynamic radius
194  //! Takes enum LiquidTranMixingModel
196 
197  //! Interaction associated with hydrodynamic radius.
198  /**
199  * Not yet implemented
200  */
202 };
203 
204 
205 
206 
207 }
208 
209 #endif