minmodGradientLimiter.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) 2018 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
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 
26 Class
27  Foam::fv::gradientLimiters::minmod
28 
29 Description
30  Minmod gradient limiter
31 
32  This is the default gradient limiter which clips the gradient to remove cell
33  to face extrapolation unboundedness. It corresponds to the original
34  cellLimitedGrad implementation before the addition of run-time select-able
35  limiter functions.
36 
37  Example:
38  \verbatim
39  gradSchemes
40  {
41  default Gauss linear;
42  limited cellLimited Gauss linear 1;
43  }
44  \endverbatim
45 
46 See also
47  Foam::fv::cellLimitedGrad
48 
49 \*---------------------------------------------------------------------------*/
50 
51 #ifndef minmodGradientLimiter_H
52 #define minmodGradientLimiter_H
53 
54 #include "Istream.H"
55 
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 
58 namespace Foam
59 {
60 
61 namespace fv
62 {
63 
64 namespace gradientLimiters
65 {
66 
67 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
68 
69 class minmod
70 {
71 
72 public:
73 
74  // Constructors
75 
76  minmod(Istream&)
77  {}
78 
79 
80  // Member Functions
81 
82  inline scalar limiter(const scalar r) const
83  {
84  return min(r, 1);
85  }
86 };
87 
88 
89 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 
91 } // End namespace gradientLimiters
92 
93 } // End namespace fv
94 
95 } // End namespace Foam
96 
97 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
98 
99 #endif
100 
101 // ************************************************************************* //
Foam::min
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
Definition: hashSets.C:33
Foam::fv::gradientLimiters::minmod::minmod
minmod(Istream &)
Definition: minmodGradientLimiter.H:75
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:61
Istream.H
Foam::fv::gradientLimiters::minmod
Cubic gradient limiter.
Definition: minmodGradientLimiter.H:68
Foam::fv::gradientLimiters::minmod::limiter
scalar limiter(const scalar r) const
Definition: minmodGradientLimiter.H:81
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
fv
labelList fv(nPoints)