makeSolidReaction.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2017 OpenFOAM Foundation
9  Copyright (C) 2021 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 InClass
28  Foam::makeSolidReaction
29 
30 Description
31  Macros for instantiating reactions for solid
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef makeSolidReaction_H
36 #define makeSolidReaction_H
37 
38 #include "solidReaction.H"
39 #include "IrreversibleReaction.H"
40 #include "Reaction.H"
41 
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 
51 #define makeSolidReaction(ReactionType, Thermo, ReactionRate) \
52  \
53  typedef solidReaction<Thermo> solidReaction##Thermo; \
54  \
55  typedef Reaction<Thermo> Reaction##Thermo; \
56  \
57  typedef ReactionType<solidReaction, Thermo, ReactionRate> \
58  ReactionType##Thermo##ReactionRate; \
59  \
60  template<> \
61  const word ReactionType##Thermo##ReactionRate::typeName \
62  ( \
63  ReactionType::typeName_() \
64  + ReactionRate::type() \
65  + solidReaction##Thermo::typeName_() \
66  ); \
67  \
68  addToRunTimeSelectionTable \
69  ( \
70  Reaction##Thermo, \
71  ReactionType##Thermo##ReactionRate, \
72  dictionary \
73  );
74 
75 #define makeSolidIRReactions(Thermo, ReactionRate) \
76  \
77  makeSolidReaction(IrreversibleReaction, Thermo, ReactionRate)
78 
79 
80 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
81 
82 } // End namespace Foam
83 
84 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
85 
86 #endif
87 
88 // ************************************************************************* //
Macros for easy insertion into run-time selection tables.
Namespace for OpenFOAM.