FreeFOAM The Cross-Platform CFD Toolkit
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>
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,
51  const word& name
52 )
53 {
55  (
56  vf.mesh(),
57  phi,
58  vf.mesh().divScheme(name)
59  )().flux(phi, vf);
60 }
61 
62 
63 template<class Type>
65 flux
66 (
67  const tmp<surfaceScalarField>& tphi,
69  const word& name
70 )
71 {
73  (
74  fvc::flux(tphi(), vf, name)
75  );
76  tphi.clear();
77  return Flux;
78 }
79 
80 
81 template<class Type>
83 flux
84 (
85  const surfaceScalarField& phi,
87  const word& name
88 )
89 {
91  (
92  fvc::flux(phi, tvf(), name)
93  );
94  tvf.clear();
95  return Flux;
96 }
97 
98 
99 template<class Type>
101 flux
102 (
103  const tmp<surfaceScalarField>& tphi,
105  const word& name
106 )
107 {
109  (
110  fvc::flux(tphi(), tvf(), name)
111  );
112  tphi.clear();
113  tvf.clear();
114  return Flux;
115 }
116 
117 
118 template<class Type>
120 flux
121 (
122  const surfaceScalarField& phi,
124 )
125 {
126  return fvc::flux
127  (
128  phi, vf, "flux("+phi.name()+','+vf.name()+')'
129  );
130 }
131 
132 
133 template<class Type>
135 flux
136 (
137  const tmp<surfaceScalarField>& tphi,
139 )
140 {
142  (
143  fvc::flux(tphi(), vf)
144  );
145  tphi.clear();
146  return Flux;
147 }
148 
149 
150 template<class Type>
152 flux
153 (
154  const surfaceScalarField& phi,
156 )
157 {
159  (
160  fvc::flux(phi, tvf())
161  );
162  tvf.clear();
163  return Flux;
164 }
165 
166 
167 template<class Type>
169 flux
170 (
171  const tmp<surfaceScalarField>& tphi,
173 )
174 {
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: ************************ //