initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / finiteVolume / finiteVolume / fvc / fvcFlux.C
blob247c4247fd604cf40104949489a714bb028d1554
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Description
26     
28 \*---------------------------------------------------------------------------*/
30 #include "fvcFlux.H"
31 #include "fvMesh.H"
32 #include "convectionScheme.H"
34 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
36 namespace Foam
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 namespace fvc
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 template<class Type>
47 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
48 flux
50     const surfaceScalarField& phi,
51     const GeometricField<Type, fvPatchField, volMesh>& vf,
52     const word& name
55     return fv::convectionScheme<Type>::New
56     (
57         vf.mesh(),
58         phi,
59         vf.mesh().divScheme(name)
60     )().flux(phi, vf);
64 template<class Type>
65 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
66 flux
68     const tmp<surfaceScalarField>& tphi,
69     const GeometricField<Type, fvPatchField, volMesh>& vf,
70     const word& name
73     tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > Flux
74     (
75         fvc::flux(tphi(), vf, name)
76     );
77     tphi.clear();
78     return Flux;
82 template<class Type>
83 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
84 flux
86     const surfaceScalarField& phi,
87     const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf,
88     const word& name
91     tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > Flux
92     (
93         fvc::flux(phi, tvf(), name)
94     );
95     tvf.clear();
96     return Flux;
100 template<class Type>
101 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
102 flux
104     const tmp<surfaceScalarField>& tphi,
105     const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf,
106     const word& name
109     tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > Flux
110     (
111         fvc::flux(tphi(), tvf(), name)
112     );
113     tphi.clear();
114     tvf.clear();
115     return Flux;
119 template<class Type>
120 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
121 flux
123     const surfaceScalarField& phi,
124     const GeometricField<Type, fvPatchField, volMesh>& vf
127     return fvc::flux
128     (
129         phi, vf, "flux("+phi.name()+','+vf.name()+')'
130     );
134 template<class Type>
135 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
136 flux
138     const tmp<surfaceScalarField>& tphi,
139     const GeometricField<Type, fvPatchField, volMesh>& vf
142     tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > Flux
143     (
144         fvc::flux(tphi(), vf)
145     );
146     tphi.clear();
147     return Flux;
151 template<class Type>
152 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
153 flux
155     const surfaceScalarField& phi,
156     const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf
159     tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > Flux
160     (
161         fvc::flux(phi, tvf())
162     );
163     tvf.clear();
164     return Flux;
168 template<class Type>
169 tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
170 flux
172     const tmp<surfaceScalarField>& tphi,
173     const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf
176     tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > Flux
177     (
178         fvc::flux(tphi(), tvf())
179     );
180     tphi.clear();
181     tvf.clear();
182     return Flux;
186 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188 } // End namespace fvc
190 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
192 } // End namespace Foam
194 // ************************************************************************* //