diff --git a/src/finiteVolume/finiteVolume/fvc/fvcCellReduce.C b/src/finiteVolume/finiteVolume/fvc/fvcCellReduce.C
new file mode 100644
index 0000000000..63c718375b
--- /dev/null
+++ b/src/finiteVolume/finiteVolume/fvc/fvcCellReduce.C
@@ -0,0 +1,118 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvcCellReduce.H"
+#include "fvMesh.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+#include "zeroGradientFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace fvc
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template
+tmp > cellReduce
+(
+ const GeometricField& ssf,
+ const CombineOp& cop
+)
+{
+ typedef GeometricField volFieldType;
+
+ const fvMesh& mesh = ssf.mesh();
+
+ tmp tresult
+ (
+ new volFieldType
+ (
+ IOobject
+ (
+ "cellReduce(" + ssf.name() + ')',
+ ssf.instance(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ ),
+ mesh,
+ dimensioned("0", ssf.dimensions(), pTraits::zero),
+ zeroGradientFvPatchField::typeName
+ )
+ );
+
+ volFieldType& result = tresult();
+
+ const labelUList& own = mesh.owner();
+ const labelUList& nbr = mesh.neighbour();
+
+ forAll(own, i)
+ {
+ label cellI = own[i];
+ cop(result[cellI], ssf[i]);
+ }
+ forAll(nbr, i)
+ {
+ label cellI = nbr[i];
+ cop(result[cellI], ssf[i]);
+ }
+
+ result.correctBoundaryConditions();
+
+ return tresult;
+}
+
+
+template
+tmp > cellReduce
+(
+ const tmp&> tssf,
+ const CombineOp& cop
+)
+{
+ tmp >
+ tvf(cellReduce(cop, tssf));
+
+ tssf.clear();
+ return tvf;
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace fvc
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/finiteVolume/fvc/fvcCellReduce.H b/src/finiteVolume/finiteVolume/fvc/fvcCellReduce.H
new file mode 100644
index 0000000000..19bd24135a
--- /dev/null
+++ b/src/finiteVolume/finiteVolume/fvc/fvcCellReduce.H
@@ -0,0 +1,82 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+InNamespace
+ Foam::fvc
+
+Description
+ Construct a volume field from a surface field using a combine operator.
+
+SourceFiles
+ fvcCellReduce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef fvcCellReduce_H
+#define fvcCellReduce_H
+
+#include "volFieldsFwd.H"
+#include "surfaceFieldsFwd.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Namespace fvc functions Declaration
+\*---------------------------------------------------------------------------*/
+
+namespace fvc
+{
+ template
+ tmp > cellReduce
+ (
+ const GeometricField&,
+ const CombineOp& cop
+ );
+
+ template
+ tmp > cellReduce
+ (
+ const tmp >&,
+ const CombineOp& cop
+ );
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+# include "fvcCellReduce.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //