Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "fvcVolumeIntegrate.H"
00027 #include <finiteVolume/fvMesh.H>
00028 #include <OpenFOAM/Field.H>
00029
00030
00031
00032 namespace Foam
00033 {
00034
00035
00036
00037 namespace fvc
00038 {
00039
00040
00041
00042 template<class Type>
00043 tmp<Field<Type> >
00044 volumeIntegrate
00045 (
00046 const GeometricField<Type, fvPatchField, volMesh>& vf
00047 )
00048 {
00049 return vf.mesh().V()*vf.internalField();
00050 }
00051
00052 template<class Type>
00053 tmp<Field<Type> >
00054 volumeIntegrate
00055 (
00056 const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf
00057 )
00058 {
00059 tmp<Field<Type> > tvivf = tvf().mesh().V()*tvf().internalField();
00060 tvf.clear();
00061 return tvivf;
00062 }
00063
00064
00065 template<class Type>
00066 dimensioned<Type>
00067 domainIntegrate
00068 (
00069 const GeometricField<Type, fvPatchField, volMesh>& vf
00070 )
00071 {
00072 return dimensioned<Type>
00073 (
00074 "domainIntegrate(" + vf.name() + ')',
00075 dimVol*vf.dimensions(),
00076 gSum(fvc::volumeIntegrate(vf))
00077 );
00078 }
00079
00080 template<class Type>
00081 dimensioned<Type>
00082 domainIntegrate
00083 (
00084 const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf
00085 )
00086 {
00087 dimensioned<Type> integral = domainIntegrate(tvf());
00088 tvf.clear();
00089 return integral;
00090 }
00091
00092
00093
00094
00095 }
00096
00097
00098
00099 }
00100
00101