ReversibleReaction.C
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 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 #include "ReversibleReaction.H"
29 
30 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
31 
32 template
33 <
34  template<class> class ReactionType,
35  class ReactionThermo,
36  class ReactionRate
37 >
40 (
41  const ReactionType<ReactionThermo>& reaction,
42  const ReactionRate& k
43 )
44 :
45  ReactionType<ReactionThermo>(reaction),
46  k_(k)
47 {}
48 
49 
50 template
51 <
52  template<class> class ReactionType,
53  class ReactionThermo,
54  class ReactionRate
55 >
58 (
59  const speciesTable& species,
60  const HashPtrTable<ReactionThermo>& thermoDatabase,
61  const dictionary& dict
62 )
63 :
64  ReactionType<ReactionThermo>(species, thermoDatabase, dict),
65  k_(species, dict)
66 {}
67 
68 
69 template
70 <
71  template<class> class ReactionType,
72  class ReactionThermo,
73  class ReactionRate
74 >
77 (
79  const speciesTable& species
80 )
81 :
82  ReactionType<ReactionThermo>(rr, species),
83  k_(rr.k_)
84 {}
85 
86 
87 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
88 
89 template
90 <
91  template<class> class ReactionType,
92  class ReactionThermo,
93  class ReactionRate
94 >
95 Foam::scalar Foam::ReversibleReaction
96 <
97  ReactionType,
98  ReactionThermo,
99  ReactionRate
100 >::kf
101 (
102  const scalar p,
103  const scalar T,
104  const scalarField& c
105 ) const
106 {
107  return k_(p, T, c);
108 }
109 
110 
111 template
112 <
113  template<class> class ReactionType,
114  class ReactionThermo,
115  class ReactionRate
116 >
117 Foam::scalar Foam::ReversibleReaction
118 <
119  ReactionType,
120  ReactionThermo,
121  ReactionRate
122 >::kr
123 (
124  const scalar kfwd,
125  const scalar p,
126  const scalar T,
127  const scalarField& c
128 ) const
129 {
130  return kfwd/max(this->Kc(p, T), 1e-6);
131 }
132 
133 
134 template
135 <
136  template<class> class ReactionType,
137  class ReactionThermo,
138  class ReactionRate
139 >
140 Foam::scalar Foam::ReversibleReaction
141 <
142  ReactionType,
143  ReactionThermo,
144  ReactionRate
145 >::kr
146 (
147  const scalar p,
148  const scalar T,
149  const scalarField& c
150 ) const
151 {
152  return kr(kf(p, T, c), p, T, c);
153 }
154 
155 
156 template
157 <
158  template<class> class ReactionType,
159  class ReactionThermo,
160  class ReactionRate
161 >
163 <
164  ReactionType,
165  ReactionThermo,
166  ReactionRate
167 >::write
168 (
169  Ostream& os
170 ) const
171 {
173  k_.write(os);
174 }
175 
176 
177 // ************************************************************************* //
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::ReversibleReaction
Simple extension of Reaction to handle reversible reactions using equilibrium thermodynamics.
Definition: ReversibleReaction.H:61
Foam::Field< scalar >
Foam::hashedWordList
A wordList with hashed named lookup, which can be faster in some situations than using the normal lis...
Definition: hashedWordList.H:54
Foam::max
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Definition: hashSets.C:47
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
T
const volScalarField & T
Definition: createFieldRefs.H:2
reaction
CombustionModel< rhoReactionThermo > & reaction
Definition: setRegionFluidFields.H:3
ReversibleReaction.H
Foam::HashPtrTable
A HashTable of pointers to objects of type <T>, with deallocation management of the pointers.
Definition: HashPtrTable.H:54
Foam::ReversibleReaction::ReversibleReaction
ReversibleReaction(const ReactionType< ReactionThermo > &reaction, const ReactionRate &k)
Construct from components.
Definition: ReversibleReaction.C:40
k
label k
Boltzmann constant.
Definition: LISASMDCalcMethod2.H:41
Foam::constant::electromagnetic::e
const dimensionedScalar e
Elementary charge.
Definition: createFields.H:11
Foam::vtk::write
void write(vtk::formatter &fmt, const Type &val, const label n=1)
Component-wise write of a value (N times)
Definition: foamVtkOutputTemplates.C:35
Foam::constant::universal::c
const dimensionedScalar c
Speed of light in a vacuum.
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:56