All Classes Namespaces Files Functions Variables Typedefs Friends Macros Groups
particlesQHDFoam.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 | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2016 OpenFOAM Foundation
9  Copyright (C) 2019 OpenCFD Ltd.
10  Copyright (C) 2016-2019 ISP RAS (www.ispras.ru) UniCFD Group (www.unicfd.ru)
11 -------------------------------------------------------------------------------
12 License
13  This file is part of QGDsolver library, based on OpenFOAM+.
14 
15  OpenFOAM is free software: you can redistribute it and/or modify it
16  under the terms of the GNU General Public License as published by
17  the Free Software Foundation, either version 3 of the License, or
18  (at your option) any later version.
19 
20  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23  for more details.
24 
25  You should have received a copy of the GNU General Public License
26  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
27 Application
28  particlesQHDFoam
29 
30 Description
31  Solver for unsteady 3D turbulent flow of incompressible fluid governed by
32  quasi-hydrodynamic dynamic (QHD) equations coupled with particles motion.
33 
34  QHD system of equations has been developed by scientific group from
35  Keldysh Institute of Applied Mathematics,
36  see http://elizarova.imamod.ru/selection-of-papers.html
37 
38  A comprehensive description of QGD equations and their applications
39  can be found here:
40  \verbatim
41  Elizarova, T.G.
42  "Quasi-Gas Dynamic equations"
43  Springer, 2009
44  \endverbatim
45 
46  A brief of theory on QGD and QHD system of equations:
47  \verbatim
48  Elizarova, T.G. and Sheretov, Y.V.
49  "Theoretical and numerical analysis of quasi-gasdynamic and quasi-hydrodynamic
50  equations"
51  J. Computational Mathematics and Mathematical Physics, vol. 41, no. 2, pp 219-234,
52  2001
53  \endverbatim
54 
55  Developed by UniCFD group (www.unicfd.ru) of ISP RAS (www.ispras.ru).
56 
57 
58 \*---------------------------------------------------------------------------*/
59 
60 #include "fvCFD.H"
61 #include "QHD.H"
62 #include "turbulentFluidThermoModel.H"
63 #include "turbulentTransportModel.H"
64 #include "basicThermoCloud.H"
65 
66 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
67 
68 int main(int argc, char *argv[])
69 {
70  #define NO_CONTROL
71  #include "postProcess.H"
72 
73  #include "setRootCase.H"
74  #include "createTime.H"
75  #include "createMesh.H"
76  #include "createFields.H"
77  #include "createFaceFields.H"
78  #include "createFaceFluxes.H"
79  #include "createTimeControls.H"
80 
81  turbulence->validate();
82 
83  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
84 
85  // Courant numbers used to adjust the time-step
86  scalar CoNum = 0.0;
87  scalar meanCoNum = 0.0;
88 
89  Info<< "\nStarting time loop\n" << endl;
90 
91  while (runTime.run())
92  {
93  /*
94  *
95  * Update fields
96  *
97  */
98  #include "updateFields.H"
99 
100  /*
101  *
102  * Update fluxes
103  *
104  */
105  #include "updateFluxes.H"
106 
107  /*
108  *
109  * Update time step
110  *
111  */
112  #include "readTimeControls.H"
113  #include "QHDCourantNo.H"
114  #include "setDeltaT-QGDQHD.H"
115 
116  runTime++;
117 
118  Info<< "Time = " << runTime.timeName() << nl << endl;
119 
120  parcels.evolve();
121 
122  // --- Store old time values
123  U.oldTime();
124  T.oldTime();
125  turbulence->correct();
126 
127  #include "QHDpEqn.H"
128 
129  #include "QHDUEqn.H"
130 
131  #include "QHDTEqn.H"
132 
133  if (p.needReference())
134  {
135  p += dimensionedScalar
136  (
137  "p",
138  p.dimensions(),
139  pRefValue - getRefCellValue(p, pRefCell)
140  );
141  }
142 
143  runTime.write();
144 
145  Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
146  << " ClockTime = " << runTime.elapsedClockTime() << " s"
147  << nl << endl;
148 
149  }
150 
151 
152 
153  Info<< "End\n" << endl;
154 
155  return 0;
156 }
157 
158 // ************************************************************************* //
Calculates the mean and maximum wave speed based Courant Numbers.
int main(int argc, char *argv[])
volVectorField U(IOobject("U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh)
Reset the timestep to maintain a constant maximum courant Number. Reduction of time-step is immediate...
Solver for unsteady 3D turbulent flow of incompressible fluid governed by quasi-hydrodynamic dynamic ...
Info<< "Thermo corrected"<< endl;autoPtr< compressible::turbulenceModel > turbulence
Definition: createFields.H:59
volScalarField & T
Definition: createFields.H:53
Includation for QHD solver. Equations of state for QHD based on density. Class for fvsc namespace...
Solution of momentum equation for QHD solver.
Solution of continuity equation for QGD solver.
volScalarField & p
Definition: createFields.H:52