initial commit for version 1.5.x patch release
[OpenFOAM-1.5.x.git] / applications / solvers / combustion / PDRFoam / laminarFlameSpeed / SCOPE / SCOPELaminarFlameSpeed.H
blobe837fefa8bf94863ceac099a4bff05c49cf818f1
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     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
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     SCOPE
28 Description
29     Laminar flame speed obtained from the SCOPE correlation.
31 SourceFiles
32     SCOPELaminarFlameSpeed.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef SCOPE_H
37 #define SCOPE_H
39 #include "laminarFlameSpeed.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
45 namespace laminarFlameSpeedModels
48 /*---------------------------------------------------------------------------*\
49                            Class SCOPE Declaration
50 \*---------------------------------------------------------------------------*/
52 class SCOPE
54     public laminarFlameSpeed
56     // Private Data
58         class polynomial
59         :
60             public FixedList<scalar, 7>
61         {
62         public:
64             //- Lower limit
65             scalar ll;
67             //- Upper polynomial limit
68             scalar ul;
70             //- Value at lower limit
71             scalar llv;
73             //- Value at upper limit
74             scalar ulv;
76             //- Changeover point from lower to upper polynomial
77             scalar lu;
79             //- Construct from dictionary
80             polynomial(const dictionary& polyDict);
81         };
84         dictionary coeffsDict_;
86         //- Lower flamability limit
87         scalar LFL_;
89         //- Upper flamability limit
90         scalar UFL_;
92         //- Lower Su polynomial
93         polynomial SuPolyL_;
95         //- Upper Su polynomial
96         polynomial SuPolyU_;
98         //- Temperature correction exponent
99         scalar Texp_;
101         //- Pressure correction exponent
102         scalar pexp_;
104         //- Lower Ma polynomial
105         polynomial MaPolyL_;
107         //- Upper Ma polynomial
108         polynomial MaPolyU_;
111     // Private member functions
113         //- Polynomial evaluated from the given equivalence ratio
114         //  and polynomial coefficients
115         static inline scalar polyPhi(scalar phi, const polynomial& a);
117         //- Laminar flame speed evaluated from the given equivalence ratio
118         //  at the reference temperature and pressure
119         inline scalar SuRef(scalar phi) const;
121         //- Markstein evaluated from the given equivalence ratio
122         inline scalar Ma(scalar phi) const;
124         //- Laminar flame speed evaluated from the given equivalence ratio
125         //  corrected for temperature and pressure dependence
126         inline scalar Su0pTphi(scalar p, scalar Tu, scalar phi) const;
128         //- Laminar flame speed evaluated from the given uniform 
129         //  equivalence ratio corrected for temperature and pressure dependence
130         tmp<volScalarField> Su0pTphi
131         (
132             const volScalarField& p,
133             const volScalarField& Tu,
134             scalar phi
135         ) const;
137         //- Laminar flame speed evaluated from the given equivalence ratio 
138         //  distribution corrected for temperature and pressure dependence
139         tmp<volScalarField> Su0pTphi
140         (
141             const volScalarField& p,
142             const volScalarField& Tu,
143             const volScalarField& phi
144         ) const;
146         //- Return the Markstein number
147         //  evaluated from the given equivalence ratio 
148         tmp<volScalarField> Ma(const volScalarField& phi) const;
150         //- Construct as copy (not implemented)
151         SCOPE(const SCOPE&);
153         void operator=(const SCOPE&);
156 public:
158     //- Runtime type information
159     TypeName("SCOPE");
161     // Constructors
163         //- Construct from dictionary and hhuCombustionThermo
164         SCOPE
165         (
166             const dictionary&,
167             const hhuCombustionThermo&
168         );
171     // Destructor
173         ~SCOPE();
176     // Member functions
178         //- Return the Markstein number
179         tmp<volScalarField> Ma() const;
181         //- Return the laminar flame speed [m/s]
182         tmp<volScalarField> operator()() const;
186 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188 } // End laminarFlameSpeedModels
189 } // End namespace Foam
191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 #endif
195 // ************************************************************************* //