1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // Antioch - A Gas Dynamics Thermochemistry Library
5 //
6 // Copyright (C) 2014-2016 Paul T. Bauman, Benjamin S. Kirk,
7 //                         Sylvain Plessis, Roy H. Stonger
8 //
9 // Copyright (C) 2013 The PECOS Development Team
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the Version 2.1 GNU Lesser General
13 // Public License as published by the Free Software Foundation.
14 //
15 // This library is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
23 // Boston, MA  02110-1301  USA
24 //
25 //-----------------------------------------------------------------------el-
26 
27 #ifndef ANTIOCH_KINETICS_ENUM_H
28 #define ANTIOCH_KINETICS_ENUM_H
29 
30 /*!
31  * The parameters are reduced parameters. The complete Van't Hoff
32  * equation is (all the others are deductible from it)
33  * \f$k(T) = A * \left(\frac{T}{\mathrm{T_0}}\right)^\beta \exp\left(-\frac{E_a}{\mathrm{R}T} + D T\right)\f$
34  * with \f$\mathrm{T_0}\f$ being a reference temperature and \f$\mathrm{R}\f$
35  * the ideal gas constant.
36  * The reduced parameters are:
37  * \f[
38  *     \begin{array}{ccc}\toprule
39  *     \text{Parameter} & \text{reduced parameter} \\\midrule
40  *     A         &  A \mathrm{T_0}^\beta \\
41  *     \beta     &  \beta      \\
42  *     E_a       &  \frac{E_a}{\mathrm{R}}\\
43  *     D         &  D\\\bottomrule
44  *     \end{array}
45  * \f]
46  *
47  * This library is intended for performances, thus the reference temperature is taken equal
48  * to one in order to skip the division step (\f$\frac{T}{\mathrm{T_0}}\f$). This
49  * is \e not an option, this is an \e obligation: the kinetics equations are coded without the
50  * division step.
51  */
52 namespace Antioch
53 {
54   namespace KineticsModel
55   {
56 
57     enum KineticsModel { CONSTANT = 0,   // A
58                          HERCOURT_ESSEN, // A * T^beta
59                          BERTHELOT,      // A * exp(D*T)
60                          ARRHENIUS,      // A * exp(-Ea/T)
61                          BHE,            // A * T^beta * exp(D*T)
62                          KOOIJ,          // A * T^beta * exp(-Ea/T)
63                          VANTHOFF,       // A * T^beta * exp(-Ea/T + D*T)
64                          PHOTOCHEM };    // int_0^\infty f(\lambda)\sigma(\lambda) d\lambda = const(T)
65 
66     template<typename CoeffType>
Tref()67     CoeffType Tref()
68     {
69       return 1.0; // this HAS to stay this way because it is hard-coded for performances (see eq. above)
70     }
71 
72     enum Parameters{ NOT_FOUND = 0,
73                      A,
74                      B,
75                      E,
76                      D,
77                      T_REF,
78                      R_SCALE,
79                      SIGMA,
80                      LAMBDA,
81         // now for the falloff, we need to know if we want
82         // the low-pressure limit or HIGH
83                      LOW_PRESSURE,
84                      HIGH_PRESSURE
85                    };
86 
87   } // end namespace KineticsModel
88 
89 } // end namespace Antioch
90 
91 #endif // ANTIOCH_REACTION_ENUM_H
92