diff --git a/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.C b/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.C index f01c72ce6c..783a20482e 100644 --- a/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.C +++ b/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -49,6 +49,7 @@ volumeIntegrate return vf.mesh().V()*vf.internalField(); } + template tmp > volumeIntegrate @@ -62,6 +63,23 @@ volumeIntegrate } +template +tmp > volumeIntegrate(const DimensionedField& df) +{ + return df.mesh().V()*df.field(); +} + + +template +tmp > +volumeIntegrate(const tmp >& tdf) +{ + tmp > tdidf = tdf().mesh().V()*tdf().field(); + tdf.clear(); + return tdidf; +} + + template dimensioned domainIntegrate @@ -77,9 +95,9 @@ domainIntegrate ); } + template -dimensioned -domainIntegrate +dimensioned domainIntegrate ( const tmp >& tvf ) @@ -90,6 +108,33 @@ domainIntegrate } +template +dimensioned domainIntegrate +( + const DimensionedField& df +) +{ + return dimensioned + ( + "domainIntegrate(" + df.name() + ')', + dimVol*df.dimensions(), + gSum(fvc::volumeIntegrate(df)) + ); +} + + +template +dimensioned domainIntegrate +( + const tmp >& tdf +) +{ + dimensioned integral = domainIntegrate(tdf()); + tdf.clear(); + return integral; +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace fvc diff --git a/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.H b/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.H index 741d1451b4..784087ee30 100644 --- a/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.H +++ b/src/finiteVolume/finiteVolume/fvc/fvcVolumeIntegrate.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -67,6 +67,19 @@ namespace fvc ); + template + tmp > volumeIntegrate + ( + const DimensionedField& + ); + + template + tmp > volumeIntegrate + ( + const tmp >& + ); + + template dimensioned domainIntegrate ( @@ -78,6 +91,19 @@ namespace fvc ( const tmp >& ); + + + template + dimensioned domainIntegrate + ( + const DimensionedField& + ); + + template + dimensioned domainIntegrate + ( + const tmp >& + ); }