Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
finiteVolume
finiteVolume
fvc
fvcGrad.C
Go to the documentation of this file.
1
/*---------------------------------------------------------------------------*\
2
========= |
3
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4
\\ / O peration |
5
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
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
\*---------------------------------------------------------------------------*/
25
26
#include "
fvcGrad.H
"
27
#include "
fvcSurfaceIntegrate.H
"
28
#include <
finiteVolume/fvMesh.H
>
29
#include <
finiteVolume/gaussGrad.H
>
30
31
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32
33
namespace
Foam
34
{
35
36
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37
38
namespace
fvc
39
{
40
41
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42
43
template
<
class
Type>
44
tmp
45
<
46
GeometricField
47
<
48
typename
outerProduct<vector, Type>::type
, fvPatchField, volMesh
49
>
50
>
51
grad
52
(
53
const
GeometricField<Type, fvsPatchField, surfaceMesh>
& ssf
54
)
55
{
56
return
fv::gaussGrad<Type>::grad
(ssf);
57
}
58
59
60
template
<
class
Type>
61
tmp
62
<
63
GeometricField
64
<
65
typename
outerProduct<vector,Type>::type
,
fvPatchField
,
volMesh
66
>
67
>
68
grad
69
(
70
const
tmp
<
GeometricField<Type, fvsPatchField, surfaceMesh>
>& tssf
71
)
72
{
73
typedef
typename
outerProduct<vector, Type>::type
GradType;
74
tmp<GeometricField<GradType, fvPatchField, volMesh>
> Grad
75
(
76
fvc::grad
(tssf())
77
);
78
tssf.clear();
79
return
Grad;
80
}
81
82
83
template
<
class
Type>
84
tmp
85
<
86
GeometricField
87
<
88
typename
outerProduct<vector,Type>::type
,
fvPatchField
,
volMesh
89
>
90
>
91
grad
92
(
93
const
GeometricField<Type, fvPatchField, volMesh>
& vf,
94
const
word
&
name
95
)
96
{
97
return
fv::gradScheme<Type>::New
98
(
99
vf.
mesh
(),
100
vf.
mesh
().
gradScheme
(name)
101
)().
grad
(vf);
102
}
103
104
105
template
<
class
Type>
106
tmp
107
<
108
GeometricField
109
<
110
typename
outerProduct<vector,Type>::type
,
fvPatchField
,
volMesh
111
>
112
>
113
grad
114
(
115
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>& tvf,
116
const
word
& name
117
)
118
{
119
tmp
120
<
121
GeometricField
122
<
123
typename
outerProduct<vector, Type>::type
,
fvPatchField
,
volMesh
124
>
125
> tGrad
126
(
127
fvc::grad
(tvf(), name)
128
);
129
tvf.clear();
130
return
tGrad;
131
}
132
133
134
template
<
class
Type>
135
tmp
136
<
137
GeometricField
138
<
139
typename
outerProduct<vector,Type>::type
,
fvPatchField
,
volMesh
140
>
141
>
142
grad
143
(
144
const
GeometricField<Type, fvPatchField, volMesh>
& vf
145
)
146
{
147
return
fvc::grad
(vf,
"grad("
+ vf.
name
() +
')'
);
148
}
149
150
151
template
<
class
Type>
152
tmp
153
<
154
GeometricField
155
<
156
typename
outerProduct<vector,Type>::type
,
fvPatchField
,
volMesh
157
>
158
>
159
grad
160
(
161
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>& tvf
162
)
163
{
164
typedef
typename
outerProduct<vector, Type>::type
GradType;
165
tmp<GeometricField<GradType, fvPatchField, volMesh>
> Grad
166
(
167
fvc::grad
(tvf())
168
);
169
tvf.clear();
170
return
Grad;
171
}
172
173
174
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
175
176
}
// End namespace fvc
177
178
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
179
180
}
// End namespace Foam
181
182
// ************************ vim: set sw=4 sts=4 et: ************************ //