diff --git a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/files b/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/files
deleted file mode 100644
index 0e96ff6323..0000000000
--- a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-writeCellCentres.C
-
-EXE = $(FOAM_APPBIN)/writeCellCentres
diff --git a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/options b/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/options
deleted file mode 100644
index fa15f12452..0000000000
--- a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/options
+++ /dev/null
@@ -1,5 +0,0 @@
-EXE_INC = \
- -I$(LIB_SRC)/finiteVolume/lnInclude
-
-EXE_LIBS = \
- -lfiniteVolume
diff --git a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/writeCellCentres.C b/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/writeCellCentres.C
deleted file mode 100644
index 5338be0df9..0000000000
--- a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/writeCellCentres.C
+++ /dev/null
@@ -1,140 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration |
- \\ / A nd | Copyright (C) 2011-2016 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 .
-
-Description
- Write the three components of the cell centres as volScalarFields so
- they can be used in postprocessing in thresholding.
-
-\*---------------------------------------------------------------------------*/
-
-#include "argList.H"
-#include "timeSelector.H"
-#include "Time.H"
-#include "fvMesh.H"
-#include "vectorIOField.H"
-#include "volFields.H"
-
-using namespace Foam;
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-
-int main(int argc, char *argv[])
-{
- timeSelector::addOptions();
- #include "addRegionOption.H"
-
- #include "setRootCase.H"
- #include "createTime.H"
-
- instantList timeDirs = timeSelector::select0(runTime, args);
-
- #include "createNamedMesh.H"
-
- forAll(timeDirs, timeI)
- {
- runTime.setTime(timeDirs[timeI], timeI);
-
- Info<< "Time = " << runTime.timeName() << endl;
-
- // Check for new mesh
- mesh.readUpdate();
-
- //volVectorField cc
- //(
- // IOobject
- // (
- // "cellCentres",
- // runTime.timeName(),
- // mesh,
- // IOobject::NO_READ,
- // IOobject::AUTO_WRITE
- // ),
- // 1.0*mesh.C()
- //);
- //
- //Info<< "Writing cellCentre positions to " << cc.name() << " in "
- // << runTime.timeName() << endl;
- //cc.write();
-
- Info<< "Writing components of cellCentre positions to volScalarFields"
- << " ccx, ccy, ccz in " << runTime.timeName() << endl;
-
- for (direction i=0; i::typeName
- );
-
- V.ref() = mesh.V();
-
- volScalarField::Boundary& Vbf = V.boundaryFieldRef();
-
- forAll(Vbf, patchi)
- {
- Vbf[patchi] = Vbf[patchi].patch().magSf();
- }
-
- Info<< "Writing cellVolumes and patch faceAreas to " << V.name()
- << " in " << runTime.timeName() << endl;
-
- V.write();
-
- }
-
- Info<< "\nEnd\n" << endl;
-
- return 0;
-}
-
-
-// ************************************************************************* //
diff --git a/bin/writeCellCentres b/bin/writeCellCentres
new file mode 120000
index 0000000000..7b00da8e40
--- /dev/null
+++ b/bin/writeCellCentres
@@ -0,0 +1 @@
+supercededByPostProcess
\ No newline at end of file
diff --git a/etc/caseDicts/postProcessing/fields/writeCellCentres b/etc/caseDicts/postProcessing/fields/writeCellCentres
new file mode 100644
index 0000000000..f8824910c7
--- /dev/null
+++ b/etc/caseDicts/postProcessing/fields/writeCellCentres
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Web: www.OpenFOAM.org
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+Description
+ Writes the cell-centres volVectorField and the three component fields as
+ volScalarFields useful for post-processing
+ thresholding.
+
+\*---------------------------------------------------------------------------*/
+
+type writeCellCentres;
+libs ("libfieldFunctionObjects.so");
+
+executeControl writeTime;
+writeControl writeTime;
+
+// ************************************************************************* //
diff --git a/etc/caseDicts/postProcessing/fields/writeCellVolumes b/etc/caseDicts/postProcessing/fields/writeCellVolumes
new file mode 100644
index 0000000000..bff6f9ec6d
--- /dev/null
+++ b/etc/caseDicts/postProcessing/fields/writeCellVolumes
@@ -0,0 +1,19 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Web: www.OpenFOAM.org
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+Description
+ Writes the cell-volumes volScalarField.
+
+\*---------------------------------------------------------------------------*/
+
+type writeCellVolumes;
+libs ("libfieldFunctionObjects.so");
+
+executeControl writeTime;
+writeControl writeTime;
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/Make/files b/src/functionObjects/field/Make/files
index c0c5827b3e..6c1cca2dc8 100644
--- a/src/functionObjects/field/Make/files
+++ b/src/functionObjects/field/Make/files
@@ -54,4 +54,7 @@ turbulenceFields/turbulenceFields.C
yPlus/yPlus.C
wallShearStress/wallShearStress.C
+writeCellCentres/writeCellCentres.C
+writeCellVolumes/writeCellVolumes.C
+
LIB = $(FOAM_LIBBIN)/libfieldFunctionObjects
diff --git a/src/functionObjects/field/writeCellCentres/writeCellCentres.C b/src/functionObjects/field/writeCellCentres/writeCellCentres.C
new file mode 100644
index 0000000000..d1f1d65fd0
--- /dev/null
+++ b/src/functionObjects/field/writeCellCentres/writeCellCentres.C
@@ -0,0 +1,121 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2016 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 "writeCellCentres.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+ defineTypeNameAndDebug(writeCellCentres, 0);
+ addToRunTimeSelectionTable(functionObject, writeCellCentres, dictionary);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeCellCentres::writeCellCentres
+(
+ const word& name,
+ const Time& runTime,
+ const dictionary& dict
+)
+:
+ fvMeshFunctionObject(name, runTime, dict)
+{
+ read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeCellCentres::~writeCellCentres()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+bool Foam::functionObjects::writeCellCentres::execute()
+{
+ return true;
+}
+
+
+bool Foam::functionObjects::writeCellCentres::write()
+{
+ volVectorField C
+ (
+ IOobject
+ (
+ "C",
+ time_.timeName(),
+ mesh_,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE,
+ false
+ ),
+ mesh_.C(),
+ calculatedFvPatchScalarField::typeName
+ );
+
+ Log << " Writing cell-centre field " << C.name()
+ << " to " << time_.timeName() << endl;
+
+ C.write();
+
+ for (direction i=0; i.
+
+Class
+ Foam::functionObjects::writeCellCentres
+
+Group
+ grpFieldFunctionObjects
+
+Description
+ This function object writes the cell-centres volVectorField and the
+ three component fields as volScalarFields.
+
+ Example of function object specification:
+ \verbatim
+ writeCellCentres
+ {
+ type writeCellCentres;
+ libs ("libfieldFunctionObjects.so");
+ ...
+ }
+ \endverbatim
+
+Usage
+ \table
+ Property | Description | Required | Default value
+ type | type name: writeCellCentres | yes |
+ \endtable
+
+See also
+ Foam::functionObjects::fvMeshFunctionObject
+
+SourceFiles
+ writeCellCentres.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef functionObjects_writeCellCentres_H
+#define functionObjects_writeCellCentres_H
+
+#include "fvMeshFunctionObject.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+ Class writeCellCentres Declaration
+\*---------------------------------------------------------------------------*/
+
+class writeCellCentres
+:
+ public fvMeshFunctionObject
+{
+ // Private member functions
+
+ //- Disallow default bitwise copy construct
+ writeCellCentres(const writeCellCentres&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const writeCellCentres&);
+
+
+public:
+
+ //- Runtime type information
+ TypeName("writeCellCentres");
+
+
+ // Constructors
+
+ //- Construct from Time and dictionary
+ writeCellCentres
+ (
+ const word& name,
+ const Time& runTime,
+ const dictionary& dict
+ );
+
+
+ //- Destructor
+ virtual ~writeCellCentres();
+
+
+ // Member Functions
+
+ //- Do nothing
+ virtual bool execute();
+
+ //- Write the cell-centre fields
+ virtual bool write();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C
new file mode 100644
index 0000000000..05bd64530d
--- /dev/null
+++ b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C
@@ -0,0 +1,100 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2016 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 "writeCellVolumes.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+ defineTypeNameAndDebug(writeCellVolumes, 0);
+ addToRunTimeSelectionTable(functionObject, writeCellVolumes, dictionary);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeCellVolumes::writeCellVolumes
+(
+ const word& name,
+ const Time& runTime,
+ const dictionary& dict
+)
+:
+ fvMeshFunctionObject(name, runTime, dict)
+{
+ read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::functionObjects::writeCellVolumes::~writeCellVolumes()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+bool Foam::functionObjects::writeCellVolumes::execute()
+{
+ return true;
+}
+
+
+bool Foam::functionObjects::writeCellVolumes::write()
+{
+ volScalarField V
+ (
+ IOobject
+ (
+ mesh_.V().name(),
+ time_.timeName(),
+ mesh_,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE,
+ false
+ ),
+ mesh_,
+ dimensionedScalar(mesh_.V().name(), mesh_.V().dimensions(), 0),
+ calculatedFvPatchField::typeName
+ );
+
+ V.ref() = mesh_.V();
+
+ Log << " Writing cell-volumes field " << V.name()
+ << " to " << time_.timeName() << endl;
+
+ V.write();
+
+ return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H
new file mode 100644
index 0000000000..c5bd54a72e
--- /dev/null
+++ b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H
@@ -0,0 +1,126 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2016 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 .
+
+Class
+ Foam::functionObjects::writeCellVolumes
+
+Group
+ grpFieldFunctionObjects
+
+Description
+ This function object writes the cell-volumes volScalarField.
+
+ Example of function object specification:
+ \verbatim
+ writeCellVolumes
+ {
+ type writeCellVolumes;
+ libs ("libfieldFunctionObjects.so");
+ ...
+ }
+ \endverbatim
+
+Usage
+ \table
+ Property | Description | Required | Default value
+ type | type name: writeCellVolumes | yes |
+ \endtable
+
+See also
+ Foam::functionObjects::fvMeshFunctionObject
+
+SourceFiles
+ writeCellVolumes.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef functionObjects_writeCellVolumes_H
+#define functionObjects_writeCellVolumes_H
+
+#include "fvMeshFunctionObject.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+ Class writeCellVolumes Declaration
+\*---------------------------------------------------------------------------*/
+
+class writeCellVolumes
+:
+ public fvMeshFunctionObject
+{
+ // Private member functions
+
+ //- Disallow default bitwise copy construct
+ writeCellVolumes(const writeCellVolumes&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const writeCellVolumes&);
+
+
+public:
+
+ //- Runtime type information
+ TypeName("writeCellVolumes");
+
+
+ // Constructors
+
+ //- Construct from Time and dictionary
+ writeCellVolumes
+ (
+ const word& name,
+ const Time& runTime,
+ const dictionary& dict
+ );
+
+
+ //- Destructor
+ virtual ~writeCellVolumes();
+
+
+ // Member Functions
+
+ //- Do nothing
+ virtual bool execute();
+
+ //- Write the cell-centre fields
+ virtual bool write();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //