chemistrySolvers.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #include "noChemistrySolver.H"
27 #include "EulerImplicit.H"
28 #include "ode.H"
29 
30 #include "StandardChemistryModel.H"
31 #include "TDACChemistryModel.H"
32 
33 #include "psiReactionThermo.H"
34 #include "rhoReactionThermo.H"
35 
36 #include "forCommonGases.H"
37 #include "forCommonLiquids.H"
38 #include "forPolynomials.H"
39 #include "makeChemistrySolver.H"
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 #define defineChemistrySolvers(ReactionThermo, ThermoPhysics) \
44  defineChemistrySolver \
45  ( \
46  StandardChemistryModel, \
47  ReactionThermo, \
48  ThermoPhysics \
49  ); \
50  defineChemistrySolver \
51  ( \
52  TDACChemistryModel, \
53  ReactionThermo, \
54  ThermoPhysics \
55  )
56 
57 #define makeChemistrySolvers(Solver, ReactionThermo, ThermoPhysics) \
58  makeChemistrySolver \
59  ( \
60  Solver, \
61  StandardChemistryModel, \
62  ReactionThermo, \
63  ThermoPhysics \
64  ); \
65  makeChemistrySolver \
66  ( \
67  Solver, \
68  TDACChemistryModel, \
69  ReactionThermo, \
70  ThermoPhysics \
71  )
72 
73 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
74 
75 namespace Foam
76 {
77  forCommonGases(defineChemistrySolvers, psiReactionThermo);
78  forCommonGases(defineChemistrySolvers, rhoReactionThermo);
79 
80  forCommonGases(makeChemistrySolvers, noChemistrySolver, psiReactionThermo);
81  forCommonGases(makeChemistrySolvers, noChemistrySolver, rhoReactionThermo);
82  forCommonGases(makeChemistrySolvers, EulerImplicit, psiReactionThermo);
83  forCommonGases(makeChemistrySolvers, EulerImplicit, rhoReactionThermo);
84  forCommonGases(makeChemistrySolvers, ode, psiReactionThermo);
85  forCommonGases(makeChemistrySolvers, ode, rhoReactionThermo);
86 
87  forCommonLiquids(defineChemistrySolvers, rhoReactionThermo);
88 
90  (
92  noChemistrySolver,
93  rhoReactionThermo
94  );
95  forCommonLiquids(makeChemistrySolvers, EulerImplicit, rhoReactionThermo);
96  forCommonLiquids(makeChemistrySolvers, ode, rhoReactionThermo);
97 
98  forPolynomials(defineChemistrySolvers, rhoReactionThermo);
99 
100  forPolynomials(makeChemistrySolvers, noChemistrySolver, rhoReactionThermo);
101  forPolynomials(makeChemistrySolvers, EulerImplicit, rhoReactionThermo);
102  forPolynomials(makeChemistrySolvers, ode, rhoReactionThermo);
103 }
104 
105 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
forCommonGases(makeThermoCombustionModel, diffusion, psiReactionThermo)
#define defineChemistrySolvers(ReactionThermo, ThermoPhysics)
#define makeChemistrySolvers(Solver, ReactionThermo, ThermoPhysics)
forPolynomials(makeThermos, rhoThermo, heRhoThermo, pureMixture)
forCommonLiquids(defineChemistryReductionMethod, rhoReactionThermo)
Namespace for OpenFOAM.