Loading [MathJax]/extensions/tex2jax.js
Cantera  3.2.0a1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
MMCollisionInt.h
Go to the documentation of this file.
1/**
2 * @file MMCollisionInt.h
3 * Monchick and Mason collision integrals
4 */
5
6// This file is part of Cantera. See License.txt in the top-level directory or
7// at https://cantera.org/license.txt for license and copyright information.
8
9#ifndef CT_MMCOLLISIONINT_H
10#define CT_MMCOLLISIONINT_H
11
13
14namespace Cantera
15{
16
17//! Calculation of Collision integrals
18/**
19 * This class provides functions that interpolate the tabulated collision integrals in
20 * Monchick and Mason @cite monchick1961.
21 *
22 * The collision integrals computed by Monchick and Mason use the Stockmayer potential,
23 * which models a polar molecule as a spherical potential with a point dipole at the
24 * center). Equation 16 of Monchick and Mason @cite monchick1961 gives the potential
25 * as:
26 *
27 * @f[
28 * \phi(r) = 4 \epsilon_0 \left[ \left(\frac{\sigma_0}{r}\right)^{12} - \left(\frac{\sigma_0}{r}\right)^6 + \delta \left(\frac{\sigma_0}{r}\right)^3 \right]
29 * @f]
30 *
31 * Where @f$ \epsilon_0 @f$ is the depth of the potential well, @f$ \sigma_0 @f$ is the
32 * distance at which the potential between the two molecules is zero, @f$ \delta @f$ is
33 * defined as:
34 *
35 * @f[
36 * \delta = \frac{1}{4} (\mu^*)^2 \zeta \left( \theta_1, \theta_2, \phi \right)
37 * @f]
38 *
39 * @f$ \mu^* @f$ is the reduced dipole moment. @f$ \theta_1 @f$ , @f$ \theta_2 @f$ ,
40 * and @f$ \phi @f$ are angles related to trajectories of colliding molecules. In the
41 * work of Monchick and Mason, these details are not what is presented in the tables.
42 * Instead, the tables are presented as being functions of the reduced temperature,
43 * @f$ T^* @f$, and the @f$ \delta @f$ parameter. The reduced dipole moment,
44 * @f$ \mu^* @f$ is defined as:
45 *
46 * @f[
47 * \mu^* = \frac{\mu}{\sqrt{\epsilon_0 \sigma_0^3}}
48 * @f]
49 *
50 * Where @f$ \mu @f$ is the dipole moment of the molecule and the other parameters
51 * have been defined earlier. This work considers only the collisions of like
52 * molecules, so only a single value is needed.
53 *
54 * The tabulated data comes from the averaged collision integrals in tables
55 * V through VIII of Monchick and Mason @cite monchick1961.
56 *
57 * @ingroup tranprops
58 */
60{
61public:
63 virtual ~MMCollisionInt() {}
64
65 //! Initialize the object for calculation
66 /*!
67 * @param tsmin Minimum value of Tstar to carry out the fitting
68 * @param tsmax Maximum value of Tstar to carry out the fitting
69 */
70 void init(double tsmin, double tsmax);
71
72 double omega22(double ts, double deltastar);
73 double astar(double ts, double deltastar);
74 double bstar(double ts, double deltastar);
75 double cstar(double ts, double deltastar);
76 void fit(int degree, double deltastar, double* astar, double* bstar, double* cstar);
77 void fit_omega22(int degree, double deltastar, double* om22);
78 double omega11(double ts, double deltastar) {
79 return omega22(ts, deltastar)/astar(ts, deltastar);
80 }
81
82private:
83 double fitDelta(int table, int ntstar, int degree, double* c);
84 double quadInterp(double x0, double* x, double* y);
85
86 vector<vector<double>> m_o22poly;
87 vector<vector<double>> m_apoly;
88 vector<vector<double>> m_bpoly;
89 vector<vector<double>> m_cpoly;
90
91 static double delta[8];
92 static double tstar22[37];
93
94 //! Table of omega22 values
95 static double omega22_table[37*8];
96
97 //! T* values (reduced temperature)
98 static double tstar[39];
99
100 //! astar table
101 static double astar_table[39*8];
102
103 //! bstar table
104 static double bstar_table[39*8];
105
106 //! cstar table
107 static double cstar_table[39*8];
108
109 //! Log temp
110 vector<double> m_logTemp;
111
112 //! Index of the tstar array that encompasses the minimum temperature
113 //! fitting range value of tsmin.
115
116 //! Index of the tstar array that encompasses the maximum temperature
117 //! fitting range value of tsmax.
119};
120
121}
122#endif
Calculation of Collision integrals.
int m_nmin
Index of the tstar array that encompasses the minimum temperature fitting range value of tsmin.
void init(double tsmin, double tsmax)
Initialize the object for calculation.
int m_nmax
Index of the tstar array that encompasses the maximum temperature fitting range value of tsmax.
static double astar_table[39 *8]
astar table
static double cstar_table[39 *8]
cstar table
static double tstar[39]
T* values (reduced temperature)
static double omega22_table[37 *8]
Table of omega22 values.
static double bstar_table[39 *8]
bstar table
vector< double > m_logTemp
Log temp.
This file contains definitions of constants, types and terms that are used in internal routines and a...
Namespace for the Cantera kernel.
Definition AnyMap.cpp:595