diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/IOblendingFactor.H b/src/postProcessing/functionObjects/utilities/blendingFactor/IOblendingFactor.H
new file mode 100644
index 0000000000..2d1ae3dc1e
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/IOblendingFactor.H
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 .
+
+Typedef
+ Foam::IOblendingFactor
+
+Description
+ Instance of the generic IOOutputFilter for blendingFactor.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef IOblendingFactor_H
+#define IOblendingFactor_H
+
+#include "blendingFactor.H"
+#include "IOOutputFilter.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ typedef IOOutputFilter IOblendingFactor;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
new file mode 100644
index 0000000000..351c48bfb4
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
@@ -0,0 +1,131 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 "blendingFactor.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineTypeNameAndDebug(blendingFactor, 0);
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::blendingFactor::blendingFactor
+(
+ const word& name,
+ const objectRegistry& obr,
+ const dictionary& dict,
+ const bool loadFromFiles
+)
+:
+ name_(name),
+ obr_(obr),
+ active_(true),
+ phiName_("unknown-phiName"),
+ fieldName_("unknown-fieldName")
+{
+ // Check if the available mesh is an fvMesh, otherwise deactivate
+ if (!isA(obr_))
+ {
+ active_ = false;
+ WarningIn
+ (
+ "blendingFactor::blendingFactor"
+ "("
+ "const word&, "
+ "const objectRegistry&, "
+ "const dictionary&, "
+ "const bool"
+ ")"
+ ) << "No fvMesh available, deactivating " << name_ << nl
+ << endl;
+ }
+
+ read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::blendingFactor::~blendingFactor()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+void Foam::blendingFactor::read(const dictionary& dict)
+{
+ if (active_)
+ {
+ phiName_ = dict.lookupOrDefault("phiName", "phi");
+ dict.lookup("fieldName") >> fieldName_;
+ }
+}
+
+
+void Foam::blendingFactor::execute()
+{
+ if (active_)
+ {
+ calc();
+ calc();
+ }
+}
+
+
+void Foam::blendingFactor::end()
+{
+ // Do nothing
+}
+
+void Foam::blendingFactor::timeSet()
+{
+ // Do nothing
+}
+
+
+void Foam::blendingFactor::write()
+{
+ if (active_)
+ {
+ const word fieldName = "blendingFactor:" + fieldName_;
+
+ const volScalarField& blendingFactor =
+ obr_.lookupObject(fieldName);
+
+ Info<< type() << " " << name_ << " output:" << nl
+ << " writing field " << blendingFactor.name() << nl
+ << endl;
+
+ blendingFactor.write();
+ }
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H
new file mode 100644
index 0000000000..8b86a25cea
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H
@@ -0,0 +1,175 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 .
+
+Class
+ Foam::blendingFactor
+
+Group
+ grpUtilitiesFunctionObjects
+
+Description
+ This function object calculates and outputs the blendingFactor as used by
+ the bended convection schemes. The output is a volume field (cells) whose
+ value is calculated via the maximum blending factor for any cell face.
+
+
+SourceFiles
+ blendingFactor.C
+ IOblendingFactor.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef blendingFactor_H
+#define blendingFactor_H
+
+#include "volFieldsFwd.H"
+#include "surfaceFieldsFwd.H"
+#include "OFstream.H"
+#include "Switch.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class dictionary;
+class polyMesh;
+class mapPolyMesh;
+
+/*---------------------------------------------------------------------------*\
+ Class blendingFactor Declaration
+\*---------------------------------------------------------------------------*/
+
+class blendingFactor
+{
+ // Private data
+
+ //- Name of this set of blendingFactor objects
+ word name_;
+
+ //- Reference to the database
+ const objectRegistry& obr_;
+
+ //- On/off switch
+ bool active_;
+
+ //- Name of flux field, default is "phi"
+ word phiName_;
+
+ //- Field name
+ word fieldName_;
+
+
+ // Private Member Functions
+
+ //- Disallow default bitwise copy construct
+ blendingFactor(const blendingFactor&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const blendingFactor&);
+
+ //- Return the blending factor field from the database
+ template
+ volScalarField& factor
+ (
+ const GeometricField& field
+ );
+
+ //- Calculate the blending factor
+ template
+ void calc();
+
+
+public:
+
+ //- Runtime type information
+ TypeName("blendingFactor");
+
+
+ // Constructors
+
+ //- Construct for given objectRegistry and dictionary.
+ // Allow the possibility to load fields from files
+ blendingFactor
+ (
+ const word& name,
+ const objectRegistry&,
+ const dictionary&,
+ const bool loadFromFiles = false
+ );
+
+
+ //- Destructor
+ virtual ~blendingFactor();
+
+
+ // Member Functions
+
+ //- Return name of the set of blendingFactor
+ virtual const word& name() const
+ {
+ return name_;
+ }
+
+ //- Read the blendingFactor 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();
+
+ //- Called when time was set at the end of the Time::operator++
+ virtual void timeSet();
+
+ //- Calculate the blendingFactor and write
+ virtual void write();
+
+ //- Update for changes of mesh
+ virtual void updateMesh(const mapPolyMesh&)
+ {}
+
+ //- Update for changes of mesh
+ virtual void movePoints(const polyMesh&)
+ {}
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+ #include "blendingFactorTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorFunctionObject.C b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorFunctionObject.C
new file mode 100644
index 0000000000..6f32ea9c6f
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorFunctionObject.C
@@ -0,0 +1,42 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 "blendingFactorFunctionObject.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineNamedTemplateTypeNameAndDebug(blendingFactorFunctionObject, 0);
+
+ addToRunTimeSelectionTable
+ (
+ functionObject,
+ blendingFactorFunctionObject,
+ dictionary
+ );
+}
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorFunctionObject.H b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorFunctionObject.H
new file mode 100644
index 0000000000..b2e2369ebe
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorFunctionObject.H
@@ -0,0 +1,54 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 .
+
+Typedef
+ Foam::blendingFactorFunctionObject
+
+Description
+ FunctionObject wrapper around blendingFactor to allow it to be created
+ via the functions entry within controlDict.
+
+SourceFiles
+ blendingFactorFunctionObject.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef blendingFactorFunctionObject_H
+#define blendingFactorFunctionObject_H
+
+#include "blendingFactor.H"
+#include "OutputFilterFunctionObject.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ typedef OutputFilterFunctionObject
+ blendingFactorFunctionObject;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorTemplates.C b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorTemplates.C
new file mode 100644
index 0000000000..3a284b8c73
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorTemplates.C
@@ -0,0 +1,119 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / 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 "gaussConvectionScheme.H"
+#include "blendedSchemeBase.H"
+#include "fvcCellReduce.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template
+Foam::volScalarField& Foam::blendingFactor::factor
+(
+ const GeometricField& field
+)
+{
+ const word fieldName = "blendingFactor:" + field.name();
+
+ if (!obr_.foundObject(fieldName))
+ {
+ const fvMesh& mesh = refCast(obr_);
+
+ volScalarField* factorPtr =
+ new volScalarField
+ (
+ IOobject
+ (
+ fieldName,
+ mesh.time().timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ ),
+ mesh,
+ dimensionedScalar("0", dimless, 0.0),
+ zeroGradientFvPatchScalarField::typeName
+ );
+
+ obr_.store(factorPtr);
+ }
+
+ return
+ const_cast
+ (
+ obr_.lookupObject(fieldName)
+ );
+}
+
+
+template
+void Foam::blendingFactor::calc()
+{
+ typedef GeometricField fieldType;
+
+ if (!obr_.foundObject(fieldName_))
+ {
+ return;
+ }
+
+ const fvMesh& mesh = refCast(obr_);
+
+ const fieldType& field = mesh.lookupObject(fieldName_);
+
+ const word divScheme("div(" + phiName_ + ',' + fieldName_ + ')');
+ ITstream& its = mesh.divScheme(divScheme);
+
+ const surfaceScalarField& phi =
+ mesh.lookupObject(phiName_);
+
+ tmp > cs =
+ fv::convectionScheme::New(mesh, phi, its);
+
+ const fv::gaussConvectionScheme& gcs =
+ refCast >(cs());
+
+ const surfaceInterpolationScheme& interpScheme =
+ gcs.interpScheme();
+
+ if (!isA >(interpScheme))
+ {
+ FatalErrorIn("void Foam::blendingFactor::execute()")
+ << interpScheme.typeName << " is not a blended scheme"
+ << exit(FatalError);
+ }
+
+ // retrieve the face-based blending factor
+ const blendedSchemeBase& blendedScheme =
+ refCast >(interpScheme);
+ const surfaceScalarField factorf(blendedScheme.blendingFactor(field));
+
+ // convert into vol field whose values represent the local face maxima
+ volScalarField& factor = this->factor(field);
+ factor = fvc::cellReduce(factorf, maxEqOp());
+ factor.correctBoundaryConditions();
+}
+
+
+// ************************************************************************* //