Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / solvers / compressible / rhoPorousMRFPimpleFoam / rhoPorousMRFPimpleFoam.C
blob4d608296a2e77e875e9390862952719a628d56cf
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Application
25     rhoPorousMRFPimpleFoam
27 Description
28     Transient solver for laminar or turbulent flow of compressible fluids
29     with support for porous media and MRF for HVAC and similar applications.
31     Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
32     pseudo-transient simulations.
34 \*---------------------------------------------------------------------------*/
36 #include "fvCFD.H"
37 #include "basicPsiThermo.H"
38 #include "turbulenceModel.H"
39 #include "bound.H"
40 #include "MRFZones.H"
41 #include "porousZones.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 int main(int argc, char *argv[])
47     #include "setRootCase.H"
48     #include "createTime.H"
49     #include "createMesh.H"
50     #include "createFields.H"
51     #include "initContinuityErrs.H"
53     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55     Info<< "\nStarting time loop\n" << endl;
57     while (runTime.run())
58     {
59         #include "readTimeControls.H"
60         #include "readPIMPLEControls.H"
61         #include "compressibleCourantNo.H"
62         #include "setDeltaT.H"
64         runTime++;
66         Info<< "Time = " << runTime.timeName() << nl << endl;
68         if (nOuterCorr != 1)
69         {
70             p.storePrevIter();
71             rho.storePrevIter();
72         }
74         #include "rhoEqn.H"
76         // --- Pressure-velocity PIMPLE corrector loop
77         for (int oCorr=0; oCorr<nOuterCorr; oCorr++)
78         {
79             #include "UEqn.H"
80             #include "hEqn.H"
82             // --- PISO loop
83             for (int corr = 0; corr < nCorr; corr++)
84             {
85                 #include "pEqn.H"
86             }
88             turbulence->correct();
89         }
91         runTime.write();
93         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
94             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
95             << nl << endl;
96     }
98     Info<< "End\n" << endl;
100     return 0;
104 // ************************************************************************* //