FreeFOAM The Cross-Platform CFD Toolkit
porousInterFoam.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) 1991-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  porousInterFoam
26 
27 Description
28  Solver for 2 incompressible, isothermal immiscible fluids.
29 
30  Based on a VOF (volume of fluid) phase-fraction based interface capturing
31  approach. The momentum and other fluid properties are of the "mixture" and
32  a single momentum equation is solved.
33 
34  Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected.
35 
36  Explicit handling of porous zones is included.
37 
38 Usage
39  - porousInterFoam [OPTION]
40 
41  @param -case <dir> \n
42  Specify the case directory
43 
44  @param -parallel \n
45  Run the case in parallel
46 
47  @param -help \n
48  Display short usage message
49 
50  @param -doc \n
51  Display Doxygen documentation page
52 
53  @param -srcDoc \n
54  Display source code
55 
56 See
57  For a two-fluid approach see twoPhaseEulerFoam.
58 
59 \*---------------------------------------------------------------------------*/
60 
61 #include <finiteVolume/fvCFD.H>
62 #include <finiteVolume/MULES.H>
63 #include <OpenFOAM/subCycle.H>
68 
69 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70 
71 int main(int argc, char *argv[])
72 {
73  #include <OpenFOAM/setRootCase.H>
74  #include <OpenFOAM/createTime.H>
75  #include <OpenFOAM/createMesh.H>
78  #include "../createFields.H"
79  #include "createPorousZones.H"
81  #include "../correctPhi.H"
82  #include <finiteVolume/CourantNo.H>
84 
85  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
86 
87  Info<< "\nStarting time loop\n" << endl;
88 
89  while (runTime.run())
90  {
93  #include <finiteVolume/CourantNo.H>
94  #include "../alphaCourantNo.H"
95  #include "../setDeltaT.H"
96 
97  runTime++;
98 
99  Info<< "Time = " << runTime.timeName() << nl << endl;
100 
101  twoPhaseProperties.correct();
102 
103  #include "../alphaEqnSubCycle.H"
104 
105  #include "UEqn.H"
106 
107  // --- PISO loop
108  for (int corr=0; corr<nCorr; corr++)
109  {
110  #include "../pEqn.H"
111  }
112 
113  turbulence->correct();
114 
115  runTime.write();
116 
117  Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
118  << " ClockTime = " << runTime.elapsedClockTime() << " s"
119  << nl << endl;
120  }
121 
122  Info<< "End\n" << endl;
123 
124  return 0;
125 }
126 
127 
128 // ************************************************************************* //