diff --git a/src/postProcessing/functionObjects/utilities/Make/files b/src/postProcessing/functionObjects/utilities/Make/files
index b6a74ce14d..4f132af3fa 100644
--- a/src/postProcessing/functionObjects/utilities/Make/files
+++ b/src/postProcessing/functionObjects/utilities/Make/files
@@ -6,6 +6,9 @@ CourantNo/CourantNoFunctionObject.C
Lambda2/Lambda2.C
Lambda2/Lambda2FunctionObject.C
+Peclet/Peclet.C
+Peclet/PecletFunctionObject.C
+
DESModelRegions/DESModelRegions.C
DESModelRegions/DESModelRegionsFunctionObject.C
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/IOPeclet.H b/src/postProcessing/functionObjects/utilities/Peclet/IOPeclet.H
new file mode 100644
index 0000000000..ea49009d55
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/Peclet/IOPeclet.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 .
+
+Typedef
+ Foam::IOPeclet
+
+Description
+ Instance of the generic IOOutputFilter for Peclet.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef IOPeclet_H
+#define IOPeclet_H
+
+#include "Peclet.H"
+#include "IOOutputFilter.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ typedef IOOutputFilter IOPeclet;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
new file mode 100644
index 0000000000..3c6731babd
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
@@ -0,0 +1,196 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 .
+
+\*---------------------------------------------------------------------------*/
+
+#include "Peclet.H"
+#include "volFields.H"
+#include "dictionary.H"
+#include "surfaceFields.H"
+#include "incompressible/turbulenceModel/turbulenceModel.H"
+#include "compressible/turbulenceModel/turbulenceModel.H"
+#include "surfaceInterpolate.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(Foam::Peclet, 0);
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::Peclet::Peclet
+(
+ const word& name,
+ const objectRegistry& obr,
+ const dictionary& dict,
+ const bool loadFromFiles
+)
+:
+ name_(name),
+ obr_(obr),
+ active_(true),
+ phiName_("phi"),
+ rhoName_("rho")
+{
+ // Check if the available mesh is an fvMesh, otherwise deactivate
+ if (!isA(obr_))
+ {
+ active_ = false;
+ WarningIn
+ (
+ "Peclet::Peclet"
+ "("
+ "const word&, "
+ "const objectRegistry&, "
+ "const dictionary&, "
+ "const bool"
+ ")"
+ ) << "No fvMesh available, deactivating." << nl
+ << endl;
+ }
+
+ read(dict);
+
+ if (active_)
+ {
+ const fvMesh& mesh = refCast(obr_);
+
+ surfaceScalarField* PecletPtr
+ (
+ new surfaceScalarField
+ (
+ IOobject
+ (
+ type(),
+ mesh.time().timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ ),
+ mesh,
+ dimensionedScalar("0", dimless, 0.0)
+ )
+ );
+
+ mesh.objectRegistry::store(PecletPtr);
+ }
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::Peclet::~Peclet()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+void Foam::Peclet::read(const dictionary& dict)
+{
+ if (active_)
+ {
+ phiName_ = dict.lookupOrDefault("phiName", "phi");
+ rhoName_ = dict.lookupOrDefault("rhoName", "rho");
+ }
+}
+
+
+void Foam::Peclet::execute()
+{
+ // Do nothing - only valid on write
+}
+
+
+void Foam::Peclet::end()
+{
+ // Do nothing - only valid on write
+}
+
+
+void Foam::Peclet::write()
+{
+ typedef compressible::turbulenceModel cmpTurbModel;
+ typedef incompressible::turbulenceModel icoTurbModel;
+
+ if (active_)
+ {
+ const fvMesh& mesh = refCast(obr_);
+
+ tmp nuEff;
+ if (mesh.foundObject("turbulenceModel"))
+ {
+ const cmpTurbModel& model =
+ mesh.lookupObject("turbulenceModel");
+
+ const volScalarField& rho =
+ mesh.lookupObject(rhoName_);
+
+ nuEff = model.muEff()/rho;
+ }
+ else if (mesh.foundObject("turbulenceModel"))
+ {
+ const icoTurbModel& model =
+ mesh.lookupObject("turbulenceModel");
+
+ nuEff = model.nuEff();
+ }
+ else if (mesh.foundObject("transportProperties"))
+ {
+ const transportModel& model =
+ mesh.lookupObject("transportProperties");
+
+ nuEff = model.nu();
+ }
+ else
+ {
+ FatalErrorIn("void Foam::wallShearStress::write()")
+ << "Unable to determine the viscosity"
+ << exit(FatalError);
+ }
+
+ const surfaceScalarField& phi =
+ mesh.lookupObject(phiName_);
+
+ surfaceScalarField& Peclet =
+ const_cast
+ (
+ mesh.lookupObject(type())
+ );
+
+ Peclet =
+ mag(phi)
+ /(
+ mesh.magSf()
+ *mesh.surfaceInterpolation::deltaCoeffs()
+ *fvc::interpolate(nuEff)
+ );
+
+ Peclet.write();
+
+ Info<< type() << " output:" << nl
+ << " writing " << Peclet.name() << " field" << nl << endl;
+ }
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
new file mode 100644
index 0000000000..1445e8377b
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
@@ -0,0 +1,153 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 .
+
+Class
+ Foam::Peclet
+
+Group
+ grpUtilitiesFunctionObjects
+
+Description
+ This function object calculates and outputs the Peclet number as a
+ surfaceScalarField.
+
+SourceFiles
+ Peclet.C
+ IOPeclet.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Peclet_H
+#define Peclet_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 Peclet Declaration
+\*---------------------------------------------------------------------------*/
+
+class Peclet
+{
+ // Private data
+
+ //- Name of this set of Peclet objects
+ word name_;
+
+ //- Reference to the database
+ const objectRegistry& obr_;
+
+ //- On/off switch
+ bool active_;
+
+ //- Name of flux field, default is "phi"
+ word phiName_;
+
+ //- Name of density field (compressible cases only), default is "rho"
+ word rhoName_;
+
+
+ // Private Member Functions
+
+ //- Disallow default bitwise copy construct
+ Peclet(const Peclet&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const Peclet&);
+
+
+public:
+
+ //- Runtime type information
+ TypeName("Peclet");
+
+
+ // Constructors
+
+ //- Construct for given objectRegistry and dictionary.
+ // Allow the possibility to load fields from files
+ Peclet
+ (
+ const word& name,
+ const objectRegistry&,
+ const dictionary&,
+ const bool loadFromFiles = false
+ );
+
+
+ //- Destructor
+ virtual ~Peclet();
+
+
+ // Member Functions
+
+ //- Return name of the set of Peclet
+ virtual const word& name() const
+ {
+ return name_;
+ }
+
+ //- Read the Peclet 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 Peclet 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
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.C b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.C
new file mode 100644
index 0000000000..fdb247703c
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.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 .
+
+\*---------------------------------------------------------------------------*/
+
+#include "PecletFunctionObject.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineNamedTemplateTypeNameAndDebug(PecletFunctionObject, 0);
+
+ addToRunTimeSelectionTable
+ (
+ functionObject,
+ PecletFunctionObject,
+ dictionary
+ );
+}
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.H b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.H
new file mode 100644
index 0000000000..fdeca7e571
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.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 .
+
+Typedef
+ Foam::PecletFunctionObject
+
+Description
+ FunctionObject wrapper around Peclet to allow it to be created
+ via the functions entry within controlDict.
+
+SourceFiles
+ PecletFunctionObject.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef PecletFunctionObject_H
+#define PecletFunctionObject_H
+
+#include "Peclet.H"
+#include "OutputFilterFunctionObject.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ typedef OutputFilterFunctionObject PecletFunctionObject;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //