Cantera  2.3.0
SimpleTransport.h
Go to the documentation of this file.
1 /**
2  * @file SimpleTransport.h
3  * Header file for the class SimpleTransport which provides simple
4  * transport properties for liquids and solids
5  * (see \ref tranprops and \link Cantera::SimpleTransport SimpleTransport \endlink) .
6  */
7 
8 // This file is part of Cantera. See License.txt in the top-level directory or
9 // at http://www.cantera.org/license.txt for license and copyright information.
10 
11 #ifndef CT_SIMPLETRAN_H
12 #define CT_SIMPLETRAN_H
13 
14 #include "LiquidTransportParams.h"
15 
16 namespace Cantera
17 {
18 //! Class SimpleTransport implements mixture-averaged transport properties for
19 //! liquid phases.
20 /*!
21  * The model is based on that described by Newman, Electrochemical Systems
22  *
23  * The velocity of species i may be described by the following equation p. 297
24  * (12.1)
25  *
26  * \f[
27  * c_i \nabla \mu_i = R T \sum_j \frac{c_i c_j}{c_T D_{ij}}
28  * (\mathbf{v}_j - \mathbf{v}_i)
29  * \f]
30  *
31  * This as written is degenerate by 1 dof.
32  *
33  * To fix this we must add in the definition of the mass averaged velocity of
34  * the solution. We will call the simple bold-faced \f$\mathbf{v} \f$ symbol the
35  * mass-averaged velocity. Then, the relation between \f$\mathbf{v}\f$ and the
36  * individual species velocities is \f$\mathbf{v}_i\f$
37  *
38  * \f[
39  * \rho_i \mathbf{v}_i = \rho_i \mathbf{v} + \mathbf{j}_i
40  * \f]
41  * where \f$\mathbf{j}_i\f$ are the diffusional fluxes of species i with respect
42  * to the mass averaged velocity and
43  *
44  * \f[
45  * \sum_i \mathbf{j}_i = 0
46  * \f]
47  *
48  * and
49  *
50  * \f[
51  * \sum_i \rho_i \mathbf{v}_i = \rho \mathbf{v}
52  * \f]
53  *
54  * Using these definitions, we can write
55  *
56  * \f[
57  * \mathbf{v}_i = \mathbf{v} + \frac{\mathbf{j}_i}{\rho_i}
58  * \f]
59  *
60  * \f[
61  * c_i \nabla \mu_i = R T \sum_j \frac{c_i c_j}{c_T D_{ij}}
62  * (\frac{\mathbf{j}_j}{\rho_j} - \frac{\mathbf{j}_i}{\rho_i})
63  * = R T \sum_j \frac{1}{D_{ij}}
64  * (\frac{x_i \mathbf{j}_j}{M_j} - \frac{x_j \mathbf{j}_i}{M_i})
65  * \f]
66  *
67  * The equations that we actually solve are
68  *
69  * \f[
70  * c_i \nabla \mu_i =
71  * = R T \sum_j \frac{1}{D_{ij}}
72  * (\frac{x_i \mathbf{j}_j}{M_j} - \frac{x_j \mathbf{j}_i}{M_i})
73  * \f]
74  * and we replace the 0th equation with the following:
75  *
76  * \f[
77  * \sum_i \mathbf{j}_i = 0
78  * \f]
79  *
80  * When there are charged species, we replace the RHS with the gradient of the
81  * electrochemical potential to obtain the modified equation
82  *
83  * \f[
84  * c_i \nabla \mu_i + c_i F z_i \nabla \Phi
85  * = R T \sum_j \frac{1}{D_{ij}}
86  * (\frac{x_i \mathbf{j}_j}{M_j} - \frac{x_j \mathbf{j}_i}{M_i})
87  * \f]
88  *
89  * With this formulation we may solve for the diffusion velocities, without
90  * having to worry about what the mass averaged velocity is.
91  *
92  * ## Viscosity Calculation
93  *
94  * The viscosity calculation may be broken down into two parts. In the first
95  * part, the viscosity of the pure species are calculated In the second part, a
96  * mixing rule is applied. There are two mixing rules. Solvent-only and mixture-
97  * averaged.
98  *
99  * For the solvent-only mixing rule, we use the pure species viscosity
100  * calculated for the solvent as the viscosity of the entire mixture. For the
101  * mixture averaged rule we do a mole fraction based average of the pure species
102  * viscosities:
103  *
104  * Solvent-only:
105  * \f[
106  * \mu = \mu_0
107  * \f]
108  * Mixture-average:
109  * \f[
110  * \mu = \sum_k {\mu_k X_k}
111  * \f]
112  *
113  * ## Calculate of the Binary Diffusion Coefficients
114  *
115  * The binary diffusion coefficients are obtained from the pure species
116  * diffusion coefficients using an additive process
117  *
118  * \f[
119  * D_{i,j} = \frac{1}{2} \left( D^0_i(T) + D^0_j(T) \right)
120  * \f]
121  *
122  * ## Electrical Mobilities
123  *
124  * The mobility \f$ \mu^e_k \f$ is calculated from the diffusion coefficient
125  * using the Einstein relation.
126  *
127  * \f[
128  * \mu^e_k = \frac{F D_k}{R T}
129  * \f]
130  *
131  * The diffusion coefficients, \f$ D_k \f$ , is calculated from a call to the
132  * mixture diffusion coefficient routine.
133  *
134  * ## Species Diffusive Fluxes
135  *
136  * The diffusive mass flux of species \e k is computed from the following
137  * formula
138  *
139  * Usually the specified solution average velocity is the mass averaged
140  * velocity. This is changed in some subclasses, however.
141  *
142  * \f[
143  * j_k = - c^T M_k D_k \nabla X_k - \rho Y_k V_c
144  * \f]
145  *
146  * where V_c is the correction velocity
147  *
148  * \f[
149  * \rho V_c = - \sum_j {c^T M_j D_j \nabla X_j}
150  * \f]
151  *
152  * In the above equation, \f$ D_k \f$ is the mixture diffusivity for species k
153  * calculated for the current conditions, which may depend on T, P, and X_k. \f$
154  * C^T \f$ is the total concentration of the phase.
155  *
156  * When this is electrical migration, the formulas above are enhanced to
157  *
158  * \f[
159  * j_k = - C^T M_k D_k \nabla X_k + F C^T M_k \frac{D_k}{ R T } X_k z_k \nabla V - \rho Y_k V_c
160  * \f]
161  *
162  * where V_c is the correction velocity
163  *
164  * \f[
165  * \rho V_c = - \sum_j {c^T M_j D_j \nabla X_j} + \sum_j F C^T M_j \frac{D_j}{ R T } X_j z_j \nabla V
166  * \f]
167  *
168  * ## Species Diffusional Velocities
169  *
170  * Species diffusional velocities are calculated from the species diffusional
171  * fluxes, within this object, using the following formula for the diffusional
172  * velocity of the kth species, \f$ V_k^d \f$
173  *
174  * \f[
175  * j_k = \rho Y_k V_k^d
176  * \f]
177  *
178  * TODO: This object has to be made compatible with different types of reference
179  * velocities. Right now, elements of the formulas are only compatible with the
180  * mass-averaged velocity.
181  *
182  * @ingroup tranprops
183  */
185 {
186 public:
187  //! Default constructor.
188  /*!
189  * This requires call to initLiquid(LiquidTransportParams& tr) after filling
190  * LiquidTransportParams to complete instantiation. The filling of
191  * LiquidTransportParams is currently carried out in the TransportFactory
192  * class, but might be moved at some point.
193  *
194  * @param thermo ThermoPhase object holding species information.
195  * @param ndim Number of spatial dimensions.
196  */
197  SimpleTransport(thermo_t* thermo = 0, int ndim = 1);
198 
199  SimpleTransport(const SimpleTransport& right);
200  SimpleTransport& operator=(const SimpleTransport& right);
201  virtual Transport* duplMyselfAsTransport() const;
202  virtual ~SimpleTransport();
203 
204  //! Initialize the transport object
205  /*!
206  * Here we change all of the internal dimensions to be sufficient.
207  * We get the object ready to do property evaluations.
208  *
209  * @param tr Transport parameters for all of the species in the phase.
210  */
211  virtual bool initLiquid(LiquidTransportParams& tr);
212 
213  virtual int model() const {
214  warn_deprecated("SimpleTransport::model",
215  "To be removed after Cantera 2.3.");
216  return cSimpleTransport;
217  }
218 
219  virtual std::string transportType() const {
220  return "Simple";
221  }
222 
223  //! Returns the mixture viscosity of the solution
224  /*!
225  * The viscosity is computed using the general mixture rules
226  * specified in the variable compositionDepType_.
227  *
228  * Solvent-only:
229  * \f[
230  * \mu = \mu_0
231  * \f]
232  * Mixture-average:
233  * \f[
234  * \mu = \sum_k {\mu_k X_k}
235  * \f]
236  *
237  * Here \f$ \mu_k \f$ is the viscosity of pure species \e k.
238  *
239  * units are Pa s or kg/m/s
240  *
241  * @see updateViscosity_T();
242  */
243  virtual doublereal viscosity();
244 
245  //! Returns the pure species viscosities
246  /*!
247  * The pure species viscosities are to be given in an Arrhenius form in
248  * accordance with activated-jump-process dominated transport.
249  *
250  * units are Pa s or kg/m/s
251  *
252  * @param visc Return the species viscosities as a vector of length m_nsp
253  */
254  virtual void getSpeciesViscosities(doublereal* const visc);
255 
256  //! Returns the binary diffusion coefficients
257  virtual void getBinaryDiffCoeffs(const size_t ld, doublereal* const d);
258 
259  //! Get the Mixture diffusion coefficients
260  /*!
261  * @param d vector of mixture diffusion coefficients
262  * units = m2 s-1. length = number of species
263  */
264  virtual void getMixDiffCoeffs(doublereal* const d);
265 
266  //! Return the thermal diffusion coefficients
267  /*!
268  * These are all zero for this simple implementation
269  *
270  * @param dt thermal diffusion coefficients
271  */
272  virtual void getThermalDiffCoeffs(doublereal* const dt);
273 
274  //! Returns the mixture thermal conductivity of the solution
275  /*!
276  * The thermal is computed using the general mixture rules
277  * specified in the variable compositionDepType_.
278  *
279  * Controlling update boolean = m_condmix_ok
280  *
281  * Units are in W/m/K or equivalently kg m / s3 / K
282  *
283  * Solvent-only:
284  * \f[
285  * \lambda = \lambda_0
286  * \f]
287  * Mixture-average:
288  * \f[
289  * \lambda = \sum_k {\lambda_k X_k}
290  * \f]
291  *
292  * Here \f$ \lambda_k \f$ is the thermal conductivity of pure species \e k.
293  *
294  * @see updateCond_T();
295  */
296  virtual doublereal thermalConductivity();
297 
298  virtual void getMobilities(doublereal* const mobil_e);
299 
300  virtual void getFluidMobilities(doublereal* const mobil_f);
301 
302  //! Specify the value of the gradient of the voltage
303  /*!
304  * @param grad_V Gradient of the voltage (length num dimensions);
305  */
306  virtual void set_Grad_V(const doublereal* const grad_V);
307 
308  //! Specify the value of the gradient of the temperature
309  /*!
310  * @param grad_T Gradient of the temperature (length num dimensions);
311  */
312  virtual void set_Grad_T(const doublereal* const grad_T);
313 
314  //! Specify the value of the gradient of the MoleFractions
315  /*!
316  * @param grad_X Gradient of the mole fractions(length nsp * num dimensions);
317  */
318  virtual void set_Grad_X(const doublereal* const grad_X);
319 
320  //! Get the species diffusive velocities wrt to the averaged velocity,
321  //! given the gradients in mole fraction and temperature
322  /*!
323  * The average velocity can be computed on a mole-weighted
324  * or mass-weighted basis, or the diffusion velocities may
325  * be specified as relative to a specific species (i.e. a
326  * solvent) all according to the velocityBasis input parameter.
327  *
328  * Units for the returned velocities are m s-1.
329  *
330  * @param ndim Number of dimensions in the flux expressions
331  * @param grad_T Gradient of the temperature (length = ndim)
332  * @param ldx Leading dimension of the grad_X array (usually equal to
333  * m_nsp but not always)
334  * @param grad_X Gradients of the mole fraction. Flat vector with the m_nsp
335  * in the inner loop. length = ldx * ndim
336  * @param ldf Leading dimension of the fluxes array (usually equal to
337  * m_nsp but not always)
338  * @param Vdiff Output of the diffusive velocities. Flat vector with the
339  * m_nsp in the inner loop. length = ldx * ndim
340  */
341  virtual void getSpeciesVdiff(size_t ndim,
342  const doublereal* grad_T,
343  int ldx,
344  const doublereal* grad_X,
345  int ldf,
346  doublereal* Vdiff);
347 
348  //! Get the species diffusive velocities wrt to the averaged velocity, given
349  //! the gradients in mole fraction, temperature and electrostatic potential.
350  /*!
351  * The average velocity can be computed on a mole-weighted
352  * or mass-weighted basis, or the diffusion velocities may
353  * be specified as relative to a specific species (i.e. a
354  * solvent) all according to the velocityBasis input parameter.
355  *
356  * Units for the returned velocities are m s-1.
357  *
358  * @param ndim Number of dimensions in the flux expressions
359  * @param grad_T Gradient of the temperature (length = ndim)
360  * @param ldx Leading dimension of the grad_X array (usually equal
361  * to m_nsp but not always)
362  * @param grad_X Gradients of the mole fraction. Flat vector with the
363  * m_nsp in the inner loop. length = ldx * ndim
364  * @param ldf Leading dimension of the fluxes array (usually equal to
365  * m_nsp but not always)
366  * @param grad_Phi Gradients of the electrostatic potential (length =
367  * ndim)
368  * @param Vdiff Output of the species diffusion velocities. Flat vector
369  * with the m_nsp in the inner loop. length = ldx * ndim
370  */
371  virtual void getSpeciesVdiffES(size_t ndim, const doublereal* grad_T,
372  int ldx, const doublereal* grad_X,
373  int ldf, const doublereal* grad_Phi,
374  doublereal* Vdiff);
375 
376  //! Get the species diffusive mass fluxes wrt to the specified solution
377  //! averaged velocity, given the gradients in mole fraction and temperature
378  /*!
379  * units = kg/m2/s
380  *
381  * The diffusive mass flux of species \e k is computed from the following
382  * formula
383  *
384  * Usually the specified solution average velocity is the mass averaged
385  * velocity. This is changed in some subclasses, however.
386  *
387  * \f[
388  * j_k = - \rho M_k D_k \nabla X_k - Y_k V_c
389  * \f]
390  *
391  * where V_c is the correction velocity
392  *
393  * \f[
394  * V_c = - \sum_j {\rho M_j D_j \nabla X_j}
395  * \f]
396  *
397  * @param ndim The number of spatial dimensions (1, 2, or 3).
398  * @param grad_T The temperature gradient (ignored in this model).
399  * @param ldx Leading dimension of the grad_X array.
400  * @param grad_X Gradient of the mole fractions(length nsp * num dimensions);
401  * @param ldf Leading dimension of the fluxes array.
402  * @param fluxes Output fluxes of species.
403  */
404  virtual void getSpeciesFluxes(size_t ndim, const doublereal* const grad_T,
405  size_t ldx, const doublereal* const grad_X,
406  size_t ldf, doublereal* const fluxes);
407 
408  //! Return the species diffusive mass fluxes wrt to the mass averaged
409  //! velocity,
410  /*!
411  * units = kg/m2/s
412  *
413  * Internally, gradients in the in mole fraction, temperature
414  * and electrostatic potential contribute to the diffusive flux
415  *
416  * The diffusive mass flux of species \e k is computed from the following
417  * formula
418  *
419  * \f[
420  * j_k = - \rho M_k D_k \nabla X_k - Y_k V_c
421  * \f]
422  *
423  * where V_c is the correction velocity
424  *
425  * \f[
426  * V_c = - \sum_j {\rho M_j D_j \nabla X_j}
427  * \f]
428  *
429  * @param ldf stride of the fluxes array. Must be equal to or greater
430  * than the number of species.
431  * @param fluxes Vector of calculated fluxes
432  */
433  virtual void getSpeciesFluxesExt(size_t ldf, doublereal* fluxes);
434 
435 protected:
436  //! Handles the effects of changes in the Temperature, internally within the
437  //! object.
438  /*!
439  * This is called whenever a transport property is requested. The first task
440  * is to check whether the temperature has changed since the last call to
441  * update_T(). If it hasn't then an immediate return is carried out.
442  *
443  * @returns true if the temperature has changed, and false otherwise
444  */
445  virtual bool update_T();
446 
447  //! Handles the effects of changes in the mixture concentration
448  /*!
449  * This is called for every interface call to check whether the
450  * concentrations have changed. Concentrations change whenever the pressure
451  * or the mole fraction has changed. If it has changed, the recalculations
452  * should be done.
453  *
454  * Note this should be a lightweight function since it's part of all of the
455  * interfaces.
456  */
457  virtual bool update_C();
458 
459  //! Update the temperature-dependent viscosity terms. Updates the array of
460  //! pure species viscosities, and the weighting functions in the viscosity
461  //! mixture rule.
462  /*!
463  * The flag m_visc_temp_ok is set to true.
464  */
465  void updateViscosity_T();
466 
467  //! Update the temperature-dependent parts of the mixture-averaged
468  //! thermal conductivity.
469  void updateCond_T();
470 
471  //! Update the binary diffusion coefficients wrt T.
472  /*!
473  * These are evaluated from the polynomial fits at unit pressure (1 Pa).
474  */
475  void updateDiff_T();
476 
477 private:
478  //! Temperature dependence type
479  /*!
480  * The following coefficients are allowed to have simple temperature
481  * dependencies:
482  * - mixture viscosity
483  * - mixture thermal conductivity
484  * - diffusitivy
485  *
486  * Types of temperature dependencies:
487  * 0 - Independent of temperature (only one implemented so far)
488  * 1 - extended arrhenius form
489  * 2 - polynomial in temperature form
490  */
492 
493  //! Composition dependence of the transport properties
494  /*!
495  * The following coefficients are allowed to have simple composition
496  * dependencies:
497  * - mixture viscosity
498  * - mixture thermal conductivity
499  *
500  * Permissible types of composition dependencies
501  * 0 - Solvent values (i.e., species 0) contributes only
502  * 1 - linear combination of mole fractions;
503  */
505 
506  //! Boolean indicating whether to use the hydrodynamic radius formulation
507  /*!
508  * If true, then the diffusion coefficient is calculated from the
509  * hydrodynamic radius.
510  */
512 
513  //! Boolean indicating whether electro-migration term should be added
515 
516  //! Local Copy of the molecular weights of the species
517  /*!
518  * Length is Equal to the number of species in the mechanism.
519  */
521 
522  //! Pure species viscosities in Arrhenius temperature-dependent form.
523  std::vector<LTPspecies*> m_coeffVisc_Ns;
524 
525  //! Pure species thermal conductivities in Arrhenius temperature-dependent form.
526  std::vector<LTPspecies*> m_coeffLambda_Ns;
527 
528  //! Pure species viscosities in Arrhenius temperature-dependent form.
529  std::vector<LTPspecies*> m_coeffDiff_Ns;
530 
531  //! Hydrodynamic radius in LTPspecies form
532  std::vector<LTPspecies*> m_coeffHydroRadius_Ns;
533 
534  //! Internal value of the gradient of the mole fraction vector
535  /*!
536  * Note, this is the only gradient value that can and perhaps should reflect
537  * the true state of the mole fractions in the application solution vector.
538  * In other words no cropping or massaging of the values to make sure they
539  * are above zero should occur. - developing ....
540  *
541  * m_nsp is the number of species in the fluid
542  * k is the species index
543  * n is the dimensional index (x, y, or z). It has a length equal to m_nDim
544  *
545  * m_Grad_X[n*m_nsp + k]
546  */
548 
549  //! Internal value of the gradient of the Temperature vector
550  /*!
551  * Generally, if a transport property needs this in its evaluation it
552  * will look to this place to get it.
553  *
554  * No internal property is precalculated based on gradients. Gradients
555  * are assumed to be freshly updated before every property call.
556  */
558 
559  //! Internal value of the gradient of the Pressure vector
560  /*!
561  * Generally, if a transport property needs this in its evaluation it
562  * will look to this place to get it.
563  *
564  * No internal property is precalculated based on gradients. Gradients
565  * are assumed to be freshly updated before every property call.
566  */
568 
569  //! Internal value of the gradient of the Electric Voltage
570  /*!
571  * Generally, if a transport property needs this in its evaluation it
572  * will look to this place to get it.
573  *
574  * No internal property is precalculated based on gradients. Gradients
575  * are assumed to be freshly updated before every property call.
576  */
578 
579  // property values
580 
581  //! Vector of Species Diffusivities
582  /*!
583  * Depends on the temperature. We have set the pressure dependence to zero
584  * for this liquid phase constituitve model
585  *
586  * units m2/s
587  */
589 
590  //! Species viscosities
591  /*!
592  * Viscosity of the species
593  * Length = number of species
594  *
595  * Depends on the temperature. We have set the pressure dependence to zero
596  * for this model
597  *
598  * controlling update boolean -> m_visc_temp_ok
599  */
601 
602  //! Internal value of the species individual thermal conductivities
603  /*!
604  * Then a mixture rule is applied to get the solution conductivities
605  *
606  * Depends on the temperature and perhaps pressure, but
607  * not the species concentrations
608  *
609  * controlling update boolean -> m_cond_temp_ok
610  */
612 
613  //! State of the mole fraction vector.
615 
616  //! Local copy of the mole fractions of the species in the phase
617  /*!
618  * The mole fractions here are assumed to be bounded by 0.0 and 1.0 and they
619  * are assumed to add up to one exactly. This mole fraction vector comes
620  * from the ThermoPhase object. Derivative quantities from this are referred
621  * to as bounded.
622  *
623  * Update info?
624  * length = m_nsp
625  */
627 
628  //! Local copy of the concentrations of the species in the phase
629  /*!
630  * The concentrations are consistent with the m_molefracs vector which is
631  * bounded and sums to one.
632  *
633  * Update info?
634  * length = m_nsp
635  */
637 
638  //! Local copy of the total concentration.
639  /*!
640  * This is consistent with the m_concentrations[] and m_molefracs[] vector.
641  */
642  doublereal concTot_;
643 
644  //! Mean molecular weight
646 
647  //! Density
648  doublereal dens_;
649 
650  //! Local copy of the charge of each species
651  /*!
652  * Contains the charge of each species (length m_nsp)
653  */
655 
656  //! Current Temperature -> locally stored
657  /*!
658  * This is used to test whether new temperature computations should be
659  * performed.
660  */
661  doublereal m_temp;
662 
663  //! Current value of the pressure
664  doublereal m_press;
665 
666  //! Saved value of the mixture thermal conductivity
667  doublereal m_lambda;
668 
669  //! Saved value of the mixture viscosity
670  doublereal m_viscmix;
671 
672  //! work space
673  /*!
674  * Length is equal to m_nsp
675  */
677 
678  vector_fp m_fluxes;
679 
680  //! Boolean indicating that the top-level mixture viscosity is current
681  /*!
682  * This is turned false for every change in T, P, or C.
683  */
685 
686  //! Boolean indicating that weight factors wrt viscosity is current
688 
689  //! Boolean indicating that mixture diffusion coeffs are current
691 
692  //! Boolean indicating that binary diffusion coeffs are current
694 
695  //! Flag to indicate that the pure species conductivities
696  //! are current wrt the temperature
698 
699  //! Boolean indicating that mixture conductivity is current
701 
702  //! Number of dimensions
703  /*!
704  * Either 1, 2, or 3
705  */
706  size_t m_nDim;
707 
708  //! Temporary variable that stores the rho Vc value
709  double rhoVc[3];
710 };
711 }
712 #endif
bool m_visc_temp_ok
Boolean indicating that weight factors wrt viscosity is current.
vector_fp m_Grad_T
Internal value of the gradient of the Temperature vector.
vector_fp m_Grad_V
Internal value of the gradient of the Electric Voltage.
vector_fp m_Grad_P
Internal value of the gradient of the Pressure vector.
virtual bool initLiquid(LiquidTransportParams &tr)
Initialize the transport object.
vector_fp m_spwork
work space
bool m_visc_mix_ok
Boolean indicating that the top-level mixture viscosity is current.
virtual void getBinaryDiffCoeffs(const size_t ld, doublereal *const d)
Returns the binary diffusion coefficients.
virtual void getSpeciesFluxes(size_t ndim, const doublereal *const grad_T, size_t ldx, const doublereal *const grad_X, size_t ldf, doublereal *const fluxes)
Get the species diffusive mass fluxes wrt to the specified solution averaged velocity, given the gradients in mole fraction and temperature.
doublereal m_viscmix
Saved value of the mixture viscosity.
double rhoVc[3]
Temporary variable that stores the rho Vc value.
virtual bool update_T()
Handles the effects of changes in the Temperature, internally within the object.
virtual Transport * duplMyselfAsTransport() const
Duplication routine for objects which inherit from Transport.
bool m_cond_mix_ok
Boolean indicating that mixture conductivity is current.
Base class for transport property managers.
void warn_deprecated(const std::string &method, const std::string &extra)
Print a warning indicating that method is deprecated.
Definition: global.cpp:54
enum LiquidTranMixingModel compositionDepType_
Composition dependence of the transport properties.
void updateDiff_T()
Update the binary diffusion coefficients wrt T.
virtual void getMobilities(doublereal *const mobil_e)
Get the Electrical mobilities (m^2/V/s).
virtual bool update_C()
Handles the effects of changes in the mixture concentration.
doublereal m_lambda
Saved value of the mixture thermal conductivity.
vector_fp m_Grad_X
Internal value of the gradient of the mole fraction vector.
void updateCond_T()
Update the temperature-dependent parts of the mixture-averaged thermal conductivity.
int m_iStateMF
State of the mole fraction vector.
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:93
Class LiquidTransportParams holds transport model parameters relevant to transport in mixtures...
Header file defining class LiquidTransportParams.
doublereal meanMolecularWeight_
Mean molecular weight.
bool m_diff_temp_ok
Boolean indicating that binary diffusion coeffs are current.
virtual void getFluidMobilities(doublereal *const mobil_f)
Get the fluid mobilities (s kmol/kg).
std::vector< LTPspecies * > m_coeffVisc_Ns
Pure species viscosities in Arrhenius temperature-dependent form.
virtual void getMixDiffCoeffs(doublereal *const d)
Get the Mixture diffusion coefficients.
virtual void getSpeciesVdiffES(size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_Phi, doublereal *Vdiff)
Get the species diffusive velocities wrt to the averaged velocity, given the gradients in mole fracti...
vector_fp m_diffSpecies
Vector of Species Diffusivities.
vector_fp m_viscSpecies
Species viscosities.
LiquidTranMixingModel
Composition dependence type for liquid mixture transport properties.
int tempDepType_
Temperature dependence type.
std::vector< LTPspecies * > m_coeffLambda_Ns
Pure species thermal conductivities in Arrhenius temperature-dependent form.
SimpleTransport(thermo_t *thermo=0, int ndim=1)
Default constructor.
doublereal m_press
Current value of the pressure.
std::vector< LTPspecies * > m_coeffHydroRadius_Ns
Hydrodynamic radius in LTPspecies form.
virtual int model() const
Transport model.
virtual std::string transportType() const
Identifies the Transport object type.
virtual void set_Grad_X(const doublereal *const grad_X)
Specify the value of the gradient of the MoleFractions.
virtual void getSpeciesVdiff(size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, doublereal *Vdiff)
Get the species diffusive velocities wrt to the averaged velocity, given the gradients in mole fracti...
virtual doublereal thermalConductivity()
Returns the mixture thermal conductivity of the solution.
thermo_t & thermo()
virtual void set_Grad_V(const doublereal *const grad_V)
Specify the value of the gradient of the voltage.
doublereal concTot_
Local copy of the total concentration.
vector_fp m_concentrations
Local copy of the concentrations of the species in the phase.
void updateViscosity_T()
Update the temperature-dependent viscosity terms.
virtual void getThermalDiffCoeffs(doublereal *const dt)
Return the thermal diffusion coefficients.
doublereal dens_
Density.
virtual doublereal viscosity()
Returns the mixture viscosity of the solution.
doublereal m_temp
Current Temperature -> locally stored.
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
vector_fp m_condSpecies
Internal value of the species individual thermal conductivities.
bool doMigration_
Boolean indicating whether electro-migration term should be added.
bool useHydroRadius_
Boolean indicating whether to use the hydrodynamic radius formulation.
virtual void getSpeciesFluxesExt(size_t ldf, doublereal *fluxes)
Return the species diffusive mass fluxes wrt to the mass averaged velocity,.
size_t m_nDim
Number of dimensions.
vector_fp m_chargeSpecies
Local copy of the charge of each species.
bool m_cond_temp_ok
Flag to indicate that the pure species conductivities are current wrt the temperature.
Namespace for the Cantera kernel.
Definition: application.cpp:29
vector_fp m_molefracs
Local copy of the mole fractions of the species in the phase.
virtual void getSpeciesViscosities(doublereal *const visc)
Returns the pure species viscosities.
virtual void set_Grad_T(const doublereal *const grad_T)
Specify the value of the gradient of the temperature.
std::vector< LTPspecies * > m_coeffDiff_Ns
Pure species viscosities in Arrhenius temperature-dependent form.
Class SimpleTransport implements mixture-averaged transport properties for liquid phases...
bool m_diff_mix_ok
Boolean indicating that mixture diffusion coeffs are current.
vector_fp m_mw
Local Copy of the molecular weights of the species.