1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
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.
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
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/>.
25 Foam::laminarFlameSpeedModels::SCOPE
28 Laminar flame speed obtained from the SCOPE correlation.
30 Seven parameters are specified in terms of polynomial functions of
31 stoichiometry. Two polynomials are fitted, covering different parts of the
32 flammable range. If the mixture is outside the fitted range, linear
33 interpolation is used between the extreme of the polynomio and the upper or
34 lower flammable limit with the Markstein number constant.
36 Variations of pressure and temperature from the reference values are taken
37 into account through \f$ pexp \f$ and \f$ texp \f$
39 The laminar burning velocity fitting polynomial is:
41 \f$ Su = a_{0}(1+a_{1}x+K+..a_{i}x^{i}..+a_{6}x^{6}) (p/p_{ref})^{pexp}
42 (T/T_{ref})^{texp} \f$
46 \f$ a_{i} \f$ are the polinomial coefficients.
48 \f$ pexp \f$ and \f$ texp \f$ are the pressure and temperature factors
51 \f$ x \f$ is the equivalence ratio.
53 \f$ T_{ref} \f$ and \f$ p_{ref} \f$ are the temperature and pressure
54 references for the laminar burning velocity.
58 SCOPELaminarFlameSpeed.C
60 \*---------------------------------------------------------------------------*/
65 #include "laminarFlameSpeed.H"
67 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
71 namespace laminarFlameSpeedModels
74 /*---------------------------------------------------------------------------*\
75 Class SCOPE Declaration
76 \*---------------------------------------------------------------------------*/
80 public laminarFlameSpeed
86 public FixedList<scalar, 7>
93 //- Upper polynomial limit
96 //- Value at lower limit
99 //- Value at upper limit
102 //- Changeover point from lower to upper polynomial
105 //- Construct from dictionary
106 polynomial(const dictionary& polyDict);
110 dictionary coeffsDict_;
112 //- Lower flamability limit
115 //- Upper flamability limit
118 //- Lower Su polynomial
121 //- Upper Su polynomial
124 //- Temperature correction exponent
127 //- Pressure correction exponent
130 //- Lower Ma polynomial
133 //- Upper Ma polynomial
137 // Private member functions
139 //- Polynomial evaluated from the given equivalence ratio
140 // and polynomial coefficients
141 static inline scalar polyPhi(scalar phi, const polynomial& a);
143 //- Laminar flame speed evaluated from the given equivalence ratio
144 // at the reference temperature and pressure
145 inline scalar SuRef(scalar phi) const;
147 //- Markstein evaluated from the given equivalence ratio
148 inline scalar Ma(scalar phi) const;
150 //- Laminar flame speed evaluated from the given equivalence ratio
151 // corrected for temperature and pressure dependence
152 inline scalar Su0pTphi(scalar p, scalar Tu, scalar phi) const;
154 //- Laminar flame speed evaluated from the given uniform
155 // equivalence ratio corrected for temperature and pressure dependence
156 tmp<volScalarField> Su0pTphi
158 const volScalarField& p,
159 const volScalarField& Tu,
163 //- Laminar flame speed evaluated from the given equivalence ratio
164 // distribution corrected for temperature and pressure dependence
165 tmp<volScalarField> Su0pTphi
167 const volScalarField& p,
168 const volScalarField& Tu,
169 const volScalarField& phi
172 //- Return the Markstein number
173 // evaluated from the given equivalence ratio
174 tmp<volScalarField> Ma(const volScalarField& phi) const;
176 //- Construct as copy (not implemented)
179 void operator=(const SCOPE&);
184 //- Runtime type information
189 //- Construct from dictionary and hhuCombustionThermo
193 const hhuCombustionThermo&
203 //- Return the Markstein number
204 tmp<volScalarField> Ma() const;
206 //- Return the laminar flame speed [m/s]
207 tmp<volScalarField> operator()() const;
211 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
213 } // End laminarFlameSpeedModels
214 } // End namespace Foam
216 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
220 // ************************************************************************* //