CMULES.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) 2013-2016 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Global
27 MULES
28
29Description
30 CMULES: Multidimensional universal limiter for
31 explicit corrected implicit solution.
32
33 Solve a convective-only transport equation using an explicit universal
34 multi-dimensional limiter to correct an implicit conservative bounded
35 obtained using rigorously bounded schemes such as Euler-implicit in time
36 upwind in space.
37
38 Parameters are the variable to solve, the normal convective flux and the
39 actual explicit flux of the variable which is also used to return limited
40 flux used in the bounded-solution.
41
42SourceFiles
43 CMULESTemplates.C
44
45\*---------------------------------------------------------------------------*/
46
47#ifndef CMULES_H
48#define CMULES_H
49
50#include "MULES.H"
51#include "EulerDdtScheme.H"
52#include "localEulerDdtScheme.H"
54
55// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57namespace Foam
58{
59namespace MULES
60{
61
62// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
63
64template<class RdeltaTType, class RhoType, class SpType, class SuType>
65void correct
66(
67 const RdeltaTType& rDeltaT,
68 const RhoType& rho,
70 const surfaceScalarField& phiCorr,
71 const SpType& Sp,
72 const SuType& Su
73);
74
75template<class RhoType>
76void correct
77(
78 const RhoType& rho,
80 const surfaceScalarField& phiCorr
81);
82
83template<class RhoType, class SpType, class SuType>
84void correct
85(
86 const RhoType& rho,
88 const surfaceScalarField& phiCorr,
89 const SpType& Sp,
90 const SuType& Su
91);
92
93template<class RhoType, class PsiMaxType, class PsiMinType>
94void correct
95(
96 const RhoType& rho,
99 surfaceScalarField& phiCorr,
100 const PsiMaxType& psiMax,
101 const PsiMinType& psiMin
102);
103
104template
105<
106 class RhoType,
107 class SpType,
108 class SuType,
109 class PsiMaxType,
110 class PsiMinType
111>
112void correct
113(
114 const RhoType& rho,
116 const surfaceScalarField& phi,
117 surfaceScalarField& phiCorr,
118 const SpType& Sp,
119 const SuType& Su,
120 const PsiMaxType& psiMax,
121 const PsiMinType& psiMin
122);
123
124template
125<
126 class RdeltaTType,
127 class RhoType,
128 class SpType,
129 class SuType,
130 class PsiMaxType,
131 class PsiMinType
132>
133void limiterCorr
134(
135 scalarField& allLambda,
136 const RdeltaTType& rDeltaT,
137 const RhoType& rho,
138 const volScalarField& psi,
139 const surfaceScalarField& phi,
140 const surfaceScalarField& phiCorr,
141 const SpType& Sp,
142 const SuType& Su,
143 const PsiMaxType& psiMax,
144 const PsiMinType& psiMin
145);
146
147
148template
149<
150 class RdeltaTType,
151 class RhoType,
152 class SpType,
153 class SuType,
154 class PsiMaxType,
155 class PsiMinType
156>
157void limitCorr
158(
159 const RdeltaTType& rDeltaT,
160 const RhoType& rho,
161 const volScalarField& psi,
162 const surfaceScalarField& phi,
163 surfaceScalarField& phiCorr,
164 const SpType& Sp,
165 const SuType& Su,
166 const PsiMaxType& psiMax,
167 const PsiMinType& psiMin
168);
169
170
171// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172
173} // End namespace MULES
174} // End namespace Foam
175
176// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177
178#ifdef NoRepository
179 #include "CMULESTemplates.C"
180#endif
181
182// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
183
184#endif
185
186// ************************************************************************* //
MULES: Multidimensional universal limiter for explicit solution.
surfaceScalarField & phi
thermo correct()
const volScalarField & psi
zeroField Su
Definition: alphaSuSp.H:1
zeroField Sp
Definition: alphaSuSp.H:2
void limiterCorr(scalarField &allLambda, const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phi, const surfaceScalarField &phiCorr, const SpType &Sp, const SuType &Su, const PsiMaxType &psiMax, const PsiMinType &psiMin)
void limitCorr(const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phi, surfaceScalarField &phiCorr, const SpType &Sp, const SuType &Su, const PsiMaxType &psiMax, const PsiMinType &psiMin)
Namespace for OpenFOAM.