OpenFOAM
dev
The OpenFOAM Foundation
LimitFuncs.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) 2011-2022 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
Namespace
25
Foam::limitFuncs
26
27
Description
28
Namespace for limiting functions
29
30
31
Class
32
Foam::limitFuncs::LimitFuncs
33
34
Description
35
Class to create NVD/TVD limited weighting-factors.
36
37
The particular interpolation scheme class is supplied as a template
38
argument, the weight function of which is called by the weight function
39
of this class for the internal faces as well as faces of coupled
40
patches (e.g. processor-processor patches). The weight function is
41
supplied the centred interpolation weighting factor, the face-flux, the
42
cell and face gradients (from which the normalised variable
43
distribution may be created) and the cell centre distance.
44
45
This code organisation is both neat and efficient, allowing for
46
convenient implementation of new schemes to run on parallelised cases.
47
48
SourceFiles
49
LimitFuncs.C
50
51
\*---------------------------------------------------------------------------*/
52
53
#ifndef LimitFuncs_H
54
#define LimitFuncs_H
55
56
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57
58
namespace
Foam
59
{
60
61
namespace
limitFuncs
62
{
63
64
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
65
66
template
<
class
Type>
67
class
null
68
{
69
public
:
70
71
null
()
72
{}
73
74
inline
tmp<VolField<Type>
> operator()
75
(
76
const
VolField<Type>
& phi
77
)
const
78
{
79
return
phi;
80
}
81
};
82
83
84
template
<
class
Type>
85
class
magSqr
86
{
87
public
:
88
89
magSqr
()
90
{}
91
92
inline
tmp<volScalarField>
operator()
93
(
94
const
VolField<Type>
&
95
)
const
;
96
};
97
98
template
<>
99
inline
tmp<volScalarField>
magSqr<scalar>::operator
()
100
(
101
const
volScalarField
& phi
102
)
const
;
103
104
template
<>
105
inline
tmp<volScalarField>
magSqr<symmTensor>::operator
()
106
(
107
const
volSymmTensorField
& phi
108
)
const
;
109
110
template
<>
111
inline
tmp<volScalarField>
magSqr<tensor>::operator
()
112
(
113
const
volTensorField
& phi
114
)
const
;
115
116
117
template
<
class
Type>
118
class
rhoMagSqr
119
{
120
public
:
121
122
rhoMagSqr
()
123
{}
124
125
inline
tmp<volScalarField>
operator()
126
(
127
const
VolField<Type>
&
128
)
const
;
129
};
130
131
template
<>
132
inline
tmp<volScalarField>
rhoMagSqr<scalar>::operator
()
133
(
134
const
volScalarField
& phi
135
)
const
;
136
137
138
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139
140
}
// End namespace limitFuncs
141
}
// End namespace Foam
142
143
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144
145
#ifdef NoRepository
146
#include "
LimitFuncs.C
"
147
#endif
148
149
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150
151
#endif
152
153
// ************************************************************************* //
LimitFuncs.C
Foam::GeometricField
Generic GeometricField class.
Definition:
GeometricField.H:81
Foam::limitFuncs::magSqr
Definition:
LimitFuncs.H:85
Foam::limitFuncs::magSqr::magSqr
magSqr()
Definition:
LimitFuncs.H:88
Foam::limitFuncs::null
Definition:
LimitFuncs.H:67
Foam::limitFuncs::rhoMagSqr
Definition:
LimitFuncs.H:118
Foam::limitFuncs::rhoMagSqr::rhoMagSqr
rhoMagSqr()
Definition:
LimitFuncs.H:121
Foam::tmp
A class for managing temporary objects.
Definition:
tmp.H:55
Foam
Namespace for OpenFOAM.
Definition:
atmBoundaryLayer.H:214
src
finiteVolume
interpolation
surfaceInterpolation
limitedSchemes
LimitedScheme
LimitFuncs.H
Generated by
1.9.1