00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. 00006 \\/ M anipulation | 00007 ------------------------------------------------------------------------------- 00008 License 00009 This file is part of OpenFOAM. 00010 00011 OpenFOAM is free software: you can redistribute it and/or modify it 00012 under the terms of the GNU General Public License as published by 00013 the Free Software Foundation, either version 3 of the License, or 00014 (at your option) any later version. 00015 00016 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT 00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00018 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00019 for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. 00023 00024 Class 00025 Foam::laminarFlameSpeedModels::SCOPE 00026 00027 Description 00028 Laminar flame speed obtained from the SCOPE correlation. 00029 00030 Seven parameters are specified in terms of polynomial functions of 00031 stoichiometry. Two polynomials are fitted, covering different parts of the 00032 flammable range. If the mixture is outside the fitted range, linear 00033 interpolation is used between the extreme of the polynomio and the upper or 00034 lower flammable limit with the Markstein number constant. 00035 00036 Variations of pressure and temperature from the reference values are taken 00037 into account through \f$ pexp \f$ and \f$ texp \f$ 00038 00039 The laminar burning velocity fitting polynomial is: 00040 00041 \f$ Su = a_{0}(1+a_{1}x+K+..a_{i}x^{i}..+a_{6}x^{6}) (p/p_{ref})^{pexp} 00042 (T/T_{ref})^{texp} \f$ 00043 00044 where: 00045 00046 \f$ a_{i} \f$ are the polinomial coefficients. 00047 00048 \f$ pexp \f$ and \f$ texp \f$ are the pressure and temperature factors 00049 respectively. 00050 00051 \f$ x \f$ is the equivalence ratio. 00052 00053 \f$ T_{ref} \f$ and \f$ p_{ref} \f$ are the temperature and pressure 00054 references for the laminar burning velocity. 00055 00056 00057 SourceFiles 00058 SCOPELaminarFlameSpeed.C 00059 00060 \*---------------------------------------------------------------------------*/ 00061 00062 #ifndef SCOPE_H 00063 #define SCOPE_H 00064 00065 #include <laminarFlameSpeedModels/laminarFlameSpeed.H> 00066 00067 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00068 00069 namespace Foam 00070 { 00071 namespace laminarFlameSpeedModels 00072 { 00073 00074 /*---------------------------------------------------------------------------*\ 00075 Class SCOPE Declaration 00076 \*---------------------------------------------------------------------------*/ 00077 00078 class SCOPE 00079 : 00080 public laminarFlameSpeed 00081 { 00082 // Private Data 00083 00084 class polynomial 00085 : 00086 public FixedList<scalar, 7> 00087 { 00088 public: 00089 00090 //- Lower limit 00091 scalar ll; 00092 00093 //- Upper polynomial limit 00094 scalar ul; 00095 00096 //- Value at lower limit 00097 scalar llv; 00098 00099 //- Value at upper limit 00100 scalar ulv; 00101 00102 //- Changeover point from lower to upper polynomial 00103 scalar lu; 00104 00105 //- Construct from dictionary 00106 polynomial(const dictionary& polyDict); 00107 }; 00108 00109 00110 dictionary coeffsDict_; 00111 00112 //- Lower flamability limit 00113 scalar LFL_; 00114 00115 //- Upper flamability limit 00116 scalar UFL_; 00117 00118 //- Lower Su polynomial 00119 polynomial SuPolyL_; 00120 00121 //- Upper Su polynomial 00122 polynomial SuPolyU_; 00123 00124 //- Temperature correction exponent 00125 scalar Texp_; 00126 00127 //- Pressure correction exponent 00128 scalar pexp_; 00129 00130 //- Lower Ma polynomial 00131 polynomial MaPolyL_; 00132 00133 //- Upper Ma polynomial 00134 polynomial MaPolyU_; 00135 00136 00137 // Private member functions 00138 00139 //- Polynomial evaluated from the given equivalence ratio 00140 // and polynomial coefficients 00141 static inline scalar polyPhi(scalar phi, const polynomial& a); 00142 00143 //- Laminar flame speed evaluated from the given equivalence ratio 00144 // at the reference temperature and pressure 00145 inline scalar SuRef(scalar phi) const; 00146 00147 //- Markstein evaluated from the given equivalence ratio 00148 inline scalar Ma(scalar phi) const; 00149 00150 //- Laminar flame speed evaluated from the given equivalence ratio 00151 // corrected for temperature and pressure dependence 00152 inline scalar Su0pTphi(scalar p, scalar Tu, scalar phi) const; 00153 00154 //- Laminar flame speed evaluated from the given uniform 00155 // equivalence ratio corrected for temperature and pressure dependence 00156 tmp<volScalarField> Su0pTphi 00157 ( 00158 const volScalarField& p, 00159 const volScalarField& Tu, 00160 scalar phi 00161 ) const; 00162 00163 //- Laminar flame speed evaluated from the given equivalence ratio 00164 // distribution corrected for temperature and pressure dependence 00165 tmp<volScalarField> Su0pTphi 00166 ( 00167 const volScalarField& p, 00168 const volScalarField& Tu, 00169 const volScalarField& phi 00170 ) const; 00171 00172 //- Return the Markstein number 00173 // evaluated from the given equivalence ratio 00174 tmp<volScalarField> Ma(const volScalarField& phi) const; 00175 00176 //- Construct as copy (not implemented) 00177 SCOPE(const SCOPE&); 00178 00179 void operator=(const SCOPE&); 00180 00181 00182 public: 00183 00184 //- Runtime type information 00185 TypeName("SCOPE"); 00186 00187 // Constructors 00188 00189 //- Construct from dictionary and hhuCombustionThermo 00190 SCOPE 00191 ( 00192 const dictionary&, 00193 const hhuCombustionThermo& 00194 ); 00195 00196 00197 // Destructor 00198 ~SCOPE(); 00199 00200 00201 // Member functions 00202 00203 //- Return the Markstein number 00204 tmp<volScalarField> Ma() const; 00205 00206 //- Return the laminar flame speed [m/s] 00207 tmp<volScalarField> operator()() const; 00208 }; 00209 00210 00211 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00212 00213 } // End laminarFlameSpeedModels 00214 } // End namespace Foam 00215 00216 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00217 00218 #endif 00219 00220 // ************************ vim: set sw=4 sts=4 et: ************************ //