All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
minmodGradientLimiter.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::fv::gradientLimiters::minmod
26 
27 Description
28  Minmod gradient limiter
29 
30  This is the default gradient limiter which clips the gradient to remove cell
31  to face extrapolation unboundedness. It corresponds to the original
32  cellLimitedGrad implementation before the addition of run-time select-able
33  limiter functions.
34 
35  Example:
36  \verbatim
37  gradSchemes
38  {
39  default Gauss linear;
40  limited cellLimited Gauss linear 1;
41  }
42  \endverbatim
43 
44 See also
45  Foam::fv::cellLimitedGrad
46 
47 \*---------------------------------------------------------------------------*/
48 
49 #ifndef minmodGradientLimiter_H
50 #define minmodGradientLimiter_H
51 
52 #include "Istream.H"
53 
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55 
56 namespace Foam
57 {
58 
59 namespace fv
60 {
61 
62 namespace gradientLimiters
63 {
64 
65 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
66 
67 class minmod
68 {
69 
70 public:
71 
72  // Constructors
73 
74  minmod(Istream&)
75  {}
76 
77 
78  // Member Functions
79 
80  inline scalar limiter(const scalar r) const
81  {
82  return min(r, 1);
83  }
84 };
85 
86 
87 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
88 
89 } // End namespace gradientLimiters
90 
91 } // End namespace fv
92 
93 } // End namespace Foam
94 
95 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
96 
97 #endif
98 
99 // ************************************************************************* //
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition: Istream.H:57
scalar limiter(const scalar r) const
labelList fv(nPoints)
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
Namespace for OpenFOAM.