diff --git a/applications/test/Matrix/Test-Matrix.C b/applications/test/Matrix/Test-Matrix.C
index 9663ae82174efaeba5ae64f9b3406814f3bb6157..380576d695a1c19ea68362ce2576f8589e7e846d 100644
--- a/applications/test/Matrix/Test-Matrix.C
+++ b/applications/test/Matrix/Test-Matrix.C
@@ -116,17 +116,19 @@ int main(int argc, char *argv[])
         squareMatrix[2][1] = -43;
         squareMatrix[2][2] = 98;
 
+        const scalarSquareMatrix squareMatrixCopy = squareMatrix;
         Info<< nl << "Square Matrix = " << squareMatrix << endl;
 
-        scalarDiagonalMatrix rhs(3, 0);
-        rhs[0] = 1;
-        rhs[1] = 2;
-        rhs[2] = 3;
+        Info<< "det = " << det(squareMatrixCopy) << endl;
 
-        LUsolve(squareMatrix, rhs);
+        labelList rhs(3, 0);
+        label sign;
+        LUDecompose(squareMatrix, rhs, sign);
 
         Info<< "Decomposition = " << squareMatrix << endl;
-        Info<< "Solution = " << rhs << endl;
+        Info<< "Pivots = " << rhs << endl;
+        Info<< "Sign = " << sign << endl;
+        Info<< "det = " << detDecomposed(squareMatrix, sign) << endl;
     }
 
     Info<< "\nEnd\n" << endl;
diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 14eb3f361629ec936af055375ec0b47ed009f11d..5c589c8f2840245c088844e046f42eab3d1df415 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -1220,6 +1220,7 @@ Foam::Time& Foam::Time::operator++()
             writeOnce_ = false;
         }
 
+        functionObjects_.timeSet();
     }
 
     return *this;
diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
index bd4d0b3d618931ffb4b2acfb0910084dac79858a..7c6b95ec98034797a6651c7b4655b72af70c4177 100644
--- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
+++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -202,6 +202,18 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::end()
 }
 
 
+template<class OutputFilter>
+bool Foam::OutputFilterFunctionObject<OutputFilter>::timeSet()
+{
+    if (active())
+    {
+        ptr_->timeSet();
+    }
+
+    return true;
+}
+
+
 template<class OutputFilter>
 bool Foam::OutputFilterFunctionObject<OutputFilter>::read
 (
diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
index 87ade4b2824afbe9d366f03c9b51c115a38a59d9..78d1c47be72e11bd10f546f882bebe8f5130cbc2 100644
--- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
+++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -201,6 +201,8 @@ public:
             //- Called when Time::run() determines that the time-loop exits
             virtual bool end();
 
+            //- Called when time was set at the end of the Time::operator++
+            virtual bool timeSet();
 
             //- Read and set the function object if its data have changed
             virtual bool read(const dictionary&);
diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C
index 2e67818359d979413f71b50e8be58be676787579..31e1d920628c04ffa4d1b0ead97bd721c409d699 100644
--- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C
+++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -120,6 +120,12 @@ bool Foam::functionObject::end()
 }
 
 
+bool Foam::functionObject::timeSet()
+{
+    return false;
+}
+
+
 Foam::autoPtr<Foam::functionObject> Foam::functionObject::iNew::operator()
 (
     const word& name,
diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
index a7c027b5b3b617c23d3e2a090fcfb48dfb371064..47438c32158da6f63fecab804121d125b31ed83b 100644
--- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
+++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -157,6 +157,9 @@ public:
         //  By default it simply calls execute().
         virtual bool end();
 
+        //- Called when time was set at the end of the Time::operator++
+        virtual bool timeSet();
+
         //- Read and set the function object if its data have changed
         virtual bool read(const dictionary&) = 0;
 
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
index 799e4b626ebb9fca4903238db7d8de119401ccd7..1e7553a760fa7b6badfcc12aba329638c0cfaf26 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -190,6 +190,27 @@ bool Foam::functionObjectList::end()
 }
 
 
+bool Foam::functionObjectList::timeSet()
+{
+    bool ok = true;
+
+    if (execution_)
+    {
+        if (!updated_)
+        {
+            read();
+        }
+
+        forAll(*this, objectI)
+        {
+            ok = operator[](objectI).timeSet() && ok;
+        }
+    }
+
+    return ok;
+}
+
+
 bool Foam::functionObjectList::read()
 {
     bool ok = true;
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
index 923e8501a4290314527f8ed267826229f66e790e..4df2c4d263246f66bc70e6fa65b6581d8b6fda5a 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -163,6 +163,9 @@ public:
         //- Called when Time::run() determines that the time-loop exits
         virtual bool end();
 
+        //- Called when time was set at the end of the Time::operator++
+        virtual bool timeSet();
+
         //- Read and set the function objects if their data have changed
         virtual bool read();
 
diff --git a/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.C b/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.C
new file mode 100644
index 0000000000000000000000000000000000000000..439257fcb6a9f9b5ee28416558c058303c541c11
--- /dev/null
+++ b/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.C
@@ -0,0 +1,73 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "SquareMatrix.H"
+#include "labelList.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::scalar Foam::detDecomposed
+(
+    const SquareMatrix<Type>& matrix,
+    const label sign
+)
+{
+    scalar diagProduct = 1.0;
+
+    for (label i = 0; i < matrix.n(); ++i)
+    {
+        diagProduct *= matrix[i][i];
+    }
+
+    return sign*diagProduct;
+}
+
+
+template<class Type>
+Foam::scalar Foam::det(const SquareMatrix<Type>& matrix)
+{
+    SquareMatrix<Type> matrixTmp = matrix;
+
+    labelList pivotIndices(matrix.n());
+    label sign;
+    LUDecompose(matrixTmp, pivotIndices, sign);
+
+    return detDecomposed(matrixTmp, sign);
+}
+
+
+template<class Type>
+Foam::scalar Foam::det(SquareMatrix<Type>& matrix)
+{
+    labelList pivotIndices(matrix.n());
+    label sign;
+    LUDecompose(matrix, pivotIndices, sign);
+
+    return detDecomposed(matrix, sign);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H b/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H
index 660f39321e1506c53064a41fcdad187a11923b99..531b649588b27286ea9f3316e0fbf429f8ff46cc 100644
--- a/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H
+++ b/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,6 +81,21 @@ public:
 };
 
 
+// Global functions
+
+//- Return the LU decomposed SquareMatrix det
+template<class Type>
+scalar detDecomposed(const SquareMatrix<Type>&, const label sign);
+
+//- Return the SquareMatrix det
+template<class Type>
+scalar det(const SquareMatrix<Type>&);
+
+//- Return the SquareMatrix det and the LU decomposition in the original matrix
+template<class Type>
+scalar det(SquareMatrix<Type>&);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
@@ -91,6 +106,12 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+#ifdef NoRepository
+#   include "SquareMatrix.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #endif
 
 // ************************************************************************* //
diff --git a/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C b/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C
index 68a6955d71fa5a182d845096210f088294679672..87a9d02347f7d2c7f05b210b2b4d471e752d16d7 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C
+++ b/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C
@@ -33,9 +33,22 @@ void Foam::LUDecompose
     scalarSquareMatrix& matrix,
     labelList& pivotIndices
 )
+{
+    label sign;
+    LUDecompose(matrix, pivotIndices, sign);
+}
+
+
+void Foam::LUDecompose
+(
+    scalarSquareMatrix& matrix,
+    labelList& pivotIndices,
+    label& sign
+)
 {
     label n = matrix.n();
     scalar vv[n];
+    sign = 1;
 
     for (register label i=0; i<n; i++)
     {
@@ -113,6 +126,7 @@ void Foam::LUDecompose
                 Swap(matrixj[k], matrixiMax[k]);
             }
 
+            sign *= -1;
             vv[iMax] = vv[j];
         }
 
diff --git a/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.H b/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.H
index 3eecda8ebf582d8d19c22686921be2d55a82c5eb..9dbdb8b65d9a4efa04472b5b1155935b5c547581 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.H
+++ b/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.H
@@ -79,6 +79,15 @@ void LUDecompose
     labelList& pivotIndices
 );
 
+//- LU decompose the matrix with pivoting.
+//  sign is -1 for odd number of row interchanges and 1 for even number.
+void LUDecompose
+(
+    scalarSquareMatrix& matrix,
+    labelList& pivotIndices,
+    label& sign
+);
+
 //- LU decompose the matrix into a lower (L) and upper (U) part. U = L.T()
 void LUDecompose(scalarSymmetricSquareMatrix& matrix);
 
diff --git a/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.C b/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.C
index 674996e5aaa8abae617e89a8839eeac09b5a04f1..c14d1b4bf76b49ef33d9f237b4a6355de2667c6a 100644
--- a/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.C
+++ b/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -87,13 +87,33 @@ void Foam::partialWrite::read(const dictionary& dict)
             << ". It should be >= 1."
             << exit(FatalIOError);
     }
+
+    // Clear out any previously loaded fields
+    vsf_.clear();
+    vvf_.clear();
+    vSpheretf_.clear();
+    vSymmtf_.clear();
+    vtf_.clear();
+
+    ssf_.clear();
+    svf_.clear();
+    sSpheretf_.clear();
+    sSymmtf_.clear();
+    stf_.clear();
+
+    forAllConstIter(HashSet<word>, objectNames_, iter)
+    {
+        loadField<scalar>(iter.key(), vsf_, ssf_);
+        loadField<vector>(iter.key(), vvf_, svf_);
+        loadField<sphericalTensor>(iter.key(), vSpheretf_, sSpheretf_);
+        loadField<symmTensor>(iter.key(), vSymmtf_, sSymmtf_);
+        loadField<tensor>(iter.key(), vtf_, stf_);
+    }
 }
 
 
 void Foam::partialWrite::execute()
 {
-    //Pout<< "execute at time " << obr_.time().timeName()
-    //    << " index:" << obr_.time().timeIndex() << endl;
 }
 
 
@@ -104,99 +124,61 @@ void Foam::partialWrite::end()
 }
 
 
-void Foam::partialWrite::write()
+void Foam::partialWrite::timeSet()
 {
-    //Pout<< "write at time " << obr_.time().timeName() << endl;
     if (obr_.time().outputTime())
     {
-        // Above check so it can be used both with
-        //  outputControl   timeStep;
-        //  outputInterval  1;
-        // or with
-        //  outputControl   outputTime;
-
         writeInstance_++;
 
         if (writeInstance_ == writeInterval_)
         {
-            // Normal dump
+            // Next overall dump corresponf to partial write. Change
+            // write options to AUTO_WRITE
             writeInstance_ = 0;
+
+            changeWriteOptions<scalar>(vsf_, ssf_, IOobject::AUTO_WRITE);
+            changeWriteOptions<vector>(vvf_, svf_, IOobject::AUTO_WRITE);
+            changeWriteOptions<sphericalTensor>
+            (
+                vSpheretf_,
+                sSpheretf_,
+                IOobject::AUTO_WRITE
+            );
+            changeWriteOptions<symmTensor>
+            (
+                vSymmtf_,
+                sSymmtf_,
+                IOobject::AUTO_WRITE
+            );
+            changeWriteOptions<tensor>(vtf_, stf_, IOobject::AUTO_WRITE);
         }
         else
         {
-            // Delete all but marked objects
-            fileName dbDir;
-            if (isA<polyMesh>(obr_))
-            {
-                dbDir = dynamic_cast<const polyMesh&>(obr_).dbDir();
-            }
-
-            IOobjectList objects(obr_, obr_.time().timeName());
-
-            if (debug)
-            {
-                Pout<< "For region:" << obr_.name() << endl;
-            }
-
-            forAllConstIter(IOobjectList, objects, iter)
-            {
-                if (!objectNames_.found(iter()->name()))
-                {
-                    const fileName f =
-                        obr_.time().timePath()
-                       /dbDir
-                       /iter()->name();
-                    if (debug)
-                    {
-                        Pout<< "   rm " << f << endl;
-                    }
-                    rm(f);
-                }
-            }
-
-            // Do the lagrangian files as well.
-            fileNameList cloudDirs
+            changeWriteOptions<scalar>(vsf_, ssf_, IOobject::NO_WRITE);
+            changeWriteOptions<vector>(vvf_, svf_, IOobject::NO_WRITE);
+            changeWriteOptions<sphericalTensor>
+            (
+                vSpheretf_,
+                sSpheretf_,
+                IOobject::NO_WRITE
+            );
+            changeWriteOptions<symmTensor>
             (
-                readDir
-                (
-                    obr_.time().timePath()/dbDir/cloud::prefix,
-                    fileName::DIRECTORY
-                )
+                vSymmtf_,
+                sSymmtf_,
+                IOobject::NO_WRITE
             );
-            forAll(cloudDirs, i)
-            {
-                if (debug)
-                {
-                    Pout<< "For cloud:" << cloudDirs[i] << endl;
-                }
-
-                IOobjectList sprayObjs
-                (
-                    obr_,
-                    obr_.time().timeName(),
-                    cloud::prefix/cloudDirs[i]
-                );
-                forAllConstIter(IOobjectList, sprayObjs, iter)
-                {
-                    if (!objectNames_.found(iter()->name()))
-                    {
-                        const fileName f =
-                            obr_.time().timePath()
-                           /dbDir
-                           /cloud::prefix
-                           /cloudDirs[i]
-                           /iter()->name();
-                        if (debug)
-                        {
-                            Pout<< "   rm " << f << endl;
-                        }
-                        rm(f);
-                    }
-                }
-            }
+            changeWriteOptions<tensor>(vtf_, stf_, IOobject::NO_WRITE);
         }
     }
 }
 
 
+void Foam::partialWrite::write()
+{
+    // Do nothing. The fields get written through the
+    // standard dump
+}
+
+
 // ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H b/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H
index 62a53f51943e1af6e31ea4f4ebd0aafbd0407c12..09197a671d84e4aa9108b8bdad8a381b02a76465 100644
--- a/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H
+++ b/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,8 +29,8 @@ Group
 
 Description
     This function object allows user-selected fields/registered objects to be
-    written at a custom write interval.  It operates by deleting all entries
-    except those selected after writing.
+    written at a custom write interval. The interval is given in terms of
+    number of overall dumps
 
     Example of function object specification:
     \verbatim
@@ -66,8 +66,9 @@ SourceFiles
 #define partialWrite_H
 
 #include "HashSet.H"
-#include "DynamicList.H"
 #include "runTimeSelectionTables.H"
+#include "volFields.H"
+#include "surfaceFields.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -95,6 +96,18 @@ protected:
 
         const objectRegistry& obr_;
 
+        //- Loaded fields
+        UPtrList<volScalarField> vsf_;
+        UPtrList<volVectorField> vvf_;
+        UPtrList<volSphericalTensorField> vSpheretf_;
+        UPtrList<volSymmTensorField> vSymmtf_;
+        UPtrList<volTensorField> vtf_;
+
+        UPtrList<surfaceScalarField> ssf_;
+        UPtrList<surfaceVectorField> svf_;
+        UPtrList<surfaceSphericalTensorField> sSpheretf_;
+        UPtrList<surfaceSymmTensorField> sSymmtf_;
+        UPtrList<surfaceTensorField> stf_;
 
         // Read from dictionary
 
@@ -105,6 +118,7 @@ protected:
             label writeInterval_;
 
 
+
         //- Current dump instance. If reaches writeInterval do a full write.
         label writeInstance_;
 
@@ -118,6 +132,24 @@ protected:
         void operator=(const partialWrite&);
 
 
+        //- Load objects in the objectNames
+        template<class Type>
+        void loadField
+        (
+            const word&,
+            UPtrList<GeometricField<Type, fvPatchField, volMesh> >&,
+            UPtrList<GeometricField<Type, fvsPatchField, surfaceMesh> >&
+        ) const;
+
+        template<class Type>
+        void changeWriteOptions
+        (
+            UPtrList<GeometricField<Type, fvPatchField, volMesh> >&,
+            UPtrList<GeometricField<Type, fvsPatchField, surfaceMesh> >&,
+            const IOobject::writeOption
+        ) const;
+
+
 public:
 
     //- Runtime type information
@@ -152,12 +184,15 @@ public:
         //- Read the partialWrite data
         virtual void read(const dictionary&);
 
-        //- Execute, currently does nothing
+        //- Execute
         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();
+
         //- Write the partialWrite
         virtual void write();
 
@@ -177,6 +212,12 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+#ifdef NoRepository
+#   include "partialWriteTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #endif
 
 // ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/IO/partialWrite/partialWriteTemplates.C b/src/postProcessing/functionObjects/IO/partialWrite/partialWriteTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..56e00893131b54fcdb7315f063e417faab71dc1b
--- /dev/null
+++ b/src/postProcessing/functionObjects/IO/partialWrite/partialWriteTemplates.C
@@ -0,0 +1,105 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "partialWrite.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+#include "Time.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template<class Type>
+void Foam::partialWrite::loadField
+(
+    const word& fieldName,
+    UPtrList<GeometricField<Type, fvPatchField, volMesh> >& vflds,
+    UPtrList<GeometricField<Type, fvsPatchField, surfaceMesh> >& sflds
+) const
+{
+    typedef GeometricField<Type, fvPatchField, volMesh> vfType;
+    typedef GeometricField<Type, fvsPatchField, surfaceMesh> sfType;
+
+    if (obr_.foundObject<vfType>(fieldName))
+    {
+        if (debug)
+        {
+            Info<< "partialWrite : Field "
+                << fieldName << " found in database" << endl;
+        }
+
+        vfType& vField =
+            const_cast<vfType&>
+            (
+                obr_.lookupObject<vfType>(fieldName)
+            );
+
+
+        const unsigned int sz = vflds.size();
+        vflds.setSize(sz + 1);
+        vflds.set(sz, &vField);
+    }
+    else if (obr_.foundObject<sfType>(fieldName))
+    {
+        if (debug)
+        {
+            Info<< "partialWrite : Field " << fieldName
+                << " found in database" << endl;
+        }
+
+         sfType& sField =
+            const_cast<sfType&>
+            (
+                obr_.lookupObject<sfType>(fieldName)
+            );
+
+
+        const unsigned int sz = sflds.size();
+        sflds.setSize(sz + 1);
+        sflds.set(sz, &sField);
+    }
+}
+
+
+template<class Type>
+void Foam::partialWrite::changeWriteOptions
+(
+    UPtrList<GeometricField<Type, fvPatchField, volMesh> >& vflds,
+    UPtrList<GeometricField<Type, fvsPatchField, surfaceMesh> >& sflds,
+    const IOobject::writeOption wOption
+) const
+{
+    forAll(vflds , i)
+    {
+        vflds[i].writeOpt() = wOption;
+    }
+
+    forAll(sflds , i)
+    {
+        sflds[i].writeOpt() = wOption;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.C b/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.C
index 802f63f3082b5f9bb3eeb6611921a883c5017fe2..4ed2bb524ae68fee9d8920ec9a4d13860effaf1b 100644
--- a/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.C
+++ b/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,6 +92,12 @@ void Foam::removeRegisteredObject::end()
 }
 
 
+void Foam::removeRegisteredObject::timeSet()
+{
+    // Do nothing - only valid on execute
+}
+
+
 void Foam::removeRegisteredObject::write()
 {
     // Do nothing - only valid on execute
diff --git a/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H b/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H
index 957c1a9a2d1fa1f3ba4e2c5f7bde20509e7a7b32..fc02432ad89c246a840a64cd2e7e9bce87ee4584 100644
--- a/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H
+++ b/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -146,6 +146,9 @@ public:
         //- 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();
+
         //- Write the removeRegisteredObject
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C
index 694fba31b67a3b67c182028cda810603200e991f..56cd35a407316ef313f461c1d3cc1f80a5407bf8 100644
--- a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C
+++ b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -199,6 +199,12 @@ void Foam::writeDictionary::end()
 }
 
 
+void Foam::writeDictionary::timeSet()
+{
+    // do nothing
+}
+
+
 void Foam::writeDictionary::write()
 {
     // do nothing
diff --git a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H
index 1f12efd096f754f07999f3c00e59a4f8a1b9c2d3..a4ac474e40888edb30791d24bc4f1e6060ca539b 100644
--- a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H
+++ b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -134,6 +134,9 @@ public:
         //- 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();
+
         //- Write the writeDictionary
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C
index cc3f0c628ecffc6a9b7e2c84fe262181dd95c55f..37007274079e77ca848fcc94a71f3c6d503e30fc 100644
--- a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C
+++ b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,6 +79,12 @@ void Foam::writeRegisteredObject::end()
 }
 
 
+void Foam::writeRegisteredObject::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::writeRegisteredObject::write()
 {
     forAll(objectNames_, i)
diff --git a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
index 014d4ce90c9d4b5679f6be776bb01507a99e136f..7159fad3fcddbe7ca124d44c4c3b0bbe90f83249 100644
--- a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
+++ b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
@@ -147,6 +147,9 @@ public:
         //- 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();
+
         //- Write the writeRegisteredObject
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.C b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.C
index 2a3d212afdc1e334e26cb29eaef9089b0724ac59..6bea8e6478e1c94b0a75eb059f9539b41917941b 100644
--- a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.C
+++ b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -106,6 +106,12 @@ void Foam::cloudInfo::end()
 }
 
 
+void Foam::cloudInfo::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::cloudInfo::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H
index 85558d2e3fc8d81eb3de967afe980a03249bfa6d..e659807cd4e37999b8c33e61868518e033c05eec 100644
--- a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H
+++ b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -162,6 +162,9 @@ public:
         //- 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();
+
         //- Write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
index 5a73765f938ece8322d5524196b30163dcacbc7a..e8f58c370e6afd90abb665f17d000495e20e4ea0 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
@@ -393,6 +393,10 @@ void Foam::fieldAverage::end()
 {}
 
 
+void Foam::fieldAverage::timeSet()
+{}
+
+
 void Foam::fieldAverage::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
index 4a6d75e06b8b380d59af35b0b48a0ec814a6574a..12cea88cd769380801aabd80f0866da59bd54372 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
@@ -318,6 +318,9 @@ public:
         //- Execute the averaging 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 field average data and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
index ac0fc6da0afc17a6b53ab5b31e167d0455328ecd..57c26aa4724e5fe70fee658cf3185bc584b64095 100644
--- a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
+++ b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
@@ -104,6 +104,12 @@ void Foam::fieldCoordinateSystemTransform::end()
 }
 
 
+void Foam::fieldCoordinateSystemTransform::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::fieldCoordinateSystemTransform::write()
 {
     forAll(fieldSet_, fieldI)
diff --git a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
index 0671327ad8e7abc9d8a71aae427a2955ccedc1ba..edd1f13b502437f9d545a0e26ecb5689d83d1f85 100644
--- a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
+++ b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -173,6 +173,9 @@ public:
         //- 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();
+
         //- Write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
index e7a611febc452b8bb148f1cd28088aaa5fcba8ee..7c3c3283895ea0012c7c1efa514d2ee13e528216 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -139,6 +139,12 @@ void Foam::fieldMinMax::end()
 }
 
 
+void Foam::fieldMinMax::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::fieldMinMax::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
index 50e3017f89327ddae9dbbbbd99a0007ab7a5d5a3..25ccd00f4186ee3e9c54fada27c5453590f8afdf 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -189,6 +189,9 @@ public:
         //- 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 field min/max
         template<class Type>
         void calcMinMaxFields
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
index 50d47d8198f2303682fff96fa3e922c1c71da804..9f651c8ee9d764f4e440bb9e5f679729243e3724 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
@@ -131,6 +131,12 @@ void Foam::fieldValue::end()
 }
 
 
+void Foam::fieldValue::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::fieldValue::updateMesh(const mapPolyMesh&)
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
index b7994383d51c83321dcfe7a9dafc78af610af5ba..9d852cdfb798173aadcec34a3f1a7a13c60b8382 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
@@ -191,6 +191,9 @@ public:
             //- Execute the 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();
+
             //- Update mesh
             virtual void updateMesh(const mapPolyMesh&);
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
index 0e0c93ed1b3ceda489c9fe3cdd842adc553c3acf..30027a864a7a4287d357f73e99bdbaa6f310963a 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
@@ -202,6 +202,12 @@ void Foam::fieldValues::fieldValueDelta::end()
 }
 
 
+void Foam::fieldValues::fieldValueDelta::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::fieldValues::fieldValueDelta::updateMesh(const mapPolyMesh&)
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H
index 24d72f1f6bf2a4db31f9d56b6e0aa6e760624942..d408227bbce516b4d45735a39316375c8dca9fcb 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H
@@ -192,6 +192,9 @@ public:
             //- Execute the 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();
+
             //- Update mesh
             virtual void updateMesh(const mapPolyMesh&);
 
diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C
index 715bcfa7f8fa51bc791b88a39480361eafcc2e95..4b82fbd331ecc1ef19e028fbcf42b6307520fb97 100644
--- a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C
+++ b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -163,6 +163,11 @@ void Foam::nearWallFields::end()
 }
 
 
+void Foam::nearWallFields::timeSet()
+{
+}
+
+
 void Foam::nearWallFields::write()
 {
     if (debug)
diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
index df6c8f80635ce8df57630d246082a2cd1b2f203e..cea4e42139657def9ccbad543460e3a834a21331 100644
--- a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
+++ b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -191,6 +191,9 @@ public:
         //- 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();
+
         //- Write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.C b/src/postProcessing/functionObjects/field/processorField/processorField.C
index bd72316b23685a605173e899cc51f2a7bd679621..611ebced0f68755f538530fc6c48595833fcd8fe 100644
--- a/src/postProcessing/functionObjects/field/processorField/processorField.C
+++ b/src/postProcessing/functionObjects/field/processorField/processorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -96,6 +96,12 @@ void Foam::processorField::end()
 }
 
 
+void Foam::processorField::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::processorField::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.H b/src/postProcessing/functionObjects/field/processorField/processorField.H
index cee878adc1d5e005ac27ebfa513e1e79a056d5a9..6d45e32acbc71c49f9333617f30dd63a808e111a 100644
--- a/src/postProcessing/functionObjects/field/processorField/processorField.H
+++ b/src/postProcessing/functionObjects/field/processorField/processorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -145,6 +145,9 @@ public:
         //- 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();
+
         //- Write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.C b/src/postProcessing/functionObjects/field/readFields/readFields.C
index 2d8a0fd0e0e6e840b4f5f14ff204f690d6503949..b92998684d3f9d07805ed26b44161bf3946854b1 100644
--- a/src/postProcessing/functionObjects/field/readFields/readFields.C
+++ b/src/postProcessing/functionObjects/field/readFields/readFields.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,6 +122,12 @@ void Foam::readFields::end()
 }
 
 
+void Foam::readFields::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::readFields::write()
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.H b/src/postProcessing/functionObjects/field/readFields/readFields.H
index 81f11922b7fa0c8084b192b4161cfa0e7795ceff..0c39404a93243c924f59fefa5ef6394ef9f57791 100644
--- a/src/postProcessing/functionObjects/field/readFields/readFields.H
+++ b/src/postProcessing/functionObjects/field/readFields/readFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -173,6 +173,9 @@ public:
         //- 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();
+
         //- Write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
index 3e5e2fc98ab15a5ad57454b997f54b94c1b3fd58..22512c0317b4e838693ee71634a12e977c03f4a3 100644
--- a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
+++ b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -384,6 +384,12 @@ void Foam::regionSizeDistribution::end()
 }
 
 
+void Foam::regionSizeDistribution::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::regionSizeDistribution::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
index 1fd236f024c8b202f42b3379054be74b9d91af91..0c466398462c3c1af3d2a0a2fc8b95485fa87438 100644
--- a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
+++ b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -266,6 +266,9 @@ public:
         //- 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 regionSizeDistribution and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLine.C b/src/postProcessing/functionObjects/field/streamLine/streamLine.C
index 037ddc5ae16a1ce5e8ae90bc72e15e41cf83ef26..6116950a44ec1c3d2a3bbbd03fd7b4906652d14f 100644
--- a/src/postProcessing/functionObjects/field/streamLine/streamLine.C
+++ b/src/postProcessing/functionObjects/field/streamLine/streamLine.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -517,6 +517,10 @@ void Foam::streamLine::end()
 {}
 
 
+void Foam::streamLine::timeSet()
+{}
+
+
 void Foam::streamLine::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLine.H b/src/postProcessing/functionObjects/field/streamLine/streamLine.H
index bce1808d90a6e7627e07110ae68cb8c125d75c7b..59d9d9026e0e8e90d94abda60171904661af8611 100644
--- a/src/postProcessing/functionObjects/field/streamLine/streamLine.H
+++ b/src/postProcessing/functionObjects/field/streamLine/streamLine.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -266,6 +266,9 @@ public:
         //- Execute the averaging 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 field average data and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C
index d89a6b3648483fb02bd82096a3f36a379b5bbb4a..69b45c12ca9d0bf4d1a8df46d84b29276541b810 100644
--- a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C
+++ b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -112,6 +112,12 @@ void Foam::surfaceInterpolateFields::end()
 }
 
 
+void Foam::surfaceInterpolateFields::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::surfaceInterpolateFields::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
index 07110c8d88203a9bce1a1b8750ad98a01e5bd8cf..1a5d38a0759cd6d009c52aa91b8398351eaf30ae 100644
--- a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
+++ b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -169,6 +169,9 @@ public:
         //- 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();
+
         //- Write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.C b/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.C
index 855b3ce80078193b7a6ead5f0cb78ade5ba650b9..72585b8148770e864268f4c86921db6253275b40 100644
--- a/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.C
+++ b/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -259,6 +259,12 @@ void Foam::turbulenceFields::end()
 }
 
 
+void Foam::turbulenceFields::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::turbulenceFields::write()
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H b/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H
index b885759223fdd44e649282897029d438d9a598f5..09ecd93e687d92d514b221535f99d3936eb2bda7 100644
--- a/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H
+++ b/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -206,6 +206,9 @@ public:
         //- 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();
+
         //- Write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
index e2487e3cd68d43f5bf8ade6af60531f2aa6c19f5..95238cbd306432b81dae0df24a2b0ad98d1c3943 100644
--- a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
+++ b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -644,6 +644,10 @@ void Foam::wallBoundedStreamLine::end()
 {}
 
 
+void Foam::wallBoundedStreamLine::timeSet()
+{}
+
+
 void Foam::wallBoundedStreamLine::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
index c6b8a178a3553dab1e9633fc3b5b7edf93667455..98956ba9caa2111e22aa5c53c6ae791887d18652 100644
--- a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
+++ b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -272,6 +272,9 @@ public:
         //- Execute the averaging 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 field average data and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
index 9537f6a28a06ce7285afdf9be2f21e37e455b6ea..5a29b54bc003a11f6dd7c2759fc6a58dba6da067 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
@@ -108,6 +108,12 @@ void Foam::forceCoeffs::end()
 }
 
 
+void Foam::forceCoeffs::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::forceCoeffs::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
index b8112939b3685d1b0ee8c5cd353d31dbc0f8041b..048c0dd331b468115528db5a79ac7b7e60f4dfd8 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
@@ -177,6 +177,9 @@ public:
         //- 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();
+
         //- Write the forces
         virtual void write();
 };
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.C b/src/postProcessing/functionObjects/forces/forces/forces.C
index e38208963b322289bbb713a2fd4639790816a5ef..7df79a2e1f753efcd59339c68e54cda525b677c6 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.C
+++ b/src/postProcessing/functionObjects/forces/forces/forces.C
@@ -625,6 +625,12 @@ void Foam::forces::end()
 }
 
 
+void Foam::forces::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::forces::write()
 {
     if (!active_)
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.H b/src/postProcessing/functionObjects/forces/forces/forces.H
index dd87184c2f7d5afa138356fb0e99b09b72ae9629..793cf78cbf00e39528cbdcb530d96638df955f1b 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.H
+++ b/src/postProcessing/functionObjects/forces/forces/forces.H
@@ -205,7 +205,7 @@ protected:
 
                 //- Minimum bin bounds
                 scalar binMin_;
-                
+
                 //- Bin positions along binDir
                 List<point> binPoints_;
 
@@ -309,6 +309,9 @@ public:
         //- 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();
+
         //- Write the forces
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C
index b5fd621b711bbf6c3b9c29c919e705253c79bc00..185e83b0a45169fe496c37d32f83fcb90e2a7bb2 100644
--- a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -141,6 +141,12 @@ void Foam::calcFvcDiv::end()
 }
 
 
+void Foam::calcFvcDiv::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::calcFvcDiv::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H
index e15f680e644b5c354745c57bc8c96cf4071ca5f8..447b00c92c8b36168ed5d42061964247700de7a5 100644
--- a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H
@@ -148,6 +148,9 @@ public:
         //- 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 calcFvcDiv and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C
index edcddb2eaec5dbf18ab6e26ad5ed7285770bb5ec..6b8efee0c883180101903e46693cbca42f5502c9 100644
--- a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -103,6 +103,12 @@ void Foam::calcFvcGrad::end()
 }
 
 
+void Foam::calcFvcGrad::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::calcFvcGrad::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.H b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.H
index 6822a7bb08492ea551283c2c72f3a54a33126e43..bdaf5383ed5b7aa90f1e51063e5d7587dea5b1d9 100644
--- a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.H
+++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.H
@@ -151,6 +151,9 @@ public:
         //- 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 calcFvcGrad and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C
index f997cc8b78bf75127aee01d765b6775b6d1aad7f..93229e7f5d4581ea4f2f0b56aaabf7a42072b1ea 100644
--- a/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C
+++ b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -103,6 +103,12 @@ void Foam::calcMag::end()
 }
 
 
+void Foam::calcMag::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::calcMag::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.H b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.H
index d8a91cc802711f360dc94166cb1561b3584d5d3b..76f10721117618a00c503b554b219c8e91c69fc7 100644
--- a/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.H
+++ b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.H
@@ -145,6 +145,9 @@ public:
         //- 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 calcMag and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.C b/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.C
index 41b8f697c1681fe775ec65158e4df4d19bde537b..d0551c84ce7cdbaedaed03b3ec7bedb8dad478fe 100644
--- a/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.C
+++ b/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -179,6 +179,11 @@ void Foam::abortCalculation::end()
 }
 
 
+void Foam::abortCalculation::timeSet()
+{
+}
+
+
 void Foam::abortCalculation::write()
 {
     // Do nothing - only valid on execute
diff --git a/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H b/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H
index 4040709fdb32b5b5edb6dffcef62299098e986e0..95e1994fd47d6ce9022bc08362b2baafd211310e 100644
--- a/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H
+++ b/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -146,6 +146,9 @@ public:
         //- Execute at the final time-loop, used for cleanup
         virtual void end();
 
+        //- Called when time was set at the end of the Time::operator++
+        virtual void timeSet();
+
         //- Execute, check existence of abort file and take action
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/systemCall/systemCall.C b/src/postProcessing/functionObjects/systemCall/systemCall.C
index 00cb7b850cf86db88fdf5171701b13e93f64a5fb..0fb6d1cfca305217227c543963554533211c233a 100644
--- a/src/postProcessing/functionObjects/systemCall/systemCall.C
+++ b/src/postProcessing/functionObjects/systemCall/systemCall.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -111,6 +111,11 @@ void Foam::systemCall::end()
 }
 
 
+void Foam::systemCall::timeSet()
+{
+}
+
+
 void Foam::systemCall::write()
 {
     forAll(writeCalls_, callI)
diff --git a/src/postProcessing/functionObjects/systemCall/systemCall.H b/src/postProcessing/functionObjects/systemCall/systemCall.H
index 5de53fa26cf392a62531925eefbf37e73bf72b20..b4d43a2bf7f172ae857ac3dad0e739cce3e7d32f 100644
--- a/src/postProcessing/functionObjects/systemCall/systemCall.H
+++ b/src/postProcessing/functionObjects/systemCall/systemCall.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -172,6 +172,9 @@ public:
         //- Execute the "endCalls" at the final time-loop
         virtual void end();
 
+        //- Called when time was set at the end of the Time::operator++
+        virtual void timeSet();
+
         //- Write, execute the "writeCalls"
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C
index e72e69333892280731bd1a84cbff7325e8a9deab..9309ba42bb1905a26622457213a51dc1cbc0b7fd 100644
--- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C
+++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -165,6 +165,12 @@ void Foam::CourantNo::end()
 }
 
 
+void Foam::CourantNo::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::CourantNo::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H
index e74d6c9e2cc8a8c492aa35c3afc658fb86c2f980..16724bee94b9c7ae59c626db5de8c238f05546d7 100644
--- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H
+++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -134,6 +134,9 @@ public:
         //- 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 CourantNo and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
index b9a48436007c6d64fec0eda84f8a5c71d2d32816..9f861596f780a5e2b2abdc6c6a21807a1737c7a4 100644
--- a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -114,6 +114,12 @@ void Foam::DESModelRegions::end()
 }
 
 
+void Foam::DESModelRegions::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::DESModelRegions::write()
 {
     typedef incompressible::turbulenceModel icoModel;
@@ -175,7 +181,7 @@ void Foam::DESModelRegions::write()
                 file() << obr_.time().timeName() << token::TAB
                     << prc << token::TAB << 100.0 - prc << endl;
             }
-    
+
             if (log_)
             {
                 Info<< "    LES = " << prc << " % (volume)" << nl
diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.H b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.H
index 858fab4e05258e2ebe47a981ea08b1e501f808fe..d0bf101ae0cbbfdbcd209875886b3d8ca76a9c12 100644
--- a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.H
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -136,6 +136,9 @@ public:
         //- 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 DESModelRegions and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
index 5b1b3f0cf934123cfe266229edf0a4b02dd87286..0f1dd72a92c1d7f00086d213ff38ba5a8aa2700a 100644
--- a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
+++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -126,6 +126,12 @@ void Foam::Lambda2::end()
 }
 
 
+void Foam::Lambda2::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::Lambda2::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H
index 77659532e26f2788ffe61e4b3a2d6dcfa25e44b5..f4360f46404b714b6043422eb95bbc71042a307d 100644
--- a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H
+++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -127,6 +127,9 @@ public:
         //- 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 Lambda2 and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
index 874977faed9ad9ba3600fbcde9a5a55f33f36ae1..885e611fa0f879cbde7c1d8b4f7a0e35b1d71cde 100644
--- a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
+++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -130,6 +130,12 @@ void Foam::Peclet::end()
 }
 
 
+void Foam::Peclet::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::Peclet::write()
 {
     typedef compressible::turbulenceModel cmpTurbModel;
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
index 4c4ec390b7b7f4a14a43c5c9541cb420b9f7f82d..5becbe93e951172d1697de0d4f5c7bdb3017896d 100644
--- a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
+++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -129,6 +129,9 @@ public:
         //- 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 Peclet and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.C b/src/postProcessing/functionObjects/utilities/Q/Q.C
index 5dec2d3aa7ec5ee64cbee0d75257a991e31a59e0..81a68a152a7c3ef6a2be199073996a8eff1a8122 100644
--- a/src/postProcessing/functionObjects/utilities/Q/Q.C
+++ b/src/postProcessing/functionObjects/utilities/Q/Q.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -125,6 +125,12 @@ void Foam::Q::end()
 }
 
 
+void Foam::Q::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::Q::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.H b/src/postProcessing/functionObjects/utilities/Q/Q.H
index 892808ef95d385d113e4b831548d7cb75efa24fa..aed626228c8c61d627fa166907da83af6b0b8506 100644
--- a/src/postProcessing/functionObjects/utilities/Q/Q.H
+++ b/src/postProcessing/functionObjects/utilities/Q/Q.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -130,6 +130,9 @@ public:
         //- 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 Q and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
index 98b57ec4873389125d922db3e5676736b28eb959..5c1ed4a967b0fe0aab6b0775bb5390b5c94297c9 100644
--- a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
+++ b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -185,6 +185,12 @@ bool Foam::codedFunctionObject::end()
 }
 
 
+bool Foam::codedFunctionObject::timeSet()
+{
+    return false;
+}
+
+
 bool Foam::codedFunctionObject::read(const dictionary& dict)
 {
     dict.lookup("redirectType") >> redirectType_;
diff --git a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
index 84b48a91e6a59d60ed366279a299f8ec800e4bea..f597407e1c63be744890553ccb1f44a696d1bfe5 100644
--- a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
+++ b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -148,6 +148,9 @@ public:
         //  By default it simply calls execute().
         virtual bool end();
 
+        //- Called when time was set at the end of the Time::operator++
+        virtual bool timeSet();
+
         //- Read and set the function object if its data have changed
         virtual bool read(const dictionary&);
 
diff --git a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
index fb60ce2527a9fce7e6ca6a5ca49b21b42fb698a4..fa26841aefe0daa50bda529042d4907126fd5330 100644
--- a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
+++ b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -104,6 +104,12 @@ void Foam::dsmcFields::end()
 }
 
 
+void Foam::dsmcFields::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::dsmcFields::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
index a88d3c207044f7861e617af135fd3bd9e72ceafa..b6f7ae68d61dc0bd968fbfc4b8eef43cf3bd02fb 100644
--- a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
+++ b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -123,6 +123,9 @@ public:
         //- 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 dsmcFields and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
index 014aefd8a0be47911bfb7a448c79a5a4189f98a1..5ea5b9034a8b8914b0b4db60432d434387322829 100644
--- a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
+++ b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
@@ -273,7 +273,7 @@ void Foam::pressureTools::read(const dictionary& dict)
         if (p.dimensions() != dimPressure)
         {
             dict.lookup("rhoRef") >> rhoInf_;
-        } 
+        }
 
         dict.lookup("calcTotal") >> calcTotal_;
         if (calcTotal_)
@@ -304,6 +304,12 @@ void Foam::pressureTools::end()
 }
 
 
+void Foam::pressureTools::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::pressureTools::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.H b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.H
index 82a44921edeb921703ee87e07be63c3ecfe83960..6d80b388d107eb205d8de7cb08f8b438a993a8b0 100644
--- a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.H
+++ b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.H
@@ -241,6 +241,9 @@ public:
         //- 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 pressureTools and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
index ad392c506bdef7e6c6b91aabf992118a9d0683e6..b63fe4acd8b1cc5095cae4a4b602404722b82e79 100644
--- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
+++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
@@ -66,7 +66,7 @@ Foam::wordList Foam::scalarTransport::boundaryTypes() const
         }
     }
 
-    return bTypes;    
+    return bTypes;
 }
 
 
@@ -228,7 +228,7 @@ void Foam::scalarTransport::execute()
     {
         schemeVar = UName_;
     }
-    
+
     word divScheme("div(phi," + schemeVar + ")");
     word laplacianScheme("laplacian(" + DT.name() + "," + schemeVar + ")");
 
@@ -303,6 +303,12 @@ void Foam::scalarTransport::end()
 }
 
 
+void Foam::scalarTransport::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::scalarTransport::write()
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H
index a58ed2268049379831ceaff4c1042434300d6f52..ae3db7635ca55bb539106f54ebaa87ece75906ed 100644
--- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H
+++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H
@@ -170,6 +170,9 @@ public:
         //- 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 scalarTransport and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
index aa88880eee39e68b8a180b923196fb464b0841c7..9329ad6e3f554a25fd44cf510ac4d247f595e7cc 100644
--- a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -136,6 +136,12 @@ void Foam::timeActivatedFileUpdate::end()
 }
 
 
+void Foam::timeActivatedFileUpdate::timeSet()
+{
+    // Do nothing
+}
+
+
 void Foam::timeActivatedFileUpdate::write()
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
index dc43ee39a322e5fa05ac29570cd14004a7672d78..e2f168eaf2dcabfa39c6a5cedbee9760944d49cd 100644
--- a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -152,6 +152,9 @@ public:
         //- 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 timeActivatedFileUpdate and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C
index 55a4011d6ae6d2115dc77063bbe9ba8e28c66445..22942fa266a5c5483af79f91f71c69bb2d67204a 100644
--- a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C
+++ b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -202,6 +202,12 @@ void Foam::wallShearStress::end()
 }
 
 
+void Foam::wallShearStress::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::wallShearStress::write()
 {
     typedef compressible::turbulenceModel cmpModel;
@@ -254,7 +260,7 @@ void Foam::wallShearStress::write()
                 << "database" << exit(FatalError);
         }
 
-    
+
         calcShearStress(mesh, Reff(), wallShearStress);
 
         if (log_)
diff --git a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H
index f8ecbbcfde7e14295a14135d88fcd207fbe967bd..c2927eaad5321ca76e31256594f37a812cf53310 100644
--- a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H
+++ b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -177,6 +177,9 @@ public:
         //- 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 wallShearStress and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.C b/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.C
index 789c06ddc73b71b30cd83ec1af64e75a55a66609..1b4bc680afab0fc3baf7d56bd7923a464aaed917 100644
--- a/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.C
+++ b/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -248,6 +248,12 @@ void Foam::yPlusLES::end()
 }
 
 
+void Foam::yPlusLES::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::yPlusLES::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H b/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H
index 78e7d38db78adf66d4f6f539b9cf91841a53af02..94a2bb349a31ae03675382ca69f2116caf87c37d 100644
--- a/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H
+++ b/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -153,6 +153,9 @@ public:
         //- 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 yPlusLES and write
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C
index 663c6dda74391a5c9b86d212d35467df4721c681..13412a300e7675192f66134e815e5626bad97f75 100644
--- a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C
+++ b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -235,6 +235,12 @@ void Foam::yPlusRAS::end()
 }
 
 
+void Foam::yPlusRAS::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::yPlusRAS::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H
index 241c4b6a74e08b5e0a88484dd031064e62300cac..747f100ab4f163f62a2e2bf9224380c688e1c1d9 100644
--- a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H
+++ b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -140,6 +140,9 @@ public:
         //- 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 yPlusRAS and write
         virtual void write();
 
diff --git a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
index 42d459ce01254a404dbff9ef2863dcf4fbd47cdf..03d1654fda5456e248b73a1286b2f46fb9e7ba1c 100644
--- a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
+++ b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
@@ -294,10 +294,20 @@ tmp<fvScalarMatrix> thermoSingleLayer::q(volScalarField& hs) const
 {
     dimensionedScalar Tstd("Tstd", dimTemperature, 298.15);
 
+    volScalarField htcst = htcs_->h()();
+    volScalarField htcwt = htcw_->h()();
+    forAll(alpha_, i)
+    {
+        htcst[i] *= max(alpha_[i], ROOTVSMALL);
+        htcwt[i] *= max(alpha_[i], ROOTVSMALL);
+    }
+    htcst.correctBoundaryConditions();
+    htcwt.correctBoundaryConditions();
+
     return
     (
-      - fvm::Sp(htcs_->h()/Cp_, hs) - htcs_->h()*(Tstd - TPrimary_)
-      - fvm::Sp(htcw_->h()/Cp_, hs) - htcw_->h()*(Tstd - Tw_)
+      - fvm::Sp(htcst/Cp_, hs) - htcst*(Tstd - TPrimary_)
+      - fvm::Sp(htcwt/Cp_, hs) -htcwt*(Tstd - Tw_)
     );
 }
 
diff --git a/src/sampling/probes/probes.C b/src/sampling/probes/probes.C
index 8652fa9a25cfc21cf4b6121d0e64648203394fd7..608049c7f7c9fb2a1a18c97cc23b877cff7a0b96 100644
--- a/src/sampling/probes/probes.C
+++ b/src/sampling/probes/probes.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -293,6 +293,12 @@ void Foam::probes::end()
 }
 
 
+void Foam::probes::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::probes::write()
 {
     if (size() && prepare())
diff --git a/src/sampling/probes/probes.H b/src/sampling/probes/probes.H
index 80a4037571259f24f62956598cf0b8e5d2ff92d5..f72581dbd700bccc1db5feecd8667c0d02eac327 100644
--- a/src/sampling/probes/probes.H
+++ b/src/sampling/probes/probes.H
@@ -243,6 +243,9 @@ public:
         //- 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();
+
         //- Sample and write
         virtual void write();
 
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.C b/src/sampling/sampledSet/sampledSets/sampledSets.C
index 44ea1691af47a20f24ad05e298073eb3591f9acd..0286e5487737cabeee186975fa7a08f580d1f4d0 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.C
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.C
@@ -188,6 +188,12 @@ void Foam::sampledSets::end()
 }
 
 
+void Foam::sampledSets::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::sampledSets::write()
 {
     if (size())
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.H b/src/sampling/sampledSet/sampledSets/sampledSets.H
index a2ad2f1418bb438b2cfa305006e60a485733a88f..54744bbbf859d69e22aaffd5edfd2cb44580a24a 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.H
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.H
@@ -288,6 +288,9 @@ public:
         //- 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();
+
         //- Sample and write
         virtual void write();
 
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
index 34d5bd5b965caf5d835a4cd689af412f92aa27f9..b33d6b30b752a45d2ccddcb8101ef4d383593f76 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
@@ -143,6 +143,12 @@ void Foam::sampledSurfaces::end()
 }
 
 
+void Foam::sampledSurfaces::timeSet()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::sampledSurfaces::write()
 {
     if (size())
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
index 050b2b6e383c1ac2e71789ee48d36055b29d0213..3390c0034876bcf46459b1a13ca351b6e34ddaed 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
@@ -221,6 +221,9 @@ public:
         //- 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();
+
         //- Sample and write
         virtual void write();
 
diff --git a/src/thermophysicalModels/solidSpecie/include/solidThermoPhysicsTypes.H b/src/thermophysicalModels/solidSpecie/include/solidThermoPhysicsTypes.H
index c1269e80007be332440a16e1a272c8e7509c66d2..7ecbb075eb479127c9bfaf4baf44b3d4683f7bf2 100644
--- a/src/thermophysicalModels/solidSpecie/include/solidThermoPhysicsTypes.H
+++ b/src/thermophysicalModels/solidSpecie/include/solidThermoPhysicsTypes.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,13 +35,17 @@ Description
 #include "specie.H"
 #include "rhoConst.H"
 #include "hConstThermo.H"
+#include "hPolynomialThermo.H"
 #include "hExponentialThermo.H"
 #include "constIsoSolidTransport.H"
 #include "constAnIsoSolidTransport.H"
 #include "exponentialSolidTransport.H"
+#include "polynomialSolidTransport.H"
+
 #include "sensibleEnthalpy.H"
 #include "thermo.H"
 
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -57,8 +61,7 @@ namespace Foam
                 >,
                 sensibleEnthalpy
             >
-        >
-        hConstSolidThermoPhysics;
+        > hConstSolidThermoPhysics;
 
     typedef
         exponentialSolidTransport
@@ -71,8 +74,23 @@ namespace Foam
                 >,
                 sensibleEnthalpy
             >
-        >
-        hExponentialSolidThermoPhysics;
+        > hExponentialSolidThermoPhysics;
+
+
+      typedef
+        polynomialSolidTransport
+        <
+            species::thermo
+            <
+                hPolynomialThermo
+                <
+                    rhoConst<specie>,
+                    8
+                >,
+                sensibleEnthalpy
+            >,
+            8
+        > hTransportThermoPoly8SolidThermoPhysics;
 }
 
 
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.C b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.C
new file mode 100644
index 0000000000000000000000000000000000000000..7bddd6d82209bf644417711baa7c4358101e0c6e
--- /dev/null
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.C
@@ -0,0 +1,110 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "polynomialSolidTransport.H"
+#include "IOstreams.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Thermo, int PolySize>
+Foam::polynomialSolidTransport<Thermo, PolySize>::polynomialSolidTransport
+(
+    Istream& is
+)
+:
+    Thermo(is),
+    kappaCoeffs_("kappaCoeffs<" + Foam::name(PolySize) + '>', is)
+{
+}
+
+
+template<class Thermo, int PolySize>
+Foam::polynomialSolidTransport<Thermo, PolySize>::polynomialSolidTransport
+(
+    const dictionary& dict
+)
+:
+    Thermo(dict),
+    kappaCoeffs_
+    (
+        dict.subDict("transport").lookup
+        (
+            "kappaCoeffs<" + Foam::name(PolySize) + '>'
+        )
+    )
+{
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Thermo, int PolySize>
+void Foam::polynomialSolidTransport<Thermo, PolySize>::write(Ostream& os) const
+{
+    os  << this->name() << endl;
+    os  << token::BEGIN_BLOCK << incrIndent << nl;
+
+    Thermo::write(os);
+
+    dictionary dict("transport");
+
+    dict.add
+    (
+        word("kappaCoeffs<" + Foam::name(PolySize) + '>'),
+        kappaCoeffs_
+    );
+    os  << indent << dict.dictName() << dict;
+
+    os  << decrIndent << token::END_BLOCK << nl;
+}
+
+
+// * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
+
+template<class Thermo, int PolySize>
+Foam::Ostream& Foam::operator<<
+(
+    Ostream& os,
+    const polynomialSolidTransport<Thermo, PolySize>& pt
+)
+{
+    os  << static_cast<const Thermo&>(pt) << tab
+        << "kappaCoeffs<" << Foam::name(PolySize) << '>' << tab
+        << pt.kappaCoeffs_;
+
+    os.check
+    (
+        "Ostream& operator<<"
+        "("
+            "Ostream&, "
+            "const polynomialSolidTransport<Thermo, PolySize>&"
+        ")"
+    );
+
+    return os;
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
new file mode 100644
index 0000000000000000000000000000000000000000..90a9e52f6af3b026a42d620e052c5da5dc973abf
--- /dev/null
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransport.H
@@ -0,0 +1,237 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::polynomialSolidTransport
+
+Description
+    Transport package using polynomial functions for solid kappa
+
+SourceFiles
+    polynomialSolidTransportI.H
+    polynomialSolidTransport.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef polynomialSolidTransport_H
+#define polynomialSolidTransport_H
+
+#include "Polynomial.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of friend functions and operators
+
+template<class Thermo, int PolySize> class polynomialSolidTransport;
+
+template<class Thermo, int PolySize>
+inline polynomialSolidTransport<Thermo, PolySize> operator+
+(
+    const polynomialSolidTransport<Thermo, PolySize>&,
+    const polynomialSolidTransport<Thermo, PolySize>&
+);
+
+template<class Thermo, int PolySize>
+inline polynomialSolidTransport<Thermo, PolySize> operator-
+(
+    const polynomialSolidTransport<Thermo, PolySize>&,
+    const polynomialSolidTransport<Thermo, PolySize>&
+);
+
+template<class Thermo, int PolySize>
+inline polynomialSolidTransport<Thermo, PolySize> operator*
+(
+    const scalar,
+    const polynomialSolidTransport<Thermo, PolySize>&
+);
+
+template<class Thermo, int PolySize>
+inline polynomialSolidTransport<Thermo, PolySize> operator==
+(
+    const polynomialSolidTransport<Thermo, PolySize>&,
+    const polynomialSolidTransport<Thermo, PolySize>&
+);
+
+template<class Thermo, int PolySize>
+Ostream& operator<<
+(
+    Ostream&,
+    const polynomialSolidTransport<Thermo, PolySize>&
+);
+
+
+/*---------------------------------------------------------------------------*\
+                     Class polynomialSolidTransport Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Thermo, int PolySize=8>
+class polynomialSolidTransport
+:
+    public Thermo
+{
+    // Private data
+
+        //- Thermal conductivity polynomial coefficients
+        //  Note: input in [W/m/K]
+        Polynomial<PolySize> kappaCoeffs_;
+
+
+    // Private Member Functions
+
+        //- Construct from components
+        inline polynomialSolidTransport
+        (
+            const Thermo& t,
+            const Polynomial<PolySize>& kappaPoly
+        );
+
+
+public:
+
+    // Constructors
+
+        //- Construct copy
+        inline polynomialSolidTransport(const polynomialSolidTransport&);
+
+        //- Construct as named copy
+        inline polynomialSolidTransport
+        (
+            const word&,
+            const polynomialSolidTransport&
+        );
+
+        //- Construct from Istream
+        polynomialSolidTransport(Istream& is);
+
+        //- Construct from dictionary
+        polynomialSolidTransport(const dictionary& dict);
+
+        //- Construct and return a clone
+        inline autoPtr<polynomialSolidTransport> clone() const;
+
+        // Selector from Istream
+        inline static autoPtr<polynomialSolidTransport> New(Istream& is);
+
+        // Selector from dictionary
+        inline static autoPtr<polynomialSolidTransport> New
+        (
+            const dictionary&dict
+        );
+
+
+    // Member functions
+
+        //- Return the instantiated type name
+        static word typeName()
+        {
+            return "polynomial<" + Thermo::typeName() + '>';
+        }
+
+        //- Is the thermal conductivity isotropic
+        static const bool isotropic = true;
+
+        //- Dynamic viscosity [kg/ms]
+        inline scalar mu(const scalar p, const scalar T) const;
+
+        //- Thermal conductivity [W/mK]
+        inline scalar kappa(const scalar p, const scalar T) const;
+
+        //- Thermal conductivity [W/mK]
+        inline vector Kappa(const scalar p, const scalar T) const;
+
+        //- Thermal diffusivity of enthalpy [kg/ms]
+        inline scalar alphah(const scalar p, const scalar T) const;
+
+
+        //- Write to Ostream
+        void write(Ostream& os) const;
+
+
+    // Member operators
+
+        inline polynomialSolidTransport& operator=
+        (
+            const polynomialSolidTransport&
+        );
+        inline void operator+=(const polynomialSolidTransport&);
+        inline void operator-=(const polynomialSolidTransport&);
+        inline void operator*=(const scalar);
+
+
+    // Friend operators
+
+        friend polynomialSolidTransport operator+ <Thermo, PolySize>
+        (
+            const polynomialSolidTransport&,
+            const polynomialSolidTransport&
+        );
+
+        friend polynomialSolidTransport operator- <Thermo, PolySize>
+        (
+            const polynomialSolidTransport&,
+            const polynomialSolidTransport&
+        );
+
+        friend polynomialSolidTransport operator* <Thermo, PolySize>
+        (
+            const scalar,
+            const polynomialSolidTransport&
+        );
+
+        friend polynomialSolidTransport operator== <Thermo, PolySize>
+        (
+            const polynomialSolidTransport&,
+            const polynomialSolidTransport&
+        );
+
+
+    // Ostream Operator
+
+        friend Ostream& operator<< <Thermo, PolySize>
+        (
+            Ostream&,
+            const polynomialSolidTransport&
+        );
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "polynomialSolidTransportI.H"
+
+#ifdef NoRepository
+#   include "polynomialSolidTransport.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
new file mode 100644
index 0000000000000000000000000000000000000000..51dda6ba5780187134d048f8de088469af454e74
--- /dev/null
+++ b/src/thermophysicalModels/solidSpecie/transport/polynomial/polynomialSolidTransportI.H
@@ -0,0 +1,289 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "specie.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize>::
+polynomialSolidTransport
+(
+    const polynomialSolidTransport& pt
+)
+:
+    Thermo(pt),
+    kappaCoeffs_(pt.kappaCoeffs_)
+{}
+
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize>::
+polynomialSolidTransport
+(
+    const Thermo& t,
+    const Polynomial<PolySize>& kappaCoeffs
+)
+:
+    Thermo(t),
+    kappaCoeffs_(kappaCoeffs)
+{}
+
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize>::
+polynomialSolidTransport
+(
+    const word& name,
+    const polynomialSolidTransport& pt
+)
+:
+    Thermo(name, pt),
+    kappaCoeffs_(pt.kappaCoeffs_)
+{}
+
+
+template<class Thermo, int PolySize>
+inline Foam::autoPtr<Foam::polynomialSolidTransport<Thermo, PolySize> >
+Foam::polynomialSolidTransport<Thermo, PolySize>::clone() const
+{
+    return autoPtr<polynomialSolidTransport<Thermo, PolySize> >
+    (
+        new polynomialSolidTransport<Thermo, PolySize>(*this)
+    );
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::autoPtr<Foam::polynomialSolidTransport<Thermo, PolySize> >
+Foam::polynomialSolidTransport<Thermo, PolySize>::New(Istream& is)
+{
+    return autoPtr<polynomialSolidTransport<Thermo, PolySize> >
+    (
+        new polynomialSolidTransport<Thermo, PolySize>(is)
+    );
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::autoPtr<Foam::polynomialSolidTransport<Thermo, PolySize> >
+Foam::polynomialSolidTransport<Thermo, PolySize>::New(const dictionary& dict)
+{
+    return autoPtr<polynomialSolidTransport<Thermo, PolySize> >
+    (
+        new polynomialSolidTransport<Thermo, PolySize>(dict)
+    );
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Thermo, int PolySize>
+inline Foam::scalar Foam::polynomialSolidTransport<Thermo, PolySize>::mu
+(
+    const scalar p,
+    const scalar T
+) const
+{
+    notImplemented
+    (
+        "Foam::scalar Foam::polynomialSolidTransport<thermo, PolySize>mu::"
+        "("
+        "    const scalar p, const scalar T"
+        ") const"
+    );
+    return scalar(0);
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::scalar Foam::polynomialSolidTransport<Thermo, PolySize>::kappa
+(
+    const scalar p,
+    const scalar T
+) const
+{
+    return kappaCoeffs_.value(T);
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::vector Foam::polynomialSolidTransport<Thermo, PolySize>::Kappa
+(
+    const scalar p,
+    const scalar T
+) const
+{
+    const scalar kappa(kappaCoeffs_.value(T));
+    return vector(kappa, kappa, kappa);
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::scalar Foam::polynomialSolidTransport<Thermo, PolySize>::alphah
+(
+    const scalar p, const scalar T
+) const
+{
+    return kappa(p, T)/this->Cpv(p, T);
+}
+
+
+// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize>&
+Foam::polynomialSolidTransport<Thermo, PolySize>::operator=
+(
+    const polynomialSolidTransport<Thermo, PolySize>& pt
+)
+{
+    Thermo::operator=(pt);
+
+    kappaCoeffs_ = pt.kappaCoeffs_;
+
+    return *this;
+}
+
+
+template<class Thermo, int PolySize>
+inline void Foam::polynomialSolidTransport<Thermo, PolySize>::operator+=
+(
+    const polynomialSolidTransport<Thermo, PolySize>& pt
+)
+{
+    scalar molr1 = this->nMoles();
+
+    Thermo::operator+=(pt);
+
+    molr1 /= this->nMoles();
+    scalar molr2 = pt.nMoles()/this->nMoles();
+
+    kappaCoeffs_ = molr1*kappaCoeffs_ + molr2*pt.kappaCoeffs_;
+}
+
+
+template<class Thermo, int PolySize>
+inline void Foam::polynomialSolidTransport<Thermo, PolySize>::operator-=
+(
+    const polynomialSolidTransport<Thermo, PolySize>& pt
+)
+{
+    scalar molr1 = this->nMoles();
+
+    Thermo::operator-=(pt);
+
+    molr1 /= this->nMoles();
+    scalar molr2 = pt.nMoles()/this->nMoles();
+
+    kappaCoeffs_ = molr1*kappaCoeffs_ - molr2*pt.kappaCoeffs_;
+}
+
+
+template<class Thermo, int PolySize>
+inline void Foam::polynomialSolidTransport<Thermo, PolySize>::operator*=
+(
+    const scalar s
+)
+{
+    Thermo::operator*=(s);
+}
+
+
+// * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator+
+(
+    const polynomialSolidTransport<Thermo, PolySize>& pt1,
+    const polynomialSolidTransport<Thermo, PolySize>& pt2
+)
+{
+    Thermo t
+    (
+        static_cast<const Thermo&>(pt1) + static_cast<const Thermo&>(pt2)
+    );
+
+    scalar molr1 = pt1.nMoles()/t.nMoles();
+    scalar molr2 = pt2.nMoles()/t.nMoles();
+
+    return polynomialSolidTransport<Thermo, PolySize>
+    (
+        t,
+        molr1*pt1.kappaCoeffs_ + molr2*pt2.kappaCoeffs_
+    );
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator-
+(
+    const polynomialSolidTransport<Thermo, PolySize>& pt1,
+    const polynomialSolidTransport<Thermo, PolySize>& pt2
+)
+{
+    Thermo t
+    (
+        static_cast<const Thermo&>(pt1) - static_cast<const Thermo&>(pt2)
+    );
+
+    scalar molr1 = pt1.nMoles()/t.nMoles();
+    scalar molr2 = pt2.nMoles()/t.nMoles();
+
+    return polynomialSolidTransport<Thermo, PolySize>
+    (
+        t,
+        molr1*pt1.kappaCoeffs_ - molr2*pt2.kappaCoeffs_
+    );
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator*
+(
+    const scalar s,
+    const polynomialSolidTransport<Thermo, PolySize>& pt
+)
+{
+    return polynomialSolidTransport<Thermo, PolySize>
+    (
+        s*static_cast<const Thermo&>(pt),
+        pt.kappaCoeffs_
+    );
+}
+
+
+template<class Thermo, int PolySize>
+inline Foam::polynomialSolidTransport<Thermo, PolySize> Foam::operator==
+(
+    const polynomialSolidTransport<Thermo, PolySize>& pt1,
+    const polynomialSolidTransport<Thermo, PolySize>& pt2
+)
+{
+    return pt2 - pt1;
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H b/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H
index 85000a3c108f822a722ad1c3553710380981d341..5193a4b9deef4e3d95b10f06d9231f625fb46e72 100644
--- a/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H
+++ b/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H
@@ -103,6 +103,58 @@ addToRunTimeSelectionTable                                                    \
 );
 
 
+
+#define makeSolidThermoPhysicsType(BaseThermo,Cthermo,Mixture,SolidPhysicsType)\
+                                                                              \
+                                                                              \
+                                                                              \
+typedef                                                                       \
+    heThermo                                                                  \
+    <                                                                         \
+        BaseThermo,                                                           \
+        Mixture<SolidPhysicsType>                                             \
+    > heThermo##Mixture##SolidPhysicsType;                                    \
+                                                                              \
+typedef                                                                       \
+    Cthermo                                                                   \
+    <                                                                         \
+        BaseThermo,                                                           \
+        Mixture<SolidPhysicsType>                                             \
+    > Cthermo##Mixture##SolidPhysicsType;                                     \
+                                                                              \
+                                                                              \
+defineTemplateTypeNameAndDebugWithName                                        \
+(                                                                             \
+    Cthermo##Mixture##SolidPhysicsType,                                       \
+    (                                                                         \
+        #Cthermo"<"#Mixture"<"                                                \
+      + SolidPhysicsType::typeName()                                          \
+      + ">>"                                                                  \
+    ).c_str(),                                                                \
+    0                                                                         \
+);                                                                            \
+                                                                              \
+                                                                              \
+addToRunTimeSelectionTable                                                    \
+(                                                                             \
+    basicThermo,                                                              \
+    Cthermo##Mixture##SolidPhysicsType,                                       \
+    fvMesh                                                                    \
+);                                                                            \
+                                                                              \
+addToRunTimeSelectionTable                                                    \
+(                                                                             \
+    BaseThermo,                                                               \
+    Cthermo##Mixture##SolidPhysicsType,                                       \
+    fvMesh                                                                    \
+);                                                                            \
+                                                                              \
+addToRunTimeSelectionTable                                                    \
+(                                                                             \
+    BaseThermo,                                                               \
+    Cthermo##Mixture##SolidPhysicsType,                                       \
+    dictionary                                                                \
+);
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/src/thermophysicalModels/solidThermo/solidThermo/solidThermos.C b/src/thermophysicalModels/solidThermo/solidThermo/solidThermos.C
index 6814431fecc1757f1717582490b9d258a247eee6..020dbfda9240f32fe070cd56bbb796747b5628d0 100644
--- a/src/thermophysicalModels/solidThermo/solidThermo/solidThermos.C
+++ b/src/thermophysicalModels/solidThermo/solidThermo/solidThermos.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,14 +31,17 @@ License
 #include "rhoConst.H"
 #include "hConstThermo.H"
 #include "hExponentialThermo.H"
+#include "hPolynomialThermo.H"
 #include "constIsoSolidTransport.H"
 #include "constAnIsoSolidTransport.H"
 #include "exponentialSolidTransport.H"
+#include "polynomialSolidTransport.H"
 #include "pureMixture.H"
 #include "sensibleEnthalpy.H"
 #include "sensibleInternalEnergy.H"
 #include "thermo.H"
 
+#include "solidThermoPhysicsTypes.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -83,6 +86,14 @@ makeSolidThermo
     specie
 );
 
+makeSolidThermoPhysicsType
+(
+    solidThermo,
+    heSolidThermo,
+    pureMixture,
+    hTransportThermoPoly8SolidThermoPhysics
+);
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/specie/transport/const/constTransportI.H b/src/thermophysicalModels/specie/transport/const/constTransportI.H
index 98ce21d97ec0eb030cb5f74ca2e8852c9f2d8ce2..9949fddae4e5fc6804e884ea6c8fb717e062154e 100644
--- a/src/thermophysicalModels/specie/transport/const/constTransportI.H
+++ b/src/thermophysicalModels/specie/transport/const/constTransportI.H
@@ -111,7 +111,7 @@ inline Foam::scalar Foam::constTransport<Thermo>::kappa
     const scalar T
 ) const
 {
-    return this->Cp(p, T)*mu(p, T)*rPr_;
+    return this->Cpv(p, T)*mu(p, T)*rPr_;
 }
 
 
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
index a2ff3f4d22f38303935f640ccd60ef8d764e08a2..9a5ad80d5ea693a3da3d9184ae0e852de812af63 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransportI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -129,7 +129,7 @@ inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::alphah
     const scalar p, const scalar T
 ) const
 {
-    return kappa(p, T)/this->Cp(p, T);
+    return kappa(p, T)/this->Cpv(p, T);
 }
 
 
diff --git a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
index 7a0845cfb52eaf6280a7df4c7286da00c12a0de5..01668dda17336f3b6c61403e87a5809379130a3d 100644
--- a/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
+++ b/src/thermophysicalModels/specie/transport/sutherland/sutherlandTransportI.H
@@ -158,7 +158,7 @@ inline Foam::scalar Foam::sutherlandTransport<Thermo>::alphah
 ) const
 {
 
-    return kappa(p, T)/this->Cp(p, T);
+    return kappa(p, T)/this->Cpv(p, T);
 }