Cantera 2.6.0

GasTransport.h
Go to the documentation of this file.
1/**
2 * @file GasTransport.h
3 */
4
5// This file is part of Cantera. See License.txt in the top-level directory or
6// at https://cantera.org/license.txt for license and copyright information.
7
8#ifndef CT_GAS_TRANSPORT_H
9#define CT_GAS_TRANSPORT_H
10
11#include "TransportBase.h"
12#include "cantera/numerics/DenseMatrix.h"
13
14 namespace Cantera
15{
16
17 class MMCollisionInt;
18
19//! Class GasTransport implements some functions and properties that are
20//! shared by the MixTransport and MultiTransport classes.
21//!
22//! ### References
23//!
24//! * [Kee2003] R. J. Kee, M. E. Coltrin, and P. Glarborg. Chemically Reacting
25//! Flow: Theory and Practice. 1st Ed. John Wiley and Sons, 2003.
26//! * [Kee2017] R. J. Kee, M. E. Coltrin, P. Glarborg, and H. Zhu. Chemically
27//! Reacting Flow: Theory and Practice. 2nd Ed. John Wiley and Sons, 2017.
28//!
29//! @ingroup tranprops
30 class GasTransport : public Transport
31{
32 public:
33 //! Viscosity of the mixture (kg /m /s)
34 /*!
35 * The viscosity is computed using the Wilke mixture rule (kg /m /s)
36 *
37 * \f[
38 * \mu = \sum_k \frac{\mu_k X_k}{\sum_j \Phi_{k,j} X_j}.
39 * \f]
40 *
41 * Here \f$ \mu_k \f$ is the viscosity of pure species \e k, and
42 *
43 * \f[
44 * \Phi_{k,j} = \frac{\left[1
45 * + \sqrt{\left(\frac{\mu_k}{\mu_j}\sqrt{\frac{M_j}{M_k}}\right)}\right]^2}
46 * {\sqrt{8}\sqrt{1 + M_k/M_j}}
47 * \f]
48 *
49 * @returns the viscosity of the mixture (units = Pa s = kg /m /s)
50 *
51 * @see updateViscosity_T();
52 */
53 virtual doublereal viscosity();
54
55 //! Get the pure-species viscosities
56 virtual void getSpeciesViscosities(doublereal* const visc) {
57 update_T();
58 updateViscosity_T();
59 std::copy(m_visc.begin(), m_visc.end(), visc);
60 }
61
62 //! Returns the matrix of binary diffusion coefficients.
63 /*!
64 * d[ld*j + i] = rp * m_bdiff(i,j);
65 *
66 * @param ld offset of rows in the storage
67 * @param d output vector of diffusion coefficients. Units of m**2 / s
68 */
69 virtual void getBinaryDiffCoeffs(const size_t ld, doublereal* const d);
70
71 //! Returns the Mixture-averaged diffusion coefficients [m^2/s].
72 /*!
73 * Returns the mixture averaged diffusion coefficients for a gas,
74 * appropriate for calculating the mass averaged diffusive flux with respect
75 * to the mass averaged velocity using gradients of the mole fraction.
76 * Note, for the single species case or the pure fluid case the routine
77 * returns the self-diffusion coefficient. This is needed to avoid a Nan
78 * result in the formula below.
79 *
80 * This is Eqn. 12.180 from "Chemically Reacting Flow"
81 *
82 * \f[
83 * D_{km}' = \frac{\left( \bar{M} - X_k M_k \right)}{ \bar{\qquad M \qquad } } {\left( \sum_{j \ne k} \frac{X_j}{D_{kj}} \right) }^{-1}
84 * \f]
85 *
86 * @param[out] d Vector of mixture diffusion coefficients, \f$ D_{km}' \f$ ,
87 * for each species (m^2/s). length m_nsp
88 */
89 virtual void getMixDiffCoeffs(doublereal* const d);
90
91 //! Returns the mixture-averaged diffusion coefficients [m^2/s].
92 //! These are the coefficients for calculating the molar diffusive fluxes
93 //! from the species mole fraction gradients, computed according to
94 //! Eq. 12.176 in "Chemically Reacting Flow":
95 //!
96 //! \f[ D_{km}^* = \frac{1-X_k}{\sum_{j \ne k}^K X_j/\mathcal{D}_{kj}} \f]
97 //!
98 //! @param[out] d vector of mixture-averaged diffusion coefficients for
99 //! each species, length m_nsp.
100 virtual void getMixDiffCoeffsMole(doublereal* const d);
101
102 //! Returns the mixture-averaged diffusion coefficients [m^2/s].
103 /*!
104 * These are the coefficients for calculating the diffusive mass fluxes
105 * from the species mass fraction gradients, computed according to
106 * Eq. 12.178 in "Chemically Reacting Flow":
107 *
108 * \f[
109 * \frac{1}{D_{km}} = \sum_{j \ne k}^K \frac{X_j}{\mathcal{D}_{kj}} +
110 * \frac{X_k}{1-Y_k} \sum_{j \ne k}^K \frac{Y_j}{\mathcal{D}_{kj}}
111 * \f]
112 *
113 * @param[out] d vector of mixture-averaged diffusion coefficients for
114 * each species, length m_nsp.
115 */
116 virtual void getMixDiffCoeffsMass(doublereal* const d);
117
118 //! Return the polynomial fits to the viscosity of species i
119 //! @see fitProperties()
120 virtual void getViscosityPolynomial(size_t i, double* coeffs) const;
121
122 //! Return the temperature fits of the heat conductivity of species i
123 //! @see fitProperties()
124 virtual void getConductivityPolynomial(size_t i, double* coeffs) const;
125
126 //! Return the polynomial fits to the binary diffusivity of species pair (i, j)
127 //! @see fitDiffCoeffs()
128 virtual void getBinDiffusivityPolynomial(size_t i, size_t j, double* coeffs) const;
129
130 //! Return the polynomial fits to the collision integral of species pair (i, j)
131 //! @see fitCollisionIntegrals()
132 virtual void getCollisionIntegralPolynomial(size_t i, size_t j,
133 double* astar_coeffs,
134 double* bstar_coeffs,
135 double* cstar_coeffs) const;
136
137 //! Modify the polynomial fits to the viscosity of species i
138 //! @see fitProperties()
139 virtual void setViscosityPolynomial(size_t i, double* coeffs);
140
141 //! Modify the temperature fits of the heat conductivity of species i
142 //! @see fitProperties()
143 virtual void setConductivityPolynomial(size_t i, double* coeffs);
144
145 //! Modify the polynomial fits to the binary diffusivity of species pair (i, j)
146 //! @see fitDiffCoeffs()
147 virtual void setBinDiffusivityPolynomial(size_t i, size_t j, double* coeffs);
148
149 //! Modify the polynomial fits to the collision integral of species pair (i, j)
150 //! @see fitCollisionIntegrals()
151 virtual void setCollisionIntegralPolynomial(size_t i, size_t j,
152 double* astar_coeffs,
153 double* bstar_coeffs,
154 double* cstar_coeffs, bool actualT);
155
156 virtual void init(ThermoPhase* thermo, int mode=0, int log_level=0);
157
158 //! Boolean indicating the form of the transport properties polynomial fits.
159 //! Returns true if the Chemkin form is used.
160 bool CKMode() const {
161 return m_mode == CK_Mode;
162 }
163
164 protected:
165 GasTransport(ThermoPhase* thermo=0);
166
167 virtual void update_T();
168 virtual void update_C() = 0;
169
170 //! Update the temperature-dependent viscosity terms.
171 /**
172 * Updates the array of pure species viscosities, and the weighting
173 * functions in the viscosity mixture rule. The flag m_visc_ok is set to true.
174 *
175 * The formula for the weighting function is from Poling and Prausnitz,
176 * Eq. (9-5.14):
177 * \f[
178 * \phi_{ij} = \frac{ \left[ 1 + \left( \mu_i / \mu_j \right)^{1/2} \left( M_j / M_i \right)^{1/4} \right]^2 }
179 * {\left[ 8 \left( 1 + M_i / M_j \right) \right]^{1/2}}
180 * \f]
181 */
182 virtual void updateViscosity_T();
183
184 //! Update the pure-species viscosities. These are evaluated from the
185 //! polynomial fits of the temperature and are assumed to be independent
186 //! of pressure.
187 virtual void updateSpeciesViscosities();
188
189 //! Update the binary diffusion coefficients
190 /*!
191 * These are evaluated from the polynomial fits of the temperature at the
192 * unit pressure of 1 Pa.
193 */
194 virtual void updateDiff_T();
195
196 //! @name Initialization
197 //! @{
198
199 //! Setup parameters for a new kinetic-theory-based transport manager for
200 //! low-density gases
201 virtual void setupCollisionParameters();
202
203 //! Setup range for polynomial fits to collision integrals of
204 //! Monchick & Mason
205 void setupCollisionIntegral();
206
207 //! Read the transport database
208 /*!
209 * Read transport property data from a file for a list of species. Given the
210 * name of a file containing transport property parameters and a list of
211 * species names.
212 */
213 void getTransportData();
214
215 //! Corrections for polar-nonpolar binary diffusion coefficients
216 /*!
217 * Calculate corrections to the well depth parameter and the diameter for
218 * use in computing the binary diffusion coefficient of polar-nonpolar
219 * pairs. For more information about this correction, see Dixon-Lewis, Proc.
220 * Royal Society (1968).
221 *
222 * @param i Species one - this is a bimolecular correction routine
223 * @param j species two - this is a bimolecular correction routine
224 * @param f_eps Multiplicative correction factor to be applied to epsilon(i,j)
225 * @param f_sigma Multiplicative correction factor to be applied to diam(i,j)
226 */
227 void makePolarCorrections(size_t i, size_t j, doublereal& f_eps,
228 doublereal& f_sigma);
229
230 //! Generate polynomial fits to collision integrals
231 /*!
232 * @param integrals interpolator for the collision integrals
233 */
234 void fitCollisionIntegrals(MMCollisionInt& integrals);
235
236 //! Generate polynomial fits to the viscosity and conductivity
237 /*!
238 * If CK_mode, then the fits are of the form
239 * \f[
240 * \log(\eta(i)) = \sum_{n = 0}^3 a_n(i) (\log T)^n
241 * \f]
242 * Otherwise the fits are of the form
243 * \f[
244 * \eta(i)/sqrt(k_BT) = \sum_{n = 0}^4 a_n(i) (\log T)^n
245 * \f]
246 *
247 * @param integrals interpolator for the collision integrals
248 */
249 virtual void fitProperties(MMCollisionInt& integrals);
250
251 //! Generate polynomial fits to the binary diffusion coefficients
252 /*!
253 * If CK_mode, then the fits are of the form
254 * \f[
255 * \log(D(i,j)) = \sum_{n = 0}^3 a_n(i,j) (\log T)^n
256 * \f]
257 * Otherwise the fits are of the form
258 * \f[
259 * D(i,j)/sqrt(k_BT)) = \sum_{n = 0}^4 a_n(i,j) (\log T)^n
260 * \f]
261 *
262 * @param integrals interpolator for the collision integrals
263 */
264 virtual void fitDiffCoeffs(MMCollisionInt& integrals);
265
266 //! Second-order correction to the binary diffusion coefficients
267 /*!
268 * Calculate second-order corrections to binary diffusion coefficient pair
269 * (dkj, djk). At first order, the binary diffusion coefficients are
270 * independent of composition, and d(k,j) = d(j,k). But at second order,
271 * there is a weak dependence on composition, with the result that d(k,j) !=
272 * d(j,k). This method computes the multiplier by which the first-order
273 * binary diffusion coefficient should be multiplied to produce the value
274 * correct to second order. The expressions here are taken from Marerro and
275 * Mason, J. Phys. Chem. Ref. Data, vol. 1, p. 3 (1972).
276 *
277 * @param t Temperature (K)
278 * @param integrals interpolator for the collision integrals
279 * @param k index of first species
280 * @param j index of second species
281 * @param xk Mole fraction of species k
282 * @param xj Mole fraction of species j
283 * @param fkj multiplier for d(k,j)
284 * @param fjk multiplier for d(j,k)
285 *
286 * @note This method is not used currently.
287 */
288 void getBinDiffCorrection(doublereal t, MMCollisionInt& integrals, size_t k,
289 size_t j, doublereal xk, doublereal xj,
290 doublereal& fkj, doublereal& fjk);
291
292 //! @}
293
294 //! Vector of species mole fractions. These are processed so that all mole
295 //! fractions are >= *Tiny*. Length = m_kk.
296 vector_fp m_molefracs;
297
298 //! Internal storage for the viscosity of the mixture (kg /m /s)
299 doublereal m_viscmix;
300
301 //! Update boolean for mixture rule for the mixture viscosity
302 bool m_visc_ok;
303
304 //! Update boolean for the weighting factors for the mixture viscosity
305 bool m_viscwt_ok;
306
307 //! Update boolean for the species viscosities
308 bool m_spvisc_ok;
309
310 //! Update boolean for the binary diffusivities at unit pressure
311 bool m_bindiff_ok;
312
313 //! Type of the polynomial fits to temperature. CK_Mode means Chemkin mode.
314 //! Currently CA_Mode is used which are different types of fits to temperature.
315 int m_mode;
316
317 //! m_phi is a Viscosity Weighting Function. size = m_nsp * n_nsp
318 DenseMatrix m_phi;
319
320 //! work space length = m_kk
321 vector_fp m_spwork;
322
323 //! vector of species viscosities (kg /m /s). These are used in Wilke's
324 //! rule to calculate the viscosity of the solution. length = m_kk.
325 vector_fp m_visc;
326
327 //! Polynomial fits to the viscosity of each species. m_visccoeffs[k] is
328 //! the vector of polynomial coefficients for species k that fits the
329 //! viscosity as a function of temperature.
330 std::vector<vector_fp> m_visccoeffs;
331
332 //! Local copy of the species molecular weights.
333 vector_fp m_mw;
334
335 //! Holds square roots of molecular weight ratios
336 /*!
337 * @code
338 * m_wratjk(j,k) = sqrt(mw[j]/mw[k]) j < k
339 * m_wratjk(k,j) = sqrt(sqrt(mw[j]/mw[k])) j < k
340 * @endcode
341 */
342 DenseMatrix m_wratjk;
343
344 //! Holds square roots of molecular weight ratios
345 /*!
346 * `m_wratjk1(j,k) = sqrt(1.0 + mw[k]/mw[j]) j < k`
347 */
348 DenseMatrix m_wratkj1;
349
350 //! vector of square root of species viscosities sqrt(kg /m /s). These are
351 //! used in Wilke's rule to calculate the viscosity of the solution.
352 //! length = m_kk.
353 vector_fp m_sqvisc;
354
355 //! Powers of the ln temperature, up to fourth order
356 vector_fp m_polytempvec;
357
358 //! Current value of the temperature at which the properties in this object
359 //! are calculated (Kelvin).
360 doublereal m_temp;
361
362 //! Current value of Boltzmann constant times the temperature (Joules)
363 doublereal m_kbt;
364
365 //! current value of Boltzmann constant times the temperature.
366 //! (Joules) to 1/2 power
367 doublereal m_sqrt_kbt;
368
369 //! current value of temperature to 1/2 power
370 doublereal m_sqrt_t;
371
372 //! Current value of the log of the temperature
373 doublereal m_logt;
374
375 //! Current value of temperature to 1/4 power
376 doublereal m_t14;
377
378 //! Current value of temperature to the 3/2 power
379 doublereal m_t32;
380
381 //! Polynomial fits to the binary diffusivity of each species
382 /*!
383 * m_diffcoeff[ic] is vector of polynomial coefficients for species i
384 * species j that fits the binary diffusion coefficient. The relationship
385 * between i j and ic is determined from the following algorithm:
386 *
387 * int ic = 0;
388 * for (i = 0; i < m_nsp; i++) {
389 * for (j = i; j < m_nsp; j++) {
390 * ic++;
391 * }
392 * }
393 */
394 std::vector<vector_fp> m_diffcoeffs;
395
396 //! Matrix of binary diffusion coefficients at the reference pressure and
397 //! the current temperature Size is nsp x nsp.
398 DenseMatrix m_bdiff;
399
400 //! temperature fits of the heat conduction
401 /*!
402 * Dimensions are number of species (nsp) polynomial order of the collision
403 * integral fit (degree+1).
404 */
405 std::vector<vector_fp> m_condcoeffs;
406
407 //! Indices for the (i,j) interaction in collision integral fits
408 /*!
409 * m_poly[i][j] contains the index for (i,j) interactions in
410 * #m_omega22_poly, #m_astar_poly, #m_bstar_poly, and #m_cstar_poly.
411 */
412 std::vector<vector_int> m_poly;
413
414 //! Fit for omega22 collision integral
415 /*!
416 * m_omega22_poly[m_poly[i][j]] is the vector of polynomial coefficients
417 * (length degree+1) for the collision integral fit for the species pair
418 * (i,j).
419 */
420 std::vector<vector_fp> m_omega22_poly;
421
422 //! Flag to indicate for which (i,j) interaction pairs the
423 //! actual temperature is used instead of the reduced temperature
424 std::vector<vector_int> m_star_poly_uses_actualT;
425
426 //! Fit for astar collision integral
427 /*!
428 * m_astar_poly[m_poly[i][j]] is the vector of polynomial coefficients
429 * (length degree+1) for the collision integral fit for the species pair
430 * (i,j).
431 */
432 std::vector<vector_fp> m_astar_poly;
433
434 //! Fit for bstar collision integral
435 /*!
436 * m_bstar_poly[m_poly[i][j]] is the vector of polynomial coefficients
437 * (length degree+1) for the collision integral fit for the species pair
438 * (i,j).
439 */
440 std::vector<vector_fp> m_bstar_poly;
441
442 //! Fit for cstar collision integral
443 /*!
444 * m_bstar_poly[m_poly[i][j]] is the vector of polynomial coefficients
445 * (length degree+1) for the collision integral fit for the species pair
446 * (i,j).
447 */
448 std::vector<vector_fp> m_cstar_poly;
449
450 //! Rotational relaxation number for each species
451 /*!
452 * length is the number of species in the phase. units are dimensionless
453 */
454 vector_fp m_zrot;
455
456 //! Dimensionless rotational heat capacity of each species
457 /*!
458 * These values are 0, 1 and 1.5 for single-molecule, linear, and nonlinear
459 * species respectively length is the number of species in the phase.
460 * Dimensionless (Cr / R)
461 */
462 vector_fp m_crot;
463
464 //! Vector of booleans indicating whether a species is a polar molecule
465 /*!
466 * Length is nsp
467 */
468 std::vector<bool> m_polar;
469
470 //! Polarizability of each species in the phase
471 /*!
472 * Length = nsp. Units = m^3
473 */
474 vector_fp m_alpha;
475
476 //! Lennard-Jones well-depth of the species in the current phase
477 /*!
478 * length is the number of species in the phase. Units are Joules (Note this
479 * is not Joules/kmol) (note, no kmol -> this is a per molecule amount)
480 */
481 vector_fp m_eps;
482
483 //! Lennard-Jones diameter of the species in the current phase
484 /*!
485 * length is the number of species in the phase. units are in meters.
486 */
487 vector_fp m_sigma;
488
489 //! This is the reduced mass of the interaction between species i and j
490 /*!
491 * reducedMass(i,j) = mw[i] * mw[j] / (Avogadro * (mw[i] + mw[j]));
492 *
493 * Units are kg (note, no kmol -> this is a per molecule amount)
494 *
495 * Length nsp * nsp. This is a symmetric matrix
496 */
497 DenseMatrix m_reducedMass;
498
499 //! hard-sphere diameter for (i,j) collision
500 /*!
501 * diam(i,j) = 0.5*(sigma[i] + sigma[j]);
502 * Units are m (note, no kmol -> this is a per molecule amount)
503 *
504 * Length nsp * nsp. This is a symmetric matrix.
505 */
506 DenseMatrix m_diam;
507
508 //! The effective well depth for (i,j) collisions
509 /*!
510 * epsilon(i,j) = sqrt(eps[i]*eps[j]);
511 * Units are Joules (note, no kmol -> this is a per molecule amount)
512 *
513 * Length nsp * nsp. This is a symmetric matrix.
514 */
515 DenseMatrix m_epsilon;
516
517 //! The effective dipole moment for (i,j) collisions
518 /*!
519 * Given `dipoleMoment` in Debye (a Debye is 3.335e-30 C-m):
520 *
521 * dipole(i,i) = 1.e-21 / lightSpeed * dipoleMoment;
522 * dipole(i,j) = sqrt(dipole(i,i) * dipole(j,j));
523 * (note, no kmol -> this is a per molecule amount)
524 *
525 * Length nsp * nsp. This is a symmetric matrix.
526 */
527 DenseMatrix m_dipole;
528
529 //! Reduced dipole moment of the interaction between two species
530 /*!
531 * This is the reduced dipole moment of the interaction between two species
532 * 0.5 * dipole(i,j)^2 / (4 * Pi * epsilon_0 * epsilon(i,j) * d^3);
533 *
534 * Length nsp * nsp .This is a symmetric matrix
535 */
536 DenseMatrix m_delta;
537
538 //! Pitzer acentric factor
539 /*!
540 * Length is the number of species in the phase. Dimensionless.
541 */
542 vector_fp m_w_ac;
543
544 //! Dispersion coefficient
545 vector_fp m_disp;
546
547 //! Quadrupole polarizability
548 vector_fp m_quad_polar;
549
550 //! Level of verbose printing during initialization
551 int m_log_level;
552};
553
554} // namespace Cantera
555
556#endif
DenseMatrix.h
Headers for the DenseMatrix object, which deals with dense rectangular matrices and description of th...
TransportBase.h
Headers for the Transport object, which is the virtual base class for all transport property evaluato...
Cantera::DenseMatrix
A class for full (non-sparse) matrices with Fortran-compatible data storage, which adds matrix operat...
Definition: DenseMatrix.h:51
Cantera::GasTransport
Class GasTransport implements some functions and properties that are shared by the MixTransport and M...
Definition: GasTransport.h:31
Cantera::GasTransport::m_logt
doublereal m_logt
Current value of the log of the temperature.
Definition: GasTransport.h:373
Cantera::GasTransport::getTransportData
void getTransportData()
Read the transport database.
Definition: GasTransport.cpp:401
Cantera::GasTransport::setupCollisionParameters
virtual void setupCollisionParameters()
Setup parameters for a new kinetic-theory-based transport manager for low-density gases.
Definition: GasTransport.cpp:310
Cantera::GasTransport::m_polar
std::vector< bool > m_polar
Vector of booleans indicating whether a species is a polar molecule.
Definition: GasTransport.h:468
Cantera::GasTransport::m_mw
vector_fp m_mw
Local copy of the species molecular weights.
Definition: GasTransport.h:333
Cantera::GasTransport::setBinDiffusivityPolynomial
virtual void setBinDiffusivityPolynomial(size_t i, size_t j, double *coeffs)
Modify the polynomial fits to the binary diffusivity of species pair (i, j)
Definition: GasTransport.cpp:891
Cantera::GasTransport::m_molefracs
vector_fp m_molefracs
Vector of species mole fractions.
Definition: GasTransport.h:296
Cantera::GasTransport::m_sqvisc
vector_fp m_sqvisc
vector of square root of species viscosities sqrt(kg /m /s).
Definition: GasTransport.h:353
Cantera::GasTransport::m_condcoeffs
std::vector< vector_fp > m_condcoeffs
temperature fits of the heat conduction
Definition: GasTransport.h:405
Cantera::GasTransport::m_polytempvec
vector_fp m_polytempvec
Powers of the ln temperature, up to fourth order.
Definition: GasTransport.h:356
Cantera::GasTransport::m_omega22_poly
std::vector< vector_fp > m_omega22_poly
Fit for omega22 collision integral.
Definition: GasTransport.h:420
Cantera::GasTransport::fitProperties
virtual void fitProperties(MMCollisionInt &integrals)
Generate polynomial fits to the viscosity and conductivity.
Definition: GasTransport.cpp:514
Cantera::GasTransport::m_visc_ok
bool m_visc_ok
Update boolean for mixture rule for the mixture viscosity.
Definition: GasTransport.h:302
Cantera::GasTransport::getBinDiffusivityPolynomial
virtual void getBinDiffusivityPolynomial(size_t i, size_t j, double *coeffs) const
Return the polynomial fits to the binary diffusivity of species pair (i, j)
Definition: GasTransport.cpp:838
Cantera::GasTransport::m_wratkj1
DenseMatrix m_wratkj1
Holds square roots of molecular weight ratios.
Definition: GasTransport.h:348
Cantera::GasTransport::setCollisionIntegralPolynomial
virtual void setCollisionIntegralPolynomial(size_t i, size_t j, double *astar_coeffs, double *bstar_coeffs, double *cstar_coeffs, bool actualT)
Modify the polynomial fits to the collision integral of species pair (i, j)
Definition: GasTransport.cpp:912
Cantera::GasTransport::getMixDiffCoeffsMass
virtual void getMixDiffCoeffsMass(doublereal *const d)
Returns the mixture-averaged diffusion coefficients [m^2/s].
Definition: GasTransport.cpp:245
Cantera::GasTransport::fitDiffCoeffs
virtual void fitDiffCoeffs(MMCollisionInt &integrals)
Generate polynomial fits to the binary diffusion coefficients.
Definition: GasTransport.cpp:693
Cantera::GasTransport::m_cstar_poly
std::vector< vector_fp > m_cstar_poly
Fit for cstar collision integral.
Definition: GasTransport.h:448
Cantera::GasTransport::getViscosityPolynomial
virtual void getViscosityPolynomial(size_t i, double *coeffs) const
Return the polynomial fits to the viscosity of species i.
Definition: GasTransport.cpp:824
Cantera::GasTransport::updateDiff_T
virtual void updateDiff_T()
Update the binary diffusion coefficients.
Definition: GasTransport.cpp:140
Cantera::GasTransport::m_kbt
doublereal m_kbt
Current value of Boltzmann constant times the temperature (Joules)
Definition: GasTransport.h:363
Cantera::GasTransport::m_wratjk
DenseMatrix m_wratjk
Holds square roots of molecular weight ratios.
Definition: GasTransport.h:342
Cantera::GasTransport::m_bindiff_ok
bool m_bindiff_ok
Update boolean for the binary diffusivities at unit pressure.
Definition: GasTransport.h:311
Cantera::GasTransport::getBinaryDiffCoeffs
virtual void getBinaryDiffCoeffs(const size_t ld, doublereal *const d)
Returns the matrix of binary diffusion coefficients.
Definition: GasTransport.cpp:166
Cantera::GasTransport::m_epsilon
DenseMatrix m_epsilon
The effective well depth for (i,j) collisions.
Definition: GasTransport.h:515
Cantera::GasTransport::m_temp
doublereal m_temp
Current value of the temperature at which the properties in this object are calculated (Kelvin).
Definition: GasTransport.h:360
Cantera::GasTransport::m_disp
vector_fp m_disp
Dispersion coefficient.
Definition: GasTransport.h:545
Cantera::GasTransport::m_diam
DenseMatrix m_diam
hard-sphere diameter for (i,j) collision
Definition: GasTransport.h:506
Cantera::GasTransport::m_t14
doublereal m_t14
Current value of temperature to 1/4 power.
Definition: GasTransport.h:376
Cantera::GasTransport::makePolarCorrections
void makePolarCorrections(size_t i, size_t j, doublereal &f_eps, doublereal &f_sigma)
Corrections for polar-nonpolar binary diffusion coefficients.
Definition: GasTransport.cpp:438
Cantera::GasTransport::m_bstar_poly
std::vector< vector_fp > m_bstar_poly
Fit for bstar collision integral.
Definition: GasTransport.h:440
Cantera::GasTransport::m_mode
int m_mode
Type of the polynomial fits to temperature.
Definition: GasTransport.h:315
Cantera::GasTransport::m_sigma
vector_fp m_sigma
Lennard-Jones diameter of the species in the current phase.
Definition: GasTransport.h:487
Cantera::GasTransport::getBinDiffCorrection
void getBinDiffCorrection(doublereal t, MMCollisionInt &integrals, size_t k, size_t j, doublereal xk, doublereal xj, doublereal &fkj, doublereal &fjk)
Second-order correction to the binary diffusion coefficients.
Definition: GasTransport.cpp:772
Cantera::GasTransport::m_t32
doublereal m_t32
Current value of temperature to the 3/2 power.
Definition: GasTransport.h:379
Cantera::GasTransport::fitCollisionIntegrals
void fitCollisionIntegrals(MMCollisionInt &integrals)
Generate polynomial fits to collision integrals.
Definition: GasTransport.cpp:463
Cantera::GasTransport::updateViscosity_T
virtual void updateViscosity_T()
Update the temperature-dependent viscosity terms.
Definition: GasTransport.cpp:101
Cantera::GasTransport::getMixDiffCoeffsMole
virtual void getMixDiffCoeffsMole(doublereal *const d)
Returns the mixture-averaged diffusion coefficients [m^2/s].
Definition: GasTransport.cpp:215
Cantera::GasTransport::getMixDiffCoeffs
virtual void getMixDiffCoeffs(doublereal *const d)
Returns the Mixture-averaged diffusion coefficients [m^2/s].
Definition: GasTransport.cpp:184
Cantera::GasTransport::setViscosityPolynomial
virtual void setViscosityPolynomial(size_t i, double *coeffs)
Modify the polynomial fits to the viscosity of species i.
Definition: GasTransport.cpp:865
Cantera::GasTransport::m_spvisc_ok
bool m_spvisc_ok
Update boolean for the species viscosities.
Definition: GasTransport.h:308
Cantera::GasTransport::updateSpeciesViscosities
virtual void updateSpeciesViscosities()
Update the pure-species viscosities.
Definition: GasTransport.cpp:122
Cantera::GasTransport::m_poly
std::vector< vector_int > m_poly
Indices for the (i,j) interaction in collision integral fits.
Definition: GasTransport.h:412
Cantera::GasTransport::m_bdiff
DenseMatrix m_bdiff
Matrix of binary diffusion coefficients at the reference pressure and the current temperature Size is...
Definition: GasTransport.h:398
Cantera::GasTransport::getConductivityPolynomial
virtual void getConductivityPolynomial(size_t i, double *coeffs) const
Return the temperature fits of the heat conductivity of species i.
Definition: GasTransport.cpp:831
Cantera::GasTransport::m_visc
vector_fp m_visc
vector of species viscosities (kg /m /s).
Definition: GasTransport.h:325
Cantera::GasTransport::m_dipole
DenseMatrix m_dipole
The effective dipole moment for (i,j) collisions.
Definition: GasTransport.h:527
Cantera::GasTransport::m_zrot
vector_fp m_zrot
Rotational relaxation number for each species.
Definition: GasTransport.h:454
Cantera::GasTransport::init
virtual void init(ThermoPhase *thermo, int mode=0, int log_level=0)
Initialize a transport manager.
Definition: GasTransport.cpp:278
Cantera::GasTransport::m_astar_poly
std::vector< vector_fp > m_astar_poly
Fit for astar collision integral.
Definition: GasTransport.h:432
Cantera::GasTransport::m_reducedMass
DenseMatrix m_reducedMass
This is the reduced mass of the interaction between species i and j.
Definition: GasTransport.h:497
Cantera::GasTransport::m_log_level
int m_log_level
Level of verbose printing during initialization.
Definition: GasTransport.h:551
Cantera::GasTransport::getCollisionIntegralPolynomial
virtual void getCollisionIntegralPolynomial(size_t i, size_t j, double *astar_coeffs, double *bstar_coeffs, double *cstar_coeffs) const
Return the polynomial fits to the collision integral of species pair (i, j)
Definition: GasTransport.cpp:853
Cantera::GasTransport::m_diffcoeffs
std::vector< vector_fp > m_diffcoeffs
Polynomial fits to the binary diffusivity of each species.
Definition: GasTransport.h:394
Cantera::GasTransport::m_eps
vector_fp m_eps
Lennard-Jones well-depth of the species in the current phase.
Definition: GasTransport.h:481
Cantera::GasTransport::setConductivityPolynomial
virtual void setConductivityPolynomial(size_t i, double *coeffs)
Modify the temperature fits of the heat conductivity of species i.
Definition: GasTransport.cpp:878
Cantera::GasTransport::CKMode
bool CKMode() const
Boolean indicating the form of the transport properties polynomial fits.
Definition: GasTransport.h:160
Cantera::GasTransport::getSpeciesViscosities
virtual void getSpeciesViscosities(doublereal *const visc)
Get the pure-species viscosities.
Definition: GasTransport.h:56
Cantera::GasTransport::m_alpha
vector_fp m_alpha
Polarizability of each species in the phase.
Definition: GasTransport.h:474
Cantera::GasTransport::m_crot
vector_fp m_crot
Dimensionless rotational heat capacity of each species.
Definition: GasTransport.h:462
Cantera::GasTransport::m_visccoeffs
std::vector< vector_fp > m_visccoeffs
Polynomial fits to the viscosity of each species.
Definition: GasTransport.h:330
Cantera::GasTransport::m_viscwt_ok
bool m_viscwt_ok
Update boolean for the weighting factors for the mixture viscosity.
Definition: GasTransport.h:305
Cantera::GasTransport::m_delta
DenseMatrix m_delta
Reduced dipole moment of the interaction between two species.
Definition: GasTransport.h:536
Cantera::GasTransport::m_w_ac
vector_fp m_w_ac
Pitzer acentric factor.
Definition: GasTransport.h:542
Cantera::GasTransport::m_phi
DenseMatrix m_phi
m_phi is a Viscosity Weighting Function. size = m_nsp * n_nsp
Definition: GasTransport.h:318
Cantera::GasTransport::setupCollisionIntegral
void setupCollisionIntegral()
Setup range for polynomial fits to collision integrals of Monchick & Mason.
Definition: GasTransport.cpp:371
Cantera::GasTransport::viscosity
virtual doublereal viscosity()
Viscosity of the mixture (kg /m /s)
Definition: GasTransport.cpp:77
Cantera::GasTransport::m_viscmix
doublereal m_viscmix
Internal storage for the viscosity of the mixture (kg /m /s)
Definition: GasTransport.h:299
Cantera::GasTransport::m_quad_polar
vector_fp m_quad_polar
Quadrupole polarizability.
Definition: GasTransport.h:548
Cantera::GasTransport::m_spwork
vector_fp m_spwork
work space length = m_kk
Definition: GasTransport.h:321
Cantera::GasTransport::m_sqrt_kbt
doublereal m_sqrt_kbt
current value of Boltzmann constant times the temperature.
Definition: GasTransport.h:367
Cantera::GasTransport::m_star_poly_uses_actualT
std::vector< vector_int > m_star_poly_uses_actualT
Flag to indicate for which (i,j) interaction pairs the actual temperature is used instead of the redu...
Definition: GasTransport.h:424
Cantera::GasTransport::m_sqrt_t
doublereal m_sqrt_t
current value of temperature to 1/2 power
Definition: GasTransport.h:370
Cantera::MMCollisionInt
Calculation of Collision integrals.
Definition: MMCollisionInt.h:26
Cantera::ThermoPhase
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:102
Cantera::Transport
Base class for transport property managers.
Definition: TransportBase.h:138
Cantera::Transport::thermo
ThermoPhase & thermo()
Definition: TransportBase.h:170
Cantera
Namespace for the Cantera kernel.
Definition: AnyMap.cpp:557
Cantera::vector_fp
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:184