Cantera
Install
User Guide
Examples
Reference
Develop
Community
4.0.0a2
Toggle main menu visibility
Loading...
Searching...
No Matches
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
12
#include "
cantera/base/ct_defs.h
"
13
14
namespace
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
*/
59
class
MMCollisionInt
60
{
61
public
:
62
MMCollisionInt() {}
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, span<double> astar, span<double> bstar,
77
span<double> cstar);
78
void
fit_omega22(
int
degree,
double
deltastar, span<double> om22);
79
double
omega11(
double
ts,
double
deltastar) {
80
return
omega22(ts, deltastar)/astar(ts, deltastar);
81
}
82
83
private
:
84
double
fitDelta(
int
table,
int
ntstar,
int
degree, span<double> c);
85
double
quadInterp(
double
x0, span<const double> x, span<const double> y);
86
87
vector<vector<double>> m_o22poly;
88
vector<vector<double>> m_apoly;
89
vector<vector<double>> m_bpoly;
90
vector<vector<double>> m_cpoly;
91
92
static
std::array<double, 8> delta;
93
static
std::array<double, 37> tstar22;
94
95
//! Table of omega22 values
96
static
std::array<double, 37*8>
omega22_table
;
97
98
//! T* values (reduced temperature)
99
static
std::array<double, 39>
tstar
;
100
101
//! astar table
102
static
std::array<double, 39*8>
astar_table
;
103
104
//! bstar table
105
static
std::array<double, 39*8>
bstar_table
;
106
107
//! cstar table
108
static
std::array<double, 39*8>
cstar_table
;
109
110
//! Log temp
111
vector<double>
m_logTemp
;
112
113
//! Index of the tstar array that encompasses the minimum temperature
114
//! fitting range value of tsmin.
115
int
m_nmin
;
116
117
//! Index of the tstar array that encompasses the maximum temperature
118
//! fitting range value of tsmax.
119
int
m_nmax
;
120
};
121
122
}
123
#endif
Cantera::MMCollisionInt::m_nmin
int m_nmin
Index of the tstar array that encompasses the minimum temperature fitting range value of tsmin.
Definition
MMCollisionInt.h:115
Cantera::MMCollisionInt::astar_table
static std::array< double, 39 *8 > astar_table
astar table
Definition
MMCollisionInt.h:102
Cantera::MMCollisionInt::init
void init(double tsmin, double tsmax)
Initialize the object for calculation.
Definition
MMCollisionInt.cpp:217
Cantera::MMCollisionInt::bstar_table
static std::array< double, 39 *8 > bstar_table
bstar table
Definition
MMCollisionInt.h:105
Cantera::MMCollisionInt::tstar
static std::array< double, 39 > tstar
T* values (reduced temperature).
Definition
MMCollisionInt.h:99
Cantera::MMCollisionInt::m_nmax
int m_nmax
Index of the tstar array that encompasses the maximum temperature fitting range value of tsmax.
Definition
MMCollisionInt.h:119
Cantera::MMCollisionInt::cstar_table
static std::array< double, 39 *8 > cstar_table
cstar table
Definition
MMCollisionInt.h:108
Cantera::MMCollisionInt::omega22_table
static std::array< double, 37 *8 > omega22_table
Table of omega22 values.
Definition
MMCollisionInt.h:96
Cantera::MMCollisionInt::m_logTemp
vector< double > m_logTemp
Log temp.
Definition
MMCollisionInt.h:111
ct_defs.h
This file contains definitions of constants, types and terms that are used in internal routines and a...
Cantera
Namespace for the Cantera kernel.
Definition
AnyMap.cpp:595
src
transport
MMCollisionInt.h
Generated by
1.17.0