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
fvcFlux.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
Description
25
26
27
\*---------------------------------------------------------------------------*/
28
29
#include "
fvcFlux.H
"
30
#include <
finiteVolume/fvMesh.H
>
31
#include <
finiteVolume/convectionScheme.H
>
32
33
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
34
35
namespace
Foam
36
{
37
38
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39
40
namespace
fvc
41
{
42
43
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44
45
template
<
class
Type>
46
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
47
flux
48
(
49
const
surfaceScalarField
&
phi
,
50
const
GeometricField<Type, fvPatchField, volMesh>
& vf,
51
const
word
&
name
52
)
53
{
54
return
fv::convectionScheme<Type>::New
55
(
56
vf.
mesh
(),
57
phi
,
58
vf.
mesh
().
divScheme
(name)
59
)().
flux
(phi, vf);
60
}
61
62
63
template
<
class
Type>
64
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
>
65
flux
66
(
67
const
tmp<surfaceScalarField>
& tphi,
68
const
GeometricField<Type, fvPatchField, volMesh>
& vf,
69
const
word
& name
70
)
71
{
72
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
> Flux
73
(
74
fvc::flux
(tphi(), vf, name)
75
);
76
tphi.
clear
();
77
return
Flux;
78
}
79
80
81
template
<
class
Type>
82
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
>
83
flux
84
(
85
const
surfaceScalarField
& phi,
86
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>& tvf,
87
const
word
& name
88
)
89
{
90
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
> Flux
91
(
92
fvc::flux
(phi, tvf(), name)
93
);
94
tvf.clear();
95
return
Flux;
96
}
97
98
99
template
<
class
Type>
100
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
>
101
flux
102
(
103
const
tmp<surfaceScalarField>
& tphi,
104
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>& tvf,
105
const
word
& name
106
)
107
{
108
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
> Flux
109
(
110
fvc::flux
(tphi(), tvf(), name)
111
);
112
tphi.
clear
();
113
tvf.clear();
114
return
Flux;
115
}
116
117
118
template
<
class
Type>
119
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
>
120
flux
121
(
122
const
surfaceScalarField
& phi,
123
const
GeometricField<Type, fvPatchField, volMesh>
& vf
124
)
125
{
126
return
fvc::flux
127
(
128
phi, vf,
"flux("
+phi.
name
()+
','
+vf.
name
()+
')'
129
);
130
}
131
132
133
template
<
class
Type>
134
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
>
135
flux
136
(
137
const
tmp<surfaceScalarField>
& tphi,
138
const
GeometricField<Type, fvPatchField, volMesh>
& vf
139
)
140
{
141
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
> Flux
142
(
143
fvc::flux
(tphi(), vf)
144
);
145
tphi.
clear
();
146
return
Flux;
147
}
148
149
150
template
<
class
Type>
151
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
>
152
flux
153
(
154
const
surfaceScalarField
& phi,
155
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>& tvf
156
)
157
{
158
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
> Flux
159
(
160
fvc::flux
(phi, tvf())
161
);
162
tvf.clear();
163
return
Flux;
164
}
165
166
167
template
<
class
Type>
168
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
>
169
flux
170
(
171
const
tmp<surfaceScalarField>
& tphi,
172
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>& tvf
173
)
174
{
175
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>
> Flux
176
(
177
fvc::flux
(tphi(), tvf())
178
);
179
tphi.
clear
();
180
tvf.clear();
181
return
Flux;
182
}
183
184
185
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186
187
}
// End namespace fvc
188
189
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190
191
}
// End namespace Foam
192
193
// ************************ vim: set sw=4 sts=4 et: ************************ //