FreeFOAM The Cross-Platform CFD Toolkit
porousExplicitSourceReactingParcelFoam.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) 2008-2010 OpenCFD Ltd.
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  porousExplicitSourceReactingParcelFoam
26 
27 Description
28  Transient PISO solver for compressible, laminar or
29  turbulent flow with reacting multiphase Lagrangian parcels
30  for porous media, including explicit sources for mass,
31  momentum and energy
32 
33  The solver includes:
34  - reacting multiphase parcel cloud
35  - porous media
36  - mass, momentum and energy sources
37  - polynomial based, incompressible thermodynamics (f(T))
38 
39 Note
40  ddtPhiCorr not used here when porous zones are active
41  - not well defined for porous calculations
42 
43 Usage
44  - porousExplicitSourceReactingParcelFoam [OPTION]
45 
46  @param -case <dir> \n
47  Specify the case directory
48 
49  @param -parallel \n
50  Run the case in parallel
51 
52  @param -help \n
53  Display short usage message
54 
55  @param -doc \n
56  Display Doxygen documentation page
57 
58  @param -srcDoc \n
59  Display source code
60 
61 \*---------------------------------------------------------------------------*/
62 
63 #include <finiteVolume/fvCFD.H>
72 
73 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
74 
75 int main(int argc, char *argv[])
76 {
77  #include <OpenFOAM/setRootCase.H>
78 
79  #include <OpenFOAM/createTime.H>
80  #include <OpenFOAM/createMesh.H>
81  #include "readChemistryProperties.H"
83  #include "createFields.H"
85  #include "createClouds.H"
86  #include "createExplicitSources.H"
87  #include "createPorousZones.H"
92 
93  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
94 
95  Info<< "\nStarting time loop\n" << endl;
96 
97  while (runTime.run())
98  {
103  #include <finiteVolume/setDeltaT.H>
104 
105  runTime++;
106 
107  Info<< "Time = " << runTime.timeName() << nl << endl;
108 
109  parcels.evolve();
110 
111  #include "chemistry.H"
112  #include "rhoEqn.H"
113  #include "UEqn.H"
114  #include "YEqn.H"
115  #include "hsEqn.H"
116 
117  // --- PISO loop
118  for (int corr=0; corr<nCorr; corr++)
119  {
120  #include "pEqn.H"
121  }
122 
123  turbulence->correct();
124 
125  rho = thermo.rho();
126 
127  if (runTime.write())
128  {
129  chemistry.dQ()().write();
130  }
131 
132  Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
133  << " ClockTime = " << runTime.elapsedClockTime() << " s"
134  << nl << endl;
135  }
136 
137  Info<< "End\n" << endl;
138 
139  return(0);
140 }
141 
142 
143 // ************************ vim: set sw=4 sts=4 et: ************************ //