1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
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
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 \*---------------------------------------------------------------------------*/
27 #include "fvcAverage.H"
28 #include "fvcSurfaceIntegrate.H"
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 tmp<GeometricField<Type, fvPatchField, volMesh> >
48 const GeometricField<Type, fvsPatchField, surfaceMesh>& ssf
51 const fvMesh& mesh = ssf.mesh();
53 tmp<GeometricField<Type, fvPatchField, volMesh> > taverage
55 new GeometricField<Type, fvPatchField, volMesh>
59 "average("+ssf.name()+')',
70 GeometricField<Type, fvPatchField, volMesh>& av = taverage();
74 surfaceSum(mesh.magSf()*ssf)/surfaceSum(mesh.magSf())
77 forAll(av.boundaryField(), patchi)
79 av.boundaryField()[patchi] = ssf.boundaryField()[patchi];
82 av.correctBoundaryConditions();
89 tmp<GeometricField<Type, fvPatchField, volMesh> >
92 const tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >& tssf
95 tmp<GeometricField<Type, fvPatchField, volMesh> > taverage
105 tmp<GeometricField<Type, fvPatchField, volMesh> >
108 const GeometricField<Type, fvPatchField, volMesh>& vtf
111 return fvc::average(linearInterpolate(vtf));
116 tmp<GeometricField<Type, fvPatchField, volMesh> >
119 const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvtf
122 tmp<GeometricField<Type, fvPatchField, volMesh> > taverage
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 } // End namespace fvc
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 } // End namespace Foam
139 // ************************************************************************* //