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"
13
14namespace Cantera
15{
16
17class 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
30class GasTransport : public Transport
31{
32public:
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();
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
164protected:
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
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.
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
303
304 //! Update boolean for the weighting factors for the mixture viscosity
306
307 //! Update boolean for the species viscosities
309
310 //! Update boolean for the binary diffusivities at unit pressure
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.
316
317 //! m_phi is a Viscosity Weighting Function. size = m_nsp * n_nsp
319
320 //! work space length = m_kk
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.
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.
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 */
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 */
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.
354
355 //! Powers of the ln temperature, up to fourth order
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.
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
537
538 //! Pitzer acentric factor
539 /*!
540 * Length is the number of species in the phase. Dimensionless.
541 */
543
544 //! Dispersion coefficient
546
547 //! Quadrupole polarizability
549
550 //! Level of verbose printing during initialization
552};
553
554} // namespace Cantera
555
556#endif
Headers for the DenseMatrix object, which deals with dense rectangular matrices and description of th...
Headers for the Transport object, which is the virtual base class for all transport property evaluato...
A class for full (non-sparse) matrices with Fortran-compatible data storage, which adds matrix operat...
Definition: DenseMatrix.h:51
Class GasTransport implements some functions and properties that are shared by the MixTransport and M...
Definition: GasTransport.h:31
doublereal m_logt
Current value of the log of the temperature.
Definition: GasTransport.h:373
void getTransportData()
Read the transport database.
virtual void setupCollisionParameters()
Setup parameters for a new kinetic-theory-based transport manager for low-density gases.
std::vector< bool > m_polar
Vector of booleans indicating whether a species is a polar molecule.
Definition: GasTransport.h:468
vector_fp m_mw
Local copy of the species molecular weights.
Definition: GasTransport.h:333
virtual void setBinDiffusivityPolynomial(size_t i, size_t j, double *coeffs)
Modify the polynomial fits to the binary diffusivity of species pair (i, j)
vector_fp m_molefracs
Vector of species mole fractions.
Definition: GasTransport.h:296
vector_fp m_sqvisc
vector of square root of species viscosities sqrt(kg /m /s).
Definition: GasTransport.h:353
std::vector< vector_fp > m_condcoeffs
temperature fits of the heat conduction
Definition: GasTransport.h:405
vector_fp m_polytempvec
Powers of the ln temperature, up to fourth order.
Definition: GasTransport.h:356
std::vector< vector_fp > m_omega22_poly
Fit for omega22 collision integral.
Definition: GasTransport.h:420
virtual void fitProperties(MMCollisionInt &integrals)
Generate polynomial fits to the viscosity and conductivity.
bool m_visc_ok
Update boolean for mixture rule for the mixture viscosity.
Definition: GasTransport.h:302
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)
DenseMatrix m_wratkj1
Holds square roots of molecular weight ratios.
Definition: GasTransport.h:348
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)
virtual void getMixDiffCoeffsMass(doublereal *const d)
Returns the mixture-averaged diffusion coefficients [m^2/s].
virtual void fitDiffCoeffs(MMCollisionInt &integrals)
Generate polynomial fits to the binary diffusion coefficients.
std::vector< vector_fp > m_cstar_poly
Fit for cstar collision integral.
Definition: GasTransport.h:448
virtual void getViscosityPolynomial(size_t i, double *coeffs) const
Return the polynomial fits to the viscosity of species i.
virtual void updateDiff_T()
Update the binary diffusion coefficients.
doublereal m_kbt
Current value of Boltzmann constant times the temperature (Joules)
Definition: GasTransport.h:363
DenseMatrix m_wratjk
Holds square roots of molecular weight ratios.
Definition: GasTransport.h:342
bool m_bindiff_ok
Update boolean for the binary diffusivities at unit pressure.
Definition: GasTransport.h:311
virtual void getBinaryDiffCoeffs(const size_t ld, doublereal *const d)
Returns the matrix of binary diffusion coefficients.
DenseMatrix m_epsilon
The effective well depth for (i,j) collisions.
Definition: GasTransport.h:515
doublereal m_temp
Current value of the temperature at which the properties in this object are calculated (Kelvin).
Definition: GasTransport.h:360
vector_fp m_disp
Dispersion coefficient.
Definition: GasTransport.h:545
DenseMatrix m_diam
hard-sphere diameter for (i,j) collision
Definition: GasTransport.h:506
doublereal m_t14
Current value of temperature to 1/4 power.
Definition: GasTransport.h:376
void makePolarCorrections(size_t i, size_t j, doublereal &f_eps, doublereal &f_sigma)
Corrections for polar-nonpolar binary diffusion coefficients.
std::vector< vector_fp > m_bstar_poly
Fit for bstar collision integral.
Definition: GasTransport.h:440
int m_mode
Type of the polynomial fits to temperature.
Definition: GasTransport.h:315
vector_fp m_sigma
Lennard-Jones diameter of the species in the current phase.
Definition: GasTransport.h:487
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.
doublereal m_t32
Current value of temperature to the 3/2 power.
Definition: GasTransport.h:379
void fitCollisionIntegrals(MMCollisionInt &integrals)
Generate polynomial fits to collision integrals.
virtual void updateViscosity_T()
Update the temperature-dependent viscosity terms.
virtual void getMixDiffCoeffsMole(doublereal *const d)
Returns the mixture-averaged diffusion coefficients [m^2/s].
virtual void getMixDiffCoeffs(doublereal *const d)
Returns the Mixture-averaged diffusion coefficients [m^2/s].
virtual void setViscosityPolynomial(size_t i, double *coeffs)
Modify the polynomial fits to the viscosity of species i.
bool m_spvisc_ok
Update boolean for the species viscosities.
Definition: GasTransport.h:308
virtual void updateSpeciesViscosities()
Update the pure-species viscosities.
std::vector< vector_int > m_poly
Indices for the (i,j) interaction in collision integral fits.
Definition: GasTransport.h:412
DenseMatrix m_bdiff
Matrix of binary diffusion coefficients at the reference pressure and the current temperature Size is...
Definition: GasTransport.h:398
virtual void getConductivityPolynomial(size_t i, double *coeffs) const
Return the temperature fits of the heat conductivity of species i.
vector_fp m_visc
vector of species viscosities (kg /m /s).
Definition: GasTransport.h:325
DenseMatrix m_dipole
The effective dipole moment for (i,j) collisions.
Definition: GasTransport.h:527
vector_fp m_zrot
Rotational relaxation number for each species.
Definition: GasTransport.h:454
virtual void init(ThermoPhase *thermo, int mode=0, int log_level=0)
Initialize a transport manager.
std::vector< vector_fp > m_astar_poly
Fit for astar collision integral.
Definition: GasTransport.h:432
DenseMatrix m_reducedMass
This is the reduced mass of the interaction between species i and j.
Definition: GasTransport.h:497
int m_log_level
Level of verbose printing during initialization.
Definition: GasTransport.h:551
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)
std::vector< vector_fp > m_diffcoeffs
Polynomial fits to the binary diffusivity of each species.
Definition: GasTransport.h:394
vector_fp m_eps
Lennard-Jones well-depth of the species in the current phase.
Definition: GasTransport.h:481
virtual void setConductivityPolynomial(size_t i, double *coeffs)
Modify the temperature fits of the heat conductivity of species i.
bool CKMode() const
Boolean indicating the form of the transport properties polynomial fits.
Definition: GasTransport.h:160
virtual void getSpeciesViscosities(doublereal *const visc)
Get the pure-species viscosities.
Definition: GasTransport.h:56
vector_fp m_alpha
Polarizability of each species in the phase.
Definition: GasTransport.h:474
vector_fp m_crot
Dimensionless rotational heat capacity of each species.
Definition: GasTransport.h:462
std::vector< vector_fp > m_visccoeffs
Polynomial fits to the viscosity of each species.
Definition: GasTransport.h:330
bool m_viscwt_ok
Update boolean for the weighting factors for the mixture viscosity.
Definition: GasTransport.h:305
DenseMatrix m_delta
Reduced dipole moment of the interaction between two species.
Definition: GasTransport.h:536
vector_fp m_w_ac
Pitzer acentric factor.
Definition: GasTransport.h:542
DenseMatrix m_phi
m_phi is a Viscosity Weighting Function. size = m_nsp * n_nsp
Definition: GasTransport.h:318
void setupCollisionIntegral()
Setup range for polynomial fits to collision integrals of Monchick & Mason.
virtual doublereal viscosity()
Viscosity of the mixture (kg /m /s)
doublereal m_viscmix
Internal storage for the viscosity of the mixture (kg /m /s)
Definition: GasTransport.h:299
vector_fp m_quad_polar
Quadrupole polarizability.
Definition: GasTransport.h:548
vector_fp m_spwork
work space length = m_kk
Definition: GasTransport.h:321
doublereal m_sqrt_kbt
current value of Boltzmann constant times the temperature.
Definition: GasTransport.h:367
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
doublereal m_sqrt_t
current value of temperature to 1/2 power
Definition: GasTransport.h:370
Calculation of Collision integrals.
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:102
Base class for transport property managers.
ThermoPhase & thermo()
Namespace for the Cantera kernel.
Definition: AnyMap.h:29
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