EDC.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2017-2021 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::combustionModels::EDC
26 
27 Description
28  Eddy Dissipation Concept (EDC) turbulent combustion model.
29 
30  This model considers that the reaction occurs in the regions of the flow
31  where the dissipation of turbulence kinetic energy takes place (fine
32  structures). The mass fraction of the fine structures and the mean residence
33  time are provided by an energy cascade model.
34 
35  There are many versions and developments of the EDC model, 4 of which are
36  currently supported in this implementation: v1981, v1996, v2005 and
37  v2016. The model variant is selected using the optional \c version entry in
38  the \c EDCCoeffs dictionary
39 
40  \verbatim
41  EDCCoeffs
42  {
43  version v2016;
44  }
45  \endverbatim
46 
47  The default version is \c v2005 if the \c version entry is not specified.
48 
49  Model versions and references:
50  \verbatim
51  Version v2005:
52 
53  Cgamma = 2.1377
54  Ctau = 0.4083
55  kappa = gammaL^exp1 / (1 - gammaL^exp2),
56 
57  where exp1 = 2, and exp2 = 2.
58 
59  Magnussen, B. F. (2005, June).
60  The Eddy Dissipation Concept -
61  A Bridge Between Science and Technology.
62  In ECCOMAS thematic conference on computational combustion
63  (pp. 21-24).
64 
65  Version v1981:
66 
67  Changes coefficients exp1 = 3 and exp2 = 3
68 
69  Magnussen, B. (1981, January).
70  On the structure of turbulence and a generalised
71  eddy dissipation concept for chemical reaction in turbulent flow.
72  In 19th Aerospace Sciences Meeting (p. 42).
73 
74  Version v1996:
75 
76  Changes coefficients exp1 = 2 and exp2 = 3
77 
78  Gran, I. R., & Magnussen, B. F. (1996).
79  A numerical study of a bluff-body stabilised diffusion flame.
80  Part 2. Influence of combustion modeling and finite-rate chemistry.
81  Combustion Science and Technology, 119(1-6), 191-217.
82 
83  Version v2016:
84 
85  Use local constants computed from the turbulent Da and Re numbers.
86 
87  Parente, A., Malik, M. R., Contino, F., Cuoci, A., & Dally, B. B.
88  (2016).
89  Extension of the Eddy Dissipation Concept for
90  turbulence/chemistry interactions to MILD combustion.
91  Fuel, 163, 98-111.
92  \endverbatim
93 
94 SourceFiles
95  EDC.C
96 
97 \*---------------------------------------------------------------------------*/
98 
99 #ifndef EDC_H
100 #define EDC_H
101 
102 #include "autoPtr.H"
103 #include "combustionModel.H"
104 #include "basicChemistryModel.H"
105 #include "NamedEnum.H"
106 
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 
109 namespace Foam
110 {
111 namespace combustionModels
112 {
113 
114 //- EDC model versions
115 enum class EDCversions
116 {
117  v1981,
118  v1996,
119  v2005,
120  v2016
121 };
122 
124 extern const EDCversions EDCdefaultVersion;
126 const scalar EDCexp1[] = {3, 2, 2, 2};
127 const scalar EDCexp2[] = {3, 3, 2, 2};
128 
129 /*---------------------------------------------------------------------------*\
130  Class EDC Declaration
131 \*---------------------------------------------------------------------------*/
133 class EDC
134 :
135  public combustionModel
136 {
137  // Private Data
138 
139  //- The selected model version
140  EDCversions version_;
141 
142  //- Model constant
143  scalar C1_;
144 
145  //- Model constant
146  scalar C2_;
147 
148  //- Model constant
149  scalar Cgamma_;
150 
151  //- Model constant
152  scalar Ctau_;
153 
154  //- Model constant
155  scalar exp1_;
156 
157  //- Model constant
158  scalar exp2_;
159 
160  //- Mixing parameter
161  volScalarField kappa_;
162 
163  //- Run chemistry correction on every outer iteration. Default true.
164  bool outerCorrect_;
165 
166  //- The time index of the last correction
167  label timeIndex_;
168 
169  //- Pointer to chemistry model
170  autoPtr<basicChemistryModel> chemistryPtr_;
171 
172 
173 public:
174 
175  //- Runtime type information
176  TypeName("EDC");
177 
178 
179  // Constructors
180 
181  //- Construct from components
182  EDC
183  (
184  const word& modelType,
185  const fluidReactionThermo& type,
187  const word& combustionProperties
188  );
189 
190  //- Disallow default bitwise copy construction
191  EDC(const EDC&) = delete;
192 
193 
194  //- Destructor
195  virtual ~EDC();
196 
197 
198  // Member Functions
199 
200  //- Correct combustion rate
201  virtual void correct();
202 
203  //- Fuel consumption rate matrix.
204  virtual tmp<fvScalarMatrix> R(volScalarField& Y) const;
205 
206  //- Heat release rate [kg/m/s^3]
207  virtual tmp<volScalarField> Qdot() const;
208 
209  //- Update properties from given dictionary
210  virtual bool read();
211 
212 
213  // Member Operators
214 
215  //- Disallow default bitwise assignment
216  void operator=(const EDC&) = delete;
217 };
218 
219 
220 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
221 
222 } // End namespace combustionModels
223 } // End namespace Foam
224 
225 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
226 
227 #endif
228 
229 // ************************************************************************* //
const EDCversions EDCdefaultVersion
Definition: EDC.C:39
EDCversions
EDC model versions.
Definition: EDC.H:114
Info<< "Predicted p max-min : "<< max(p).value()<< " "<< min(p).value()<< endl;rho==max(rho0+psi *p, rhoMin);# 1 "/home/ubuntu/OpenFOAM-10/applications/solvers/multiphase/cavitatingFoam/alphavPsi.H" 1{ alphav=max(min((rho - rholSat)/(rhovSat - rholSat), scalar(1)), scalar(0));alphal=1.0 - alphav;Info<< "max-min alphav: "<< max(alphav).value()<< " "<< min(alphav).value()<< endl;psiModel-> correct()
Definition: pEqn.H:68
Base-class for multi-component fluid thermodynamic properties.
Initialise the NamedEnum HashTable from the static list of names.
Definition: NamedEnum.H:51
scalar Qdot
Definition: solveChemistry.H:2
const scalar EDCexp1[]
Definition: EDC.H:125
bool read(const char *, int32_t &)
Definition: int32IO.C:85
A class for handling words, derived from string.
Definition: word.H:59
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:70
Base class for combustion models.
Eddy Dissipation Concept (EDC) turbulent combustion model.
Definition: EDC.H:132
const NamedEnum< EDCversions, 4 > EDCversionNames
Definition: EDC.C:36
const scalar EDCexp2[]
Definition: EDC.H:126
#define R(A, B, C, D, E, F, K, M)
PtrList< volScalarField > & Y
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition: POSIX.C:488
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: PtrList.H:52
A class for managing temporary objects.
Definition: PtrList.H:53
Base class for single-phase compressible turbulence models.
Namespace for OpenFOAM.