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 | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2017 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::combustionModels::FSD
28 
29 Group
30  grpCombustionModels
31 
32 Description
33 
34  Flame Surface Dennsity (FDS) combustion model.
35 
36  The fuel source term is given by mgft*pc*omegaFuelBar.
37 
38  where:
39  mgft: filtered flame area.
40  pc: probability of the combustion progress.
41  omegaFuelBar: filtered consumption speed per unit of flame area.
42 
43  pc is considered from the IFC solution.
44  omegaFuelBar is calculated solving a relaxation equation which tends to
45  omegaEq. This omegaEq is obtained from the flamelet solution for
46  different strain rates and fit using a expential distribution.
47 
48  The spacial distribution of the consumption speed (omega) is obtained also
49  from a strained flamelet solution and it is assumed to have a Gaussian
50  distribution.
51 
52  If the grid resolution is not enough to resolve the flame, the consumption
53  speed distribution is linearly thickened conserving the overall heat
54  release.
55 
56  If the turbulent fluctuation of the mixture fraction at the sub-grid level
57  is large (>1e-04) then a beta pdf is used for filtering.
58 
59  At the moment the flame area combustion model is only fit to work in a LES
60  frame work. In RAS the subgrid fluctuation has to be solved by an extra
61  transport equation.
62 
63 SourceFiles
64  FSD.C
65 
66 \*---------------------------------------------------------------------------*/
67 
68 #ifndef FSD_H
69 #define FSD_H
70 
71 #include "singleStepCombustion.H"
72 #include "reactionRateFlameArea.H"
73 
74 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
75 
76 namespace Foam
77 {
78 namespace combustionModels
79 {
80 
81 /*---------------------------------------------------------------------------*\
82  Class FSD Declaration
83 \*---------------------------------------------------------------------------*/
84 
85 template<class ReactionThermo, class ThermoType>
86 class FSD
87 :
88  public singleStepCombustion <ReactionThermo, ThermoType>
89 {
90  // Private data
91 
92  //- Auto pointer to consumption speed per unit of flame area model
93  autoPtr<reactionRateFlameArea> reactionRateFlameArea_;
94 
95  //- Mixture fraction
96  volScalarField ft_;
97 
98  //- Fuel mass concentration on the fuel stream
99  dimensionedScalar YFuelFuelStream_;
100 
101  //- Oxygen mass concentration on the oxidizer stream
102  dimensionedScalar YO2OxiStream_;
103 
104  //- Similarity constant for the sub-grid ft fluctuations
105  scalar Cv_;
106 
107  //- Model constant
108  scalar C_;
109 
110  //- Lower flammability limit
111  scalar ftMin_;
112 
113  //- Upper flammability limit
114  scalar ftMax_;
115 
116  //- Dimension of the ft space. Used to integrate the beta-pdf
117  scalar ftDim_;
118 
119  //- Minimum mixture fraction variance to calculate pdf
120  scalar ftVarMin_;
121 
122 
123  // Private Member Functions
124 
125  //- Calculate the normalised fuel source term
126  void calculateSourceNorm();
127 
128  //- No copy construct
129  FSD(const FSD&) = delete;
130 
131  //- No copy assignment
132  void operator=(const FSD&) = delete;
133 
134 
135 public:
136 
137  //- Runtime type information
138  TypeName("FSD");
139 
140 
141  // Constructors
142 
143  //- Construct from components
144  FSD
145  (
146  const word& modelType,
147  ReactionThermo& thermo,
149  const word& combustionProperties
150  );
151 
152 
153  //- Destructor
154  virtual ~FSD();
155 
156 
157  // Member Functions
158 
159  //- Correct combustion rate
160  virtual void correct();
161 
162  //- Update properties
163  virtual bool read();
164 };
165 
166 
167 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 
169 } // End namespace combustionModels
170 } // End namespace Foam
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 #ifdef NoRepository
175  #include "FSD.C"
176 #endif
177 
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
179 
180 #endif
181 
182 // ************************************************************************* //
Foam::combustionModels::FSD::read
virtual bool read()
Update properties.
Definition: FSD.C:349
Foam::combustionModels::FSD::~FSD
virtual ~FSD()
Destructor.
Definition: FSD.C:94
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::combustionModels::FSD::correct
virtual void correct()
Correct combustion rate.
Definition: FSD.C:337
singleStepCombustion.H
thermo
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
Foam::combustionModels::FSD::TypeName
TypeName("FSD")
Runtime type information.
Foam::combustionModels::singleStepCombustion
Base class for combustion models using singleStepReactingMixture.
Definition: singleStepCombustion.H:58
FSD.C
Foam::dimensioned< scalar >
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
reactionRateFlameArea.H
Foam::GeometricField< scalar, fvPatchField, volMesh >
turb
compressible::turbulenceModel & turb
Definition: setRegionFluidFields.H:10
Foam::compressibleTurbulenceModel
Abstract base class for turbulence models (RAS, LES and laminar).
Definition: compressibleTurbulenceModel.H:54
Foam::combustionModels::FSD
Flame Surface Dennsity (FDS) combustion model.
Definition: FSD.H:85