FSD.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 | Copyright (C) 2011-2016 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::FSD
26 
27 Description
28 
29  Flame Surface Dennsity (FDS) combustion model.
30 
31  The fuel source term is given by mgft*pc*omegaFuelBar.
32 
33  where:
34  mgft: filtered flame area.
35  pc: probability of the combustion progress.
36  omegaFuelBar: filtered consumption speed per unit of flame area.
37 
38  pc is considered from the IFC solution.
39  omegaFuelBar is calculated solving a relaxation equation which tends to
40  omegaEq. This omegaEq is obtained from the flamelet solution for
41  different strain rates and fit using a expential distribution.
42 
43  The spacial distribution of the consumption speed (omega) is obtained also
44  from a strained flamelet solution and it is assumed to have a guassian
45  distribution.
46 
47  If the grid resolution is not enough to resolve the flame, the consumption
48  speed distribution is linearly thickened conserving the overall heat
49  release.
50 
51  If the turbulent fluctuation of the mixture fraction at the sub-grid level
52  is large (>1e-04) then a beta pdf is used for filtering.
53 
54  At the moment the flame area combustion model is only fit to work in a LES
55  frame work. In RAS the subgrid fluctuation has to be solved by an extra
56  transport equation.
57 
58 SourceFiles
59  FSD.C
60 
61 \*---------------------------------------------------------------------------*/
62 
63 #ifndef FSD_H
64 #define FSD_H
65 
66 #include "singleStepCombustion.H"
67 #include "reactionRateFlameArea.H"
68 
69 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70 
71 namespace Foam
72 {
73 namespace combustionModels
74 {
75 
76 /*---------------------------------------------------------------------------*\
77  Class FSD Declaration
78 \*---------------------------------------------------------------------------*/
79 
80 template<class CombThermoType, class ThermoType>
81 class FSD
82 :
83  public singleStepCombustion <CombThermoType, ThermoType>
84 {
85  // Private data
86 
87  //- Auto pointer to consumption speed per unit of flame area model
88  autoPtr<reactionRateFlameArea> reactionRateFlameArea_;
89 
90  //- Mixture fraction
91  volScalarField ft_;
92 
93  //- Fuel mass concentration on the fuel stream
94  dimensionedScalar YFuelFuelStream_;
95 
96  //- Oxygen mass concentration on the oxydizer stream
97  dimensionedScalar YO2OxiStream_;
98 
99  //- Similarity constant for the sub-grid ft fluctuations
100  scalar Cv_;
101 
102  //- Model constant
103  scalar C_;
104 
105  //- Lower flammability limit
106  scalar ftMin_;
107 
108  //- Upper flammability limit
109  scalar ftMax_;
110 
111  //- Dimension of the ft space. Used to integrate the beta-pdf
112  scalar ftDim_;
113 
114  //- Minimum mixture freaction variance to calculate pdf
115  scalar ftVarMin_;
116 
117 
118  // Private Member Functions
119 
120  //- Calculate the normalised fuel source term
121  void calculateSourceNorm();
122 
123  //- Disallow copy construct
124  FSD(const FSD&);
125 
126  //- Disallow default bitwise assignment
127  void operator=(const FSD&);
128 
129 
130 public:
131 
132  //- Runtime type information
133  TypeName("FSD");
134 
135 
136  // Constructors
137 
138  //- Construct from components
139  FSD(const word& modelType, const fvMesh& mesh, const word& phaseName);
140 
141 
142  // Destructor
143  virtual ~FSD();
144 
145 
146  // Evolution
147 
148  //- Correct combustion rate
149  virtual void correct();
150 
151 
152  // IO
153 
154  //- Update properties
155  virtual bool read();
156 };
157 
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 } // End namespace combustionModels
162 } // End namespace Foam
163 
164 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165 
166 #ifdef NoRepository
167  #include "FSD.C"
168 #endif
169 
170 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
171 
172 #endif
173 
174 // ************************************************************************* //
Flame Surface Dennsity (FDS) combustion model.
Definition: FSD.H:80
virtual bool read()
Update properties.
Definition: FSD.C:350
dynamicFvMesh & mesh
A class for handling words, derived from string.
Definition: word.H:59
TypeName("FSD")
Runtime type information.
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
virtual void correct()
Correct combustion rate.
Definition: FSD.C:337
Base class for combustion models using singleStepReactingMixture.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: PtrList.H:53
Namespace for OpenFOAM.