OpenFOAM
4.1
The OpenFOAM Foundation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
applications
solvers
combustion
PDRFoam
PDRFoam.C
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
Application
25
PDRFoam
26
27
Description
28
Solver for compressible premixed/partially-premixed combustion with
29
turbulence modelling.
30
31
Combusting RANS code using the b-Xi two-equation model.
32
Xi may be obtained by either the solution of the Xi transport
33
equation or from an algebraic exression. Both approaches are
34
based on Gulder's flame speed correlation which has been shown
35
to be appropriate by comparison with the results from the
36
spectral model.
37
38
Strain effects are incorporated directly into the Xi equation
39
but not in the algebraic approximation. Further work need to be
40
done on this issue, particularly regarding the enhanced removal rate
41
caused by flame compression. Analysis using results of the spectral
42
model will be required.
43
44
For cases involving very lean Propane flames or other flames which are
45
very strain-sensitive, a transport equation for the laminar flame
46
speed is present. This equation is derived using heuristic arguments
47
involving the strain time scale and the strain-rate at extinction.
48
the transport velocity is the same as that for the Xi equation.
49
50
For large flames e.g. explosions additional modelling for the flame
51
wrinkling due to surface instabilities may be applied.
52
53
PDR (porosity/distributed resistance) modelling is included to handle
54
regions containing blockages which cannot be resolved by the mesh.
55
56
The fields used by this solver are:
57
58
betav: Volume porosity
59
Lobs: Average diameter of obstacle in cell (m)
60
Aw: Obstacle surface area per unit volume (1/m)
61
CR: Drag tensor (1/m)
62
CT: Turbulence generation parameter (1/m)
63
Nv: Number of obstacles in cell per unit volume (m^-2)
64
nsv: Tensor whose diagonal indicates the number to substract from
65
Nv to get the number of obstacles crossing the flow in each
66
direction.
67
68
\*---------------------------------------------------------------------------*/
69
70
#include "
fvCFD.H
"
71
#include "
psiuReactionThermo.H
"
72
#include "
turbulentFluidThermoModel.H
"
73
#include "
laminarFlameSpeed.H
"
74
#include "
XiModel.H
"
75
#include "
PDRDragModel.H
"
76
#include "
ignition.H
"
77
#include "
Switch.H
"
78
#include "
bound.H
"
79
#include "
pimpleControl.H
"
80
#include "
fvOptions.H
"
81
82
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
83
84
int
main(
int
argc,
char
*argv[])
85
{
86
#include "
postProcess.H
"
87
88
#include "
setRootCase.H
"
89
#include "
createTime.H
"
90
#include "
createMesh.H
"
91
#include "createControl.H"
92
#include "readCombustionProperties.H"
93
#include "readGravitationalAcceleration.H"
94
#include "createFields.H"
95
#include "createFieldRefs.H"
96
#include "
createFvOptions.H
"
97
#include "initContinuityErrs.H"
98
#include "
createTimeControls.H
"
99
#include "compressibleCourantNo.H"
100
#include "setInitialDeltaT.H"
101
102
turbulence
->validate();
103
scalar StCoNum = 0.0;
104
105
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106
107
Info
<<
"\nStarting time loop\n"
<<
endl
;
108
109
while
(runTime.run())
110
{
111
#include "
readTimeControls.H
"
112
#include "compressibleCourantNo.H"
113
#include "setDeltaT.H"
114
115
runTime++;
116
Info
<<
"\n\nTime = "
<< runTime.timeName() <<
endl
;
117
118
#include "rhoEqn.H"
119
120
// --- Pressure-velocity PIMPLE corrector loop
121
while
(
pimple
.loop())
122
{
123
#include "UEqn.H"
124
125
// --- Pressure corrector loop
126
while
(
pimple
.correct())
127
{
128
#include "bEqn.H"
129
#include "ftEqn.H"
130
#include "EauEqn.H"
131
#include "EaEqn.H"
132
133
if
(!ign.ignited())
134
{
135
thermo
.heu() ==
thermo
.he();
136
}
137
138
#include "pEqn.H"
139
}
140
141
if
(
pimple
.turbCorr())
142
{
143
turbulence
->correct();
144
}
145
}
146
147
runTime.write();
148
149
Info
<<
"\nExecutionTime = "
150
<< runTime.elapsedCpuTime()
151
<<
" s\n"
<<
endl
;
152
}
153
154
Info
<<
"\n end\n"
;
155
156
return
0;
157
}
158
159
160
// ************************************************************************* //
turbulence
autoPtr< compressible::turbulenceModel > turbulence
Definition:
createFields.H:23
fvCFD.H
createFvOptions.H
pimple
const dictionary & pimple
Definition:
readFluidMultiRegionPIMPLEControls.H:1
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition:
Ostream.H:253
readTimeControls.H
Read the control parameters used by setDeltaT.
createTime.H
laminarFlameSpeed.H
turbulentFluidThermoModel.H
thermo
psiReactionThermo & thermo
Definition:
createFields.H:31
PDRDragModel.H
XiModel.H
psiuReactionThermo.H
bound.H
Bound the given scalar field if it has gone unbounded.
createMesh.H
fvOptions.H
setRootCase.H
pimpleControl.H
Foam::Info
messageStream Info
ignition.H
Switch.H
postProcess.H
Execute application functionObjects to post-process existing results.
createTimeControls.H
Read the control parameters used by setDeltaT.
Generated by
1.8.11