All Classes Namespaces Files Functions Variables Typedefs Friends Macros Groups
MULESTEqn.H
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 
28 Global
29  MULESTEqn
30 
31 Description
32  Solves temperature scalar transport equation using MULES (Multidimensional
33  universal limiter for explicit solution) technology.
34 
35 \*---------------------------------------------------------------------------*/
36 
37 
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 
40 {
41  Field<scalar> maxT (T.size(), gMax(T));
42  Field<scalar> minT (T.size(), gMin(T));
43 
44  MULES::explicitSolve
45  (
46  geometricOneField(),
47  T,
48  phi,
49  phiTf,
50  zeroField(),
51  zeroField(),
52  maxT,
53  minT
54  );
55 
57  {
58  solve(fvm::ddt(T) - fvc::ddt(T) - fvm::laplacian(Hif, T) == TSu);
59  }
60  else
61  {
62  solve(fvm::ddt(T) - fvc::ddt(T) - fvc::laplacian(Hif, T) == TSu);
63  }
64 }
65 
66 
67 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
68 
69 
70 // ************************************************************************* //
Field< scalar > minT(T.size(), gMin(T))
Switch implicitDiffusion(thermo.implicitDiffusion())
EEqn solve()
surfaceScalarField phiTf("phiTf", phi *Tf)
Hif
Definition: updateFields.H:39
volScalarField & T
Definition: createFields.H:53
fvScalarMatrix TSu(T, T.dimensions()*dimVolume/dimTime)