SCOPELaminarFlameSpeed.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-2012 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
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
26Class
27 Foam::laminarFlameSpeedModels::SCOPE
28
29Description
30 Laminar flame speed obtained from the SCOPE correlation.
31
32 Seven parameters are specified in terms of polynomial functions of
33 stoichiometry. Two polynomials are fitted, covering different parts of the
34 flammable range. If the mixture is outside the fitted range, linear
35 interpolation is used between the extreme of the polynomio and the upper or
36 lower flammable limit with the Markstein number constant.
37
38 Variations of pressure and temperature from the reference values are taken
39 into account through \f$ pexp \f$ and \f$ texp \f$
40
41 The laminar burning velocity fitting polynomial is:
42
43 \f$ Su = a_{0}(1+a_{1}x+K+..a_{i}x^{i}..+a_{6}x^{6}) (p/p_{ref})^{pexp}
44 (T/T_{ref})^{texp} \f$
45
46 where:
47
48 \f$ a_{i} \f$ are the polinomial coefficients.
49
50 \f$ pexp \f$ and \f$ texp \f$ are the pressure and temperature factors
51 respectively.
52
53 \f$ x \f$ is the equivalence ratio.
54
55 \f$ T_{ref} \f$ and \f$ p_{ref} \f$ are the temperature and pressure
56 references for the laminar burning velocity.
57
58
59SourceFiles
60 SCOPELaminarFlameSpeed.C
61
62\*---------------------------------------------------------------------------*/
63
64#ifndef SCOPE_H
65#define SCOPE_H
66
67#include "laminarFlameSpeed.H"
68
69// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70
71namespace Foam
72{
73namespace laminarFlameSpeedModels
74{
75
76/*---------------------------------------------------------------------------*\
77 Class SCOPE Declaration
78\*---------------------------------------------------------------------------*/
80class SCOPE
81:
83{
84 // Private Data
85
86 class polynomial
87 :
88 public FixedList<scalar, 7>
89 {
90 public:
91
92 //- Lower limit
93 scalar ll;
94
95 //- Upper polynomial limit
96 scalar ul;
97
98 //- Value at lower limit
99 scalar llv;
100
101 //- Value at upper limit
102 scalar ulv;
103
104 //- Changeover point from lower to upper polynomial
105 scalar lu;
106
107 //- Construct from dictionary
108 polynomial(const dictionary& polyDict);
109 };
110
111
112 dictionary coeffsDict_;
113
114 //- Lower flammability limit
115 scalar LFL_;
116
117 //- Upper flammability limit
118 scalar UFL_;
119
120 //- Lower Su polynomial
121 polynomial SuPolyL_;
122
123 //- Upper Su polynomial
124 polynomial SuPolyU_;
125
126 //- Temperature correction exponent
127 scalar Texp_;
128
129 //- Pressure correction exponent
130 scalar pexp_;
131
132 //- Lower Ma polynomial
133 polynomial MaPolyL_;
134
135 //- Upper Ma polynomial
136 polynomial MaPolyU_;
137
138
139 // Private member functions
140
141 //- Polynomial evaluated from the given equivalence ratio
142 // and polynomial coefficients
143 static inline scalar polyPhi(scalar phi, const polynomial& a);
144
145 //- Laminar flame speed evaluated from the given equivalence ratio
146 // at the reference temperature and pressure
147 inline scalar SuRef(scalar phi) const;
148
149 //- Markstein evaluated from the given equivalence ratio
150 inline scalar Ma(scalar phi) const;
151
152 //- Laminar flame speed evaluated from the given equivalence ratio
153 // corrected for temperature and pressure dependence
154 inline scalar Su0pTphi(scalar p, scalar Tu, scalar phi) const;
155
156 //- Laminar flame speed evaluated from the given uniform
157 // equivalence ratio corrected for temperature and pressure dependence
158 tmp<volScalarField> Su0pTphi
159 (
160 const volScalarField& p,
161 const volScalarField& Tu,
162 scalar phi
163 ) const;
164
165 //- Laminar flame speed evaluated from the given equivalence ratio
166 // distribution corrected for temperature and pressure dependence
167 tmp<volScalarField> Su0pTphi
168 (
169 const volScalarField& p,
170 const volScalarField& Tu,
171 const volScalarField& phi
172 ) const;
173
174 //- Return the Markstein number
175 // evaluated from the given equivalence ratio
177
178 //- Construct as copy (not implemented)
179 SCOPE(const SCOPE&);
180
181 void operator=(const SCOPE&);
182
183
184public:
185
186 //- Runtime type information
187 TypeName("SCOPE");
188
189 // Constructors
190
191 //- Construct from dictionary and psiuReactionThermo
192 SCOPE
193 (
194 const dictionary&,
195 const psiuReactionThermo&
196 );
197
198
199 //- Destructor
200 ~SCOPE();
201
202
203 // Member functions
204
205 //- Return the Markstein number
206 tmp<volScalarField> Ma() const;
207
208 //- Return the laminar flame speed [m/s]
210};
211
212
213// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
214
215} // End laminarFlameSpeedModels
216} // End namespace Foam
217
218// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
219
220#endif
221
222// ************************************************************************* //
surfaceScalarField & phi
A 1D vector of objects of type <T> with a fixed length <N>.
Definition: FixedList.H:81
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
Laminar flame speed obtained from the SCOPE correlation.
TypeName("SCOPE")
Runtime type information.
tmp< volScalarField > operator()() const
Return the laminar flame speed [m/s].
SCOPE(const dictionary &, const psiuReactionThermo &)
Construct from dictionary and psiuReactionThermo.
tmp< volScalarField > Ma() const
Return the Markstein number.
Abstract class for laminar flame speed.
Foam::psiuReactionThermo.
A class for managing temporary objects.
Definition: tmp.H:65
volScalarField & p
Namespace for OpenFOAM.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73