diff --git a/src/postProcessing/functionObjects/fvTools/Make/files b/src/postProcessing/functionObjects/fvTools/Make/files
index e19fc236db3983f42d389c125803aa0f55095204..f5940e8ce3bc4928c8cef7f60d9666f5576f370d 100644
--- a/src/postProcessing/functionObjects/fvTools/Make/files
+++ b/src/postProcessing/functionObjects/fvTools/Make/files
@@ -1,3 +1,6 @@
+calcFvcDiv/calcFvcDiv.C
+calcFvcDiv/calcFvcDivFunctionObject.C
+
 calcFvcGrad/calcFvcGrad.C
 calcFvcGrad/calcFvcGradFunctionObject.C
 
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/IOcalcFvcDiv.H b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/IOcalcFvcDiv.H
new file mode 100644
index 0000000000000000000000000000000000000000..245aae6e2bf89adc3b50197cd94687d2cdeac8ad
--- /dev/null
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/IOcalcFvcDiv.H
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+Typedef
+    Foam::IOcalcFvcDiv
+
+Description
+    Instance of the generic IOOutputFilter for calcFvcDiv.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef IOcalcFvcDiv_H
+#define IOcalcFvcDiv_H
+
+#include "calcFvcDiv.H"
+#include "IOOutputFilter.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    typedef IOOutputFilter<calcFvcDiv> IOcalcFvcDiv;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C
new file mode 100644
index 0000000000000000000000000000000000000000..934fb58d75097dc0621f7c6294ebb4f4943cda4f
--- /dev/null
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C
@@ -0,0 +1,158 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "calcFvcDiv.H"
+#include "volFields.H"
+#include "dictionary.H"
+#include "calcFvcDiv.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(Foam::calcFvcDiv, 0);
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+Foam::volScalarField& Foam::calcFvcDiv::divField
+(
+    const word& divName,
+    const dimensionSet& dims
+)
+{
+    const fvMesh& mesh = refCast<const fvMesh>(obr_);
+
+    if (!mesh.foundObject<volScalarField>(divName))
+    {
+        volScalarField* divFieldPtr
+        (
+            new volScalarField
+            (
+                IOobject
+                (
+                    divName,
+                    mesh.time().timeName(),
+                    mesh,
+                    IOobject::NO_READ,
+                    IOobject::NO_WRITE
+                ),
+                mesh,
+                dimensionedScalar("zero", dims/dimLength, 0.0)
+            )
+        );
+
+        mesh.objectRegistry::store(divFieldPtr);
+    }
+
+    const volScalarField& field = mesh.lookupObject<volScalarField>(divName);
+
+    return const_cast<volScalarField&>(field);
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::calcFvcDiv::calcFvcDiv
+(
+    const word& name,
+    const objectRegistry& obr,
+    const dictionary& dict,
+    const bool loadFromFiles
+)
+:
+    name_(name),
+    obr_(obr),
+    active_(true),
+    fieldName_("undefined-fieldName"),
+    resultName_("undefined-resultName")
+{
+    // Check if the available mesh is an fvMesh, otherwise deactivate
+    if (!isA<fvMesh>(obr_))
+    {
+        active_ = false;
+        WarningIn
+        (
+            "calcFvcDiv::calcFvcDiv"
+            "("
+                "const word&, "
+                "const objectRegistry&, "
+                "const dictionary&, "
+                "const bool"
+            ")"
+        )   << "No fvMesh available, deactivating." << nl
+            << endl;
+    }
+
+    read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::calcFvcDiv::~calcFvcDiv()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::calcFvcDiv::read(const dictionary& dict)
+{
+    if (active_)
+    {
+        dict.lookup("fieldName") >> fieldName_;
+        dict.lookup("resultName") >> resultName_;
+    }
+}
+
+
+void Foam::calcFvcDiv::execute()
+{
+    // Do nothing - only valid on write
+}
+
+
+void Foam::calcFvcDiv::end()
+{
+    // Do nothing - only valid on write
+}
+
+
+void Foam::calcFvcDiv::write()
+{
+    if (active_)
+    {
+        bool processed = false;
+
+        calcDiv<surfaceScalarField>(fieldName_, resultName_, processed);
+        calcDiv<volVectorField>(fieldName_, resultName_, processed);
+
+        if (!processed)
+        {
+            WarningIn("void Foam::calcFvcDiv::write()")
+                << "Unprocessed field " << fieldName_ << endl;
+        }
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H
new file mode 100644
index 0000000000000000000000000000000000000000..bc07e0fab0ae037cab4d1b6909deaffee5078c17
--- /dev/null
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H
@@ -0,0 +1,177 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::calcFvcDiv
+
+Group
+    grpFVFunctionObjects
+
+Description
+    This function object calculates the divergence of a field.  The operation is
+    limited to surfaceScalarFields and volumeVector fields, and the output is a
+    volume scalar field.
+
+SourceFiles
+    calcFvcDiv.C
+    IOcalcFvcDiv.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef calcFvcDiv_H
+#define calcFvcDiv_H
+
+#include "volFieldsFwd.H"
+#include "surfaceFieldsFwd.H"
+#include "pointFieldFwd.H"
+#include "OFstream.H"
+#include "Switch.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class dictionary;
+class mapPolyMesh;
+class dimensionSet;
+
+/*---------------------------------------------------------------------------*\
+                         Class calcFvcDiv Declaration
+\*---------------------------------------------------------------------------*/
+
+class calcFvcDiv
+{
+    // Private data
+
+        //- Name of this calcFvcDiv object
+        word name_;
+
+        //- Reference to the database
+        const objectRegistry& obr_;
+
+        //- On/off switch
+        bool active_;
+
+        //- Name of field to process
+        word fieldName_;
+
+        //- Name of result field
+        word resultName_;
+
+
+    // Private Member Functions
+
+        //- Helper function to create/store/return the divergence field
+        volScalarField& divField
+        (
+            const word& gradName,
+            const dimensionSet& dims
+        );
+
+        //- Helper function to calculate the divergence of different field types
+        template<class FieldType>
+        void calcDiv
+        (
+            const word& fieldName,
+            const word& resultName,
+            bool& processed
+        );
+
+        //- Disallow default bitwise copy construct
+        calcFvcDiv(const calcFvcDiv&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const calcFvcDiv&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("calcFvcDiv");
+
+
+    // Constructors
+
+        //- Construct for given objectRegistry and dictionary.
+        //  Allow the possibility to load fields from files
+        calcFvcDiv
+        (
+            const word& name,
+            const objectRegistry&,
+            const dictionary&,
+            const bool loadFromFiles = false
+        );
+
+
+    //- Destructor
+    virtual ~calcFvcDiv();
+
+
+    // Member Functions
+
+        //- Return name of the set of calcFvcDiv
+        virtual const word& name() const
+        {
+            return name_;
+        }
+
+        //- Read the calcFvcDiv data
+        virtual void read(const dictionary&);
+
+        //- Execute, currently does nothing
+        virtual void execute();
+
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
+        //- Calculate the calcFvcDiv and write
+        virtual void write();
+
+        //- Update for changes of mesh
+        virtual void updateMesh(const mapPolyMesh&)
+        {}
+
+        //- Update for changes of mesh
+        virtual void movePoints(const pointField&)
+        {}
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "calcFvcDivTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.C
new file mode 100644
index 0000000000000000000000000000000000000000..32f990ec09f6f7e54596d0efe261727e66f2ca5e
--- /dev/null
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.C
@@ -0,0 +1,42 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "calcFvcDivFunctionObject.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineNamedTemplateTypeNameAndDebug(calcFvcDivFunctionObject, 0);
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        calcFvcDivFunctionObject,
+        dictionary
+    );
+}
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.H b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.H
new file mode 100644
index 0000000000000000000000000000000000000000..5cc8af7332b65cdb8fdd4b6fa2ec6c2d8d6179d1
--- /dev/null
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.H
@@ -0,0 +1,53 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+Typedef
+    Foam::calcFvcDivFunctionObject
+
+Description
+    FunctionObject wrapper around calcFvcDiv to allow it to be created
+    via the functions entry within controlDict.
+
+SourceFiles
+    calcFvcDivFunctionObject.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef calcFvcDivFunctionObject_H
+#define calcFvcDivFunctionObject_H
+
+#include "calcFvcDiv.H"
+#include "OutputFilterFunctionObject.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    typedef OutputFilterFunctionObject<calcFvcDiv> calcFvcDivFunctionObject;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivTemplates.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..cfdf55f1bfbeae20c7dea2f7f420bd1b16eca475
--- /dev/null
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivTemplates.C
@@ -0,0 +1,65 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvMesh.H"
+#include "fvcDiv.H"
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class FieldType>
+void Foam::calcFvcDiv::calcDiv
+(
+    const word& fieldName,
+    const word& resultName,
+    bool& processed
+)
+{
+    const fvMesh& mesh = refCast<const fvMesh>(obr_);
+
+    word divName = resultName;
+    if (divName == "none")
+    {
+        divName = "fvc::div(" + fieldName + ")";
+    }
+
+    if (mesh.foundObject<FieldType>(fieldName))
+    {
+        const FieldType& vf = mesh.lookupObject<FieldType>(fieldName);
+
+        volScalarField& field = divField(divName, vf.dimensions());
+
+        field = fvc::div(vf);
+
+        Info<< type() << " output:" << nl
+            << "    writing " << field.name() << " field" << nl << endl;
+
+        field.write();
+
+        processed = true;
+    }
+}
+
+
+// ************************************************************************* //