From 659249064fa659f5525273b36634ac72b0ba71e6 Mon Sep 17 00:00:00 2001
From: andy <andy>
Date: Fri, 3 Jan 2014 10:37:08 +0000
Subject: [PATCH] ENH: Function object updates

---
 .../removeRegisteredObject.C                  |   4 +-
 .../IO/writeDictionary/writeDictionary.C      |   4 +-
 .../fieldAverage/fieldAverage/fieldAverage.C  |   2 -
 .../fieldCoordinateSystemTransform.C          |   7 +-
 .../field/fieldMinMax/fieldMinMax.C           |  12 +-
 .../field/fieldMinMax/fieldMinMax.H           |  16 +-
 .../field/fieldMinMax/fieldMinMaxTemplates.C  | 166 +++++++++---------
 .../field/fieldValues/cellSource/cellSource.C |   7 +-
 .../cellSource/cellSourceTemplates.C          |  11 +-
 .../field/fieldValues/faceSource/faceSource.C |   7 +-
 .../faceSource/faceSourceTemplates.C          |  11 +-
 .../field/fieldValues/fieldValue/fieldValue.C |   7 +-
 .../fieldValueDelta/fieldValueDelta.C         |   7 +-
 .../fieldValueDeltaTemplates.C                |  11 +-
 .../field/nearWallFields/nearWallFields.C     |   7 +-
 .../field/processorField/processorField.C     |   7 +-
 .../field/readFields/readFields.C             |  54 +++---
 .../surfaceInterpolateFields.C                |   7 +-
 .../field/turbulenceFields/turbulenceFields.C |   7 +-
 .../forces/forceCoeffs/forceCoeffs.C          |  22 +--
 .../functionObjects/forces/forces/forces.C    |  36 ++--
 .../fvTools/calcFvcDiv/calcFvcDiv.C           |   7 +-
 .../fvTools/calcFvcGrad/calcFvcGrad.C         |   7 +-
 .../functionObjects/fvTools/calcMag/calcMag.C |   7 +-
 .../utilities/CourantNo/CourantNo.C           |   7 +-
 .../DESModelRegions/DESModelRegions.C         |  27 ++-
 .../utilities/Lambda2/Lambda2.C               |   7 +-
 .../functionObjects/utilities/Peclet/Peclet.C |   7 +-
 .../functionObjects/utilities/Q/Q.C           |   7 +-
 .../utilities/blendingFactor/blendingFactor.C |   7 +-
 .../utilities/pressureTools/pressureTools.C   |   7 +-
 .../scalarTransport/scalarTransport.C         | 135 +++++++-------
 .../timeActivatedFileUpdate.C                 |   7 +-
 .../wallShearStress/wallShearStress.C         |  28 ++-
 .../utilities/yPlusLES/yPlusLES.C             |  31 ++--
 .../utilities/yPlusRAS/yPlusRAS.C             |  31 ++--
 36 files changed, 363 insertions(+), 371 deletions(-)

diff --git a/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.C b/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.C
index eb4f5ee21a8..28bb18292eb 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,7 +92,7 @@ void Foam::removeRegisteredObject::execute()
 
 void Foam::removeRegisteredObject::end()
 {
-    // Do nothing - only valid on execute
+    execute();
 }
 
 
diff --git a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C
index fff2c680414..74fa1f0b008 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -195,7 +195,7 @@ void Foam::writeDictionary::execute()
 
 void Foam::writeDictionary::end()
 {
-    // do nothing
+    execute();
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
index 2c69ec63367..251b9d3f1f1 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
@@ -317,7 +317,6 @@ void Foam::fieldAverage::execute()
     if (active_)
     {
         calcAverages();
-
         Info<< endl;
     }
 }
@@ -328,7 +327,6 @@ void Foam::fieldAverage::end()
     if (active_)
     {
         calcAverages();
-
         Info<< endl;
     }
 }
diff --git a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
index 7fdb74f8128..4e30b881ca6 100644
--- a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
+++ b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -115,7 +115,10 @@ void Foam::fieldCoordinateSystemTransform::execute()
 
 void Foam::fieldCoordinateSystemTransform::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
index 0c61259012d..d13ae8d791b 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-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -159,10 +159,7 @@ void Foam::fieldMinMax::write()
     {
         functionObjectFile::write();
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ <<  " output:" << nl;
-        }
+        Info(log_)<< type() << " " << name_ <<  " output:" << nl;
 
         forAll(fieldSet_, fieldI)
         {
@@ -173,10 +170,7 @@ void Foam::fieldMinMax::write()
             calcMinMaxFields<tensor>(fieldSet_[fieldI], mode_);
         }
 
-        if (log_)
-        {
-            Info<< endl;
-        }
+        Info(log_)<< endl;
     }
 }
 
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
index 25ccd00f418..361420da073 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-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -139,6 +139,20 @@ protected:
 
     // Private Member Functions
 
+        //- Helper function to write the output
+        template<class Type>
+        void output
+        (
+            const word& fieldName,
+            const word& outputName,
+            const vector& minC,
+            const vector& maxC,
+            const label minProcI,
+            const label maxProcI,
+            const Type& minValue,
+            const Type& maxValue
+        );
+
         //- Disallow default bitwise copy construct
         fieldMinMax(const fieldMinMax&);
 
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
index 4aa2a2b6cd9..a8477d8d50d 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,6 +31,62 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+template<class Type>
+void Foam::fieldMinMax::output
+(
+    const word& fieldName,
+    const word& outputName,
+    const vector& minC,
+    const vector& maxC,
+    const label minProcI,
+    const label maxProcI,
+    const Type& minValue,
+    const Type& maxValue
+)
+{
+    file()<< obr_.time().value();
+    writeTabbed(file(), fieldName);
+
+    file()
+        << token::TAB << minValue
+        << token::TAB << minC;
+
+    if (Pstream::parRun())
+    {
+        file()<< token::TAB << minProcI;
+    }
+
+    file()
+        << token::TAB << maxValue
+        << token::TAB << maxC;
+
+    if (Pstream::parRun())
+    {
+        file()<< token::TAB << maxProcI;
+    }
+
+    file() << endl;
+
+    Info(log_)<< "    min(" << outputName << ") = "
+        << minValue << " at position " << minC;
+
+    if (Pstream::parRun())
+    {
+        Info(log_)<< " on processor " << minProcI;
+    }
+
+    Info(log_)<< nl << "    max(" << outputName << ") = "
+        << maxValue << " at position " << maxC;
+
+    if (Pstream::parRun())
+    {
+        Info(log_)<< " on processor " << maxProcI;
+    }
+
+    Info(log_)<< endl;
+}
+
+
 template<class Type>
 void Foam::fieldMinMax::calcMinMaxFields
 (
@@ -111,49 +167,17 @@ void Foam::fieldMinMax::calcMinMaxFields
                     scalar maxValue = maxVs[maxI];
                     const vector& maxC = maxCs[maxI];
 
-                    file()<< obr_.time().value();
-                    writeTabbed(file(), fieldName);
-
-                    file()
-                        << token::TAB << minValue
-                        << token::TAB << minC;
-
-                    if (Pstream::parRun())
-                    {
-                        file()<< token::TAB << minI;
-                    }
-
-                    file()
-                        << token::TAB << maxValue
-                        << token::TAB << maxC;
-
-                    if (Pstream::parRun())
-                    {
-                        file()<< token::TAB << maxI;
-                    }
-
-                    file() << endl;
-
-                    if (log_)
-                    {
-                        Info<< "    min(mag(" << fieldName << ")) = "
-                            << minValue << " at position " << minC;
-
-                        if (Pstream::parRun())
-                        {
-                            Info<< " on processor " << minI;
-                        }
-
-                        Info<< nl << "    max(mag(" << fieldName << ")) = "
-                            << maxValue << " at position " << maxC;
-
-                        if (Pstream::parRun())
-                        {
-                            Info<< " on processor " << maxI;
-                        }
-
-                        Info<< endl;
-                    }
+                    output
+                    (
+                        fieldName,
+                        word("mag(" + fieldName + ")"),
+                        minC,
+                        maxC,
+                        minI,
+                        maxI,
+                        minValue,
+                        maxValue
+                    );
                 }
                 break;
             }
@@ -216,49 +240,17 @@ void Foam::fieldMinMax::calcMinMaxFields
                     Type maxValue = maxVs[maxI];
                     const vector& maxC = maxCs[maxI];
 
-                    file()<< obr_.time().value();
-                    writeTabbed(file(), fieldName);
-
-                    file()
-                        << token::TAB << minValue
-                        << token::TAB << minC;
-
-                    if (Pstream::parRun())
-                    {
-                        file()<< token::TAB << minI;
-                    }
-
-                    file()
-                        << token::TAB << maxValue
-                        << token::TAB << maxC;
-
-                    if (Pstream::parRun())
-                    {
-                        file()<< token::TAB << maxI;
-                    }
-
-                    file() << endl;
-
-                    if (log_)
-                    {
-                        Info<< "    min(" << fieldName << ") = "
-                            << minValue << " at position " << minC;
-
-                        if (Pstream::parRun())
-                        {
-                            Info<< " on processor " << minI;
-                        }
-
-                        Info<< nl << "    max(" << fieldName << ") = "
-                            << maxValue << " at position " << maxC;
-
-                        if (Pstream::parRun())
-                        {
-                            Info<< " on processor " << maxI;
-                        }
-
-                        Info<< endl;
-                    }
+                    output
+                    (
+                        fieldName,
+                        fieldName,
+                        minC,
+                        maxC,
+                        minI,
+                        maxI,
+                        minValue,
+                        maxValue
+                    );
                 }
                 break;
             }
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
index 595c16084d6..a441189f39c 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -245,10 +245,7 @@ void Foam::fieldValues::cellSource::write()
             file()<< endl;
         }
 
-        if (log_)
-        {
-            Info<< endl;
-        }
+        Info(log_)<< endl;
     }
 }
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.C b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.C
index bdeccc6dd0a..372bd224b90 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.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-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -200,12 +200,9 @@ bool Foam::fieldValues::cellSource::writeValues(const word& fieldName)
 
             file()<< tab << result;
 
-            if (log_)
-            {
-                Info<< "    " << operationTypeNames_[operation_]
-                    << "(" << sourceName_ << ") for " << fieldName
-                    <<  " = " << result << endl;
-            }
+            Info(log_)<< "    " << operationTypeNames_[operation_]
+                << "(" << sourceName_ << ") for " << fieldName
+                <<  " = " << result << endl;
         }
     }
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
index 054ef404235..ea38597aef6 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -663,10 +663,7 @@ void Foam::fieldValues::faceSource::write()
             file()<< endl;
         }
 
-        if (log_)
-        {
-            Info<< endl;
-        }
+        Info(log_)<< endl;
     }
 }
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C
index 76b50be88f1..6def30c520f 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -344,12 +344,9 @@ bool Foam::fieldValues::faceSource::writeValues(const word& fieldName)
 
             file()<< tab << result;
 
-            if (log_)
-            {
-                Info<< "    " << operationTypeNames_[operation_]
-                    << "(" << sourceName_ << ") for " << fieldName
-                    <<  " = " << result << endl;
-            }
+            Info(log_)<< "    " << operationTypeNames_[operation_]
+                << "(" << sourceName_ << ") for " << fieldName
+                <<  " = " << result << endl;
         }
     }
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
index 6d0856a9162..25f2c84cbec 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,10 +58,7 @@ void Foam::fieldValue::write()
     {
         functionObjectFile::write();
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl;
-        }
+        Info(log_)<< type() << " " << name_ << " output:" << nl;
     }
 }
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
index b251a362ea8..d467b8146c3 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -158,10 +158,7 @@ void Foam::fieldValues::fieldValueDelta::write()
         file()<< obr_.time().value();
     }
 
-    if (log_)
-    {
-        Info<< type() << " " << name_ << " output:" << endl;
-    }
+    Info(log_)<< type() << " " << name_ << " output:" << endl;
 
     bool found = false;
     processFields<scalar>(found);
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDeltaTemplates.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDeltaTemplates.C
index b107c795270..48581422a94 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDeltaTemplates.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDeltaTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -114,12 +114,9 @@ void Foam::fieldValues::fieldValueDelta::processFields(bool& found)
 
             Type result = applyOperation(r1, r2);
 
-            if (log_)
-            {
-                Info<< "    " << operationTypeNames_[operation_]
-                    << "(" << fieldName << ") = " << result
-                    << endl;
-            }
+            Info(log_)<< "    " << operationTypeNames_[operation_]
+                << "(" << fieldName << ") = " << result
+                << endl;
 
             if (Pstream::master())
             {
diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C
index 40211ae7a2b..d65c9acf877 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-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -374,6 +374,11 @@ void Foam::nearWallFields::end()
     {
         Info<< "nearWallFields:end()" << endl;
     }
+
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.C b/src/postProcessing/functionObjects/field/processorField/processorField.C
index 37c61b5db2c..a57ee9a2930 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-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,7 +122,10 @@ void Foam::processorField::execute()
 
 void Foam::processorField::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.C b/src/postProcessing/functionObjects/field/readFields/readFields.C
index 7897bfd92b1..869f46beb01 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-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -91,36 +91,42 @@ void Foam::readFields::read(const dictionary& dict)
 
 void Foam::readFields::execute()
 {
-    //Info<< type() << " " << name_ << ":" << nl;
-
-    // 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();
-
-    forAll(fieldSet_, fieldI)
+    if (active_)
     {
-        // If necessary load field
-        loadField<scalar>(fieldSet_[fieldI], vsf_, ssf_);
-        loadField<vector>(fieldSet_[fieldI], vvf_, svf_);
-        loadField<sphericalTensor>(fieldSet_[fieldI], vSpheretf_, sSpheretf_);
-        loadField<symmTensor>(fieldSet_[fieldI], vSymmtf_, sSymmtf_);
-        loadField<tensor>(fieldSet_[fieldI], vtf_, stf_);
+        // 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();
+
+        forAll(fieldSet_, fieldI)
+        {
+            const word& fieldName = fieldSet_[fieldI];
+
+            // If necessary load field
+            loadField<scalar>(fieldName, vsf_, ssf_);
+            loadField<vector>(fieldName, vvf_, svf_);
+            loadField<sphericalTensor>(fieldName, vSpheretf_, sSpheretf_);
+            loadField<symmTensor>(fieldName, vSymmtf_, sSymmtf_);
+            loadField<tensor>(fieldName, vtf_, stf_);
+        }
     }
 }
 
 
 void Foam::readFields::end()
 {
-    execute();
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C
index 53e991d76bd..0048f0d15ab 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-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -114,7 +114,10 @@ void Foam::surfaceInterpolateFields::execute()
 
 void Foam::surfaceInterpolateFields::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.C b/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.C
index b3fd284abd4..9f25e517a79 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -257,7 +257,10 @@ void Foam::turbulenceFields::execute()
 
 void Foam::turbulenceFields::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
index 42ae77e264a..283a93e426c 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -227,15 +227,12 @@ void Foam::forceCoeffs::write()
             << obr_.time().value() << tab << Cm << tab  << Cd
             << tab << Cl << tab << Clf << tab << Clr << endl;
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl
-                << "    Cm    = " << Cm << nl
-                << "    Cd    = " << Cd << nl
-                << "    Cl    = " << Cl << nl
-                << "    Cl(f) = " << Clf << nl
-                << "    Cl(r) = " << Clr << endl;
-        }
+        Info(log_)<< type() << " " << name_ << " output:" << nl
+            << "    Cm    = " << Cm << nl
+            << "    Cd    = " << Cd << nl
+            << "    Cl    = " << Cl << nl
+            << "    Cl(f) = " << Clf << nl
+            << "    Cl(r) = " << Clr << endl;
 
         if (nBin_ > 1)
         {
@@ -262,10 +259,7 @@ void Foam::forceCoeffs::write()
             file(1) << endl;
         }
 
-        if (log_)
-        {
-            Info<< endl;
-        }
+        Info(log_)<< endl;
     }
 }
 
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.C b/src/postProcessing/functionObjects/forces/forces/forces.C
index c096ad5d4b0..e38c5a46224 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.C
+++ b/src/postProcessing/functionObjects/forces/forces/forces.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -391,19 +391,17 @@ void Foam::forces::applyBins
 
 void Foam::forces::writeForces()
 {
-    if (log_)
-    {
-        Info<< type() << " " << name_ << " output:" << nl
-            << "    sum of forces:" << nl
-            << "        pressure : " << sum(force_[0]) << nl
-            << "        viscous  : " << sum(force_[1]) << nl
-            << "        porous   : " << sum(force_[2]) << nl
-            << "    sum of moments:" << nl
-            << "        pressure : " << sum(moment_[0]) << nl
-            << "        viscous  : " << sum(moment_[1]) << nl
-            << "        porous   : " << sum(moment_[2])
-            << endl;
-    }
+    Info(log_)
+        << type() << " " << name_ << " output:" << nl
+        << "    sum of forces:" << nl
+        << "        pressure : " << sum(force_[0]) << nl
+        << "        viscous  : " << sum(force_[1]) << nl
+        << "        porous   : " << sum(force_[2]) << nl
+        << "    sum of moments:" << nl
+        << "        pressure : " << sum(moment_[0]) << nl
+        << "        viscous  : " << sum(moment_[1]) << nl
+        << "        porous   : " << sum(moment_[2])
+        << endl;
 
     file(0) << obr_.time().value() << tab << setw(1) << '['
         << sum(force_[0]) << setw(1) << ','
@@ -642,10 +640,7 @@ void Foam::forces::read(const dictionary& dict)
 
         log_ = dict.lookupOrDefault<Switch>("log", false);
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ << ":" << nl;
-        }
+        Info(log_)<< type() << " " << name_ << ":" << nl;
 
         directForceDensity_ = dict.lookupOrDefault("directForceDensity", false);
 
@@ -809,10 +804,7 @@ void Foam::forces::write()
 
         writeBins();
 
-        if (log_)
-        {
-            Info<< endl;
-        }
+        Info(log_)<< endl;
     }
 }
 
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C
index 9620fe3222a..8c951de8ecf 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -154,7 +154,10 @@ void Foam::calcFvcDiv::execute()
 
 void Foam::calcFvcDiv::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C
index 31d24da4e9c..c0642ecf01b 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -116,7 +116,10 @@ void Foam::calcFvcGrad::execute()
 
 void Foam::calcFvcGrad::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C
index 3b400f4889d..d853aaf00dc 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -119,7 +119,10 @@ void Foam::calcMag::execute()
 
 void Foam::calcMag::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C
index 2a662c65136..dbb81f83639 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -185,7 +185,10 @@ void Foam::CourantNo::execute()
 
 void Foam::CourantNo::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
index 0edfdb727d6..0bfbc94126b 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -142,10 +142,7 @@ void Foam::DESModelRegions::execute()
 
         const fvMesh& mesh = refCast<const fvMesh>(obr_);
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ <<  " output:" << nl;
-        }
+        Info(log_)<< type() << " " << name_ <<  " output:" << nl;
 
         volScalarField& DESModelRegions =
             const_cast<volScalarField&>
@@ -196,19 +193,14 @@ void Foam::DESModelRegions::execute()
                     << endl;
             }
 
-            if (log_)
-            {
-                Info<< "    LES = " << prc << " % (volume)" << nl
-                    << "    RAS = " << 100.0 - prc << " % (volume)" << endl;
-            }
+            Info(log_)
+                << "    LES = " << prc << " % (volume)" << nl
+                << "    RAS = " << 100.0 - prc << " % (volume)" << endl;
         }
         else
         {
-            if (log_)
-            {
-                Info<< "    No DES turbulence model found in database" << nl
-                    << endl;
-            }
+            Info(log_)<< "    No DES turbulence model found in database" << nl
+                << endl;
         }
     }
 }
@@ -216,7 +208,10 @@ void Foam::DESModelRegions::execute()
 
 void Foam::DESModelRegions::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
index b008b7b4fa5..3c72fbfd9b5 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -144,7 +144,10 @@ void Foam::Lambda2::execute()
 
 void Foam::Lambda2::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
index 0c77608b13f..6d288fcfc00 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -197,7 +197,10 @@ void Foam::Peclet::execute()
 
 void Foam::Peclet::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 void Foam::Peclet::timeSet()
diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.C b/src/postProcessing/functionObjects/utilities/Q/Q.C
index a17561217e6..2dda80a88ba 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -137,7 +137,10 @@ void Foam::Q::execute()
 
 void Foam::Q::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
index 351c48bfb4b..3c98c9d86f2 100644
--- a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -101,7 +101,10 @@ void Foam::blendingFactor::execute()
 
 void Foam::blendingFactor::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 void Foam::blendingFactor::timeSet()
diff --git a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
index 3417dfec390..2d6c157d4df 100644
--- a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
+++ b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -309,7 +309,10 @@ void Foam::pressureTools::execute()
 
 void Foam::pressureTools::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
index b63fe4acd8b..4428388604b 100644
--- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
+++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -214,92 +214,97 @@ void Foam::scalarTransport::read(const dictionary& dict)
 
 void Foam::scalarTransport::execute()
 {
-    Info<< type() << " output:" << endl;
-
-    const surfaceScalarField& phi =
-        mesh_.lookupObject<surfaceScalarField>(phiName_);
+    if (active_)
+    {
+        Info<< type() << " output:" << endl;
 
-    // calculate the diffusivity
-    volScalarField DT(this->DT(phi));
+        const surfaceScalarField& phi =
+            mesh_.lookupObject<surfaceScalarField>(phiName_);
 
-    // set schemes
-    word schemeVar = T_.name();
-    if (autoSchemes_)
-    {
-        schemeVar = UName_;
-    }
+        // calculate the diffusivity
+        volScalarField DT(this->DT(phi));
 
-    word divScheme("div(phi," + schemeVar + ")");
-    word laplacianScheme("laplacian(" + DT.name() + "," + schemeVar + ")");
+        // set schemes
+        word schemeVar = T_.name();
+        if (autoSchemes_)
+        {
+            schemeVar = UName_;
+        }
 
-    // set under-relaxation coeff
-    scalar relaxCoeff = 0.0;
-    if (mesh_.relaxEquation(schemeVar))
-    {
-        relaxCoeff = mesh_.equationRelaxationFactor(schemeVar);
-    }
+        word divScheme("div(phi," + schemeVar + ")");
+        word laplacianScheme("laplacian(" + DT.name() + "," + schemeVar + ")");
 
-    if (phi.dimensions() == dimMass/dimTime)
-    {
-        const volScalarField& rho =
-            mesh_.lookupObject<volScalarField>(rhoName_);
+        // set under-relaxation coeff
+        scalar relaxCoeff = 0.0;
+        if (mesh_.relaxEquation(schemeVar))
+        {
+            relaxCoeff = mesh_.equationRelaxationFactor(schemeVar);
+        }
 
-        // solve
-        for (label i = 0; i <= nCorr_; i++)
+        if (phi.dimensions() == dimMass/dimTime)
         {
-            fvScalarMatrix TEqn
-            (
-                fvm::ddt(rho, T_)
-              + fvm::div(phi, T_, divScheme)
-              - fvm::laplacian(DT, T_, laplacianScheme)
-             ==
-                fvOptions_(rho, T_)
-            );
+            const volScalarField& rho =
+                mesh_.lookupObject<volScalarField>(rhoName_);
+
+            // solve
+            for (label i = 0; i <= nCorr_; i++)
+            {
+                fvScalarMatrix TEqn
+                (
+                    fvm::ddt(rho, T_)
+                  + fvm::div(phi, T_, divScheme)
+                  - fvm::laplacian(DT, T_, laplacianScheme)
+                 ==
+                    fvOptions_(rho, T_)
+                );
 
-            TEqn.relax(relaxCoeff);
+                TEqn.relax(relaxCoeff);
 
-            fvOptions_.constrain(TEqn);
+                fvOptions_.constrain(TEqn);
 
-            TEqn.solve(mesh_.solverDict(schemeVar));
+                TEqn.solve(mesh_.solverDict(schemeVar));
+            }
         }
-    }
-    else if (phi.dimensions() == dimVolume/dimTime)
-    {
-        // solve
-        for (label i = 0; i <= nCorr_; i++)
+        else if (phi.dimensions() == dimVolume/dimTime)
         {
-            fvScalarMatrix TEqn
-            (
-                fvm::ddt(T_)
-              + fvm::div(phi, T_, divScheme)
-              - fvm::laplacian(DT, T_, laplacianScheme)
-             ==
-                fvOptions_(T_)
-            );
+            // solve
+            for (label i = 0; i <= nCorr_; i++)
+            {
+                fvScalarMatrix TEqn
+                (
+                    fvm::ddt(T_)
+                  + fvm::div(phi, T_, divScheme)
+                  - fvm::laplacian(DT, T_, laplacianScheme)
+                 ==
+                    fvOptions_(T_)
+                );
 
-            TEqn.relax(relaxCoeff);
+                TEqn.relax(relaxCoeff);
 
-            fvOptions_.constrain(TEqn);
+                fvOptions_.constrain(TEqn);
 
-            TEqn.solve(mesh_.solverDict(schemeVar));
+                TEqn.solve(mesh_.solverDict(schemeVar));
+            }
+        }
+        else
+        {
+            FatalErrorIn("void Foam::scalarTransport::execute()")
+                << "Incompatible dimensions for phi: " << phi.dimensions() << nl
+                << "Dimensions should be " << dimMass/dimTime << " or "
+                << dimVolume/dimTime << endl;
         }
-    }
-    else
-    {
-        FatalErrorIn("void Foam::scalarTransport::execute()")
-            << "Incompatible dimensions for phi: " << phi.dimensions() << nl
-            << "Dimensions should be " << dimMass/dimTime << " or "
-            << dimVolume/dimTime << endl;
-    }
-
 
-    Info<< endl;
+        Info<< endl;
+    }
 }
 
 
 void Foam::scalarTransport::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
index 9329ad6e3f5..91d5f381f60 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-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -132,7 +132,10 @@ void Foam::timeActivatedFileUpdate::execute()
 
 void Foam::timeActivatedFileUpdate::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C
index a507428c6f4..64255a7efd9 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,11 +82,8 @@ void Foam::wallShearStress::calcShearStress
                 << endl;
         }
 
-        if (log_)
-        {
-            Info<< "    min/max(" << pp.name() << ") = "
-                << minSsp << ", " << maxSsp << endl;
-        }
+        Info(log_)<< "    min/max(" << pp.name() << ") = "
+            << minSsp << ", " << maxSsp << endl;
     }
 }
 
@@ -240,10 +237,7 @@ void Foam::wallShearStress::execute()
                 mesh.lookupObject<volVectorField>(type())
             );
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl;
-        }
+        Info(log_)<< type() << " " << name_ << " output:" << nl;
 
 
         tmp<volSymmTensorField> Reff;
@@ -275,7 +269,10 @@ void Foam::wallShearStress::execute()
 
 void Foam::wallShearStress::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
@@ -294,12 +291,9 @@ void Foam::wallShearStress::write()
         const volVectorField& wallShearStress =
             obr_.lookupObject<volVectorField>(type());
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl
-                << "    writing field " << wallShearStress.name() << nl
-                << endl;
-        }
+        Info(log_)<< type() << " " << name_ << " output:" << nl
+            << "    writing field " << wallShearStress.name() << nl
+            << endl;
 
         wallShearStress.write();
     }
diff --git a/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.C b/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.C
index 57951c6bae9..b84942fffb0 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -94,15 +94,12 @@ void Foam::yPlusLES::calcIncompressibleYPlus
             scalar maxYp = gMax(Yp);
             scalar avgYp = gAverage(Yp);
 
-            if (log_)
+            if (Pstream::master())
             {
-                Info<< "    patch " << currPatch.name()
+                Info(log_)<< "    patch " << currPatch.name()
                     << " y+ : min = " << minYp << ", max = " << maxYp
                     << ", average = " << avgYp << nl;
-            }
 
-            if (Pstream::master())
-            {
                 file() << obr_.time().value()
                     << token::TAB << currPatch.name()
                     << token::TAB << minYp
@@ -162,15 +159,12 @@ void Foam::yPlusLES::calcCompressibleYPlus
             scalar maxYp = gMax(Yp);
             scalar avgYp = gAverage(Yp);
 
-            if (log_)
+            if (Pstream::master())
             {
-                Info<< "    patch " << currPatch.name()
+                Info(log_)<< "    patch " << currPatch.name()
                     << " y+ : min = " << minYp << ", max = " << maxYp
                     << ", average = " << avgYp << nl;
-            }
 
-            if (Pstream::master())
-            {
                 file() << obr_.time().value()
                     << token::TAB << currPatch.name()
                     << token::TAB << minYp
@@ -286,10 +280,7 @@ void Foam::yPlusLES::execute()
                 mesh.lookupObject<volScalarField>(type())
             );
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl;
-        }
+        Info(log_)<< type() << " " << name_ << " output:" << nl;
 
         if (phi.dimensions() == dimMass/dimTime)
         {
@@ -305,7 +296,10 @@ void Foam::yPlusLES::execute()
 
 void Foam::yPlusLES::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
@@ -324,10 +318,7 @@ void Foam::yPlusLES::write()
         const volScalarField& yPlusLES =
             obr_.lookupObject<volScalarField>(type());
 
-        if (log_)
-        {
-            Info<< "    writing field " << yPlusLES.name() << nl << endl;
-        }
+        Info(log_)<< "    writing field " << yPlusLES.name() << nl << endl;
 
         yPlusLES.write();
     }
diff --git a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C
index 8d84bda4860..c93875b3e5f 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) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,15 +89,12 @@ void Foam::yPlusRAS::calcIncompressibleYPlus
             scalar maxYp = gMax(Yp);
             scalar avgYp = gAverage(Yp);
 
-            if (log_)
+            if (Pstream::master())
             {
-                Info<< "    patch " << nutPw.patch().name()
+                Info(log_)<< "    patch " << nutPw.patch().name()
                     << " y+ : min = " << minYp << ", max = " << maxYp
                     << ", average = " << avgYp << nl;
-            }
 
-            if (Pstream::master())
-            {
                 file() << obr_.time().value()
                     << token::TAB << nutPw.patch().name()
                     << token::TAB << minYp
@@ -149,15 +146,12 @@ void Foam::yPlusRAS::calcCompressibleYPlus
             scalar maxYp = gMax(Yp);
             scalar avgYp = gAverage(Yp);
 
-            if (log_)
+            if (Pstream::master())
             {
-                Info<< "    patch " << mutPw.patch().name()
+                Info(log_)<< "    patch " << mutPw.patch().name()
                     << " y+ : min = " << minYp << ", max = " << maxYp
                     << ", average = " << avgYp << nl;
-            }
 
-            if (Pstream::master())
-            {
                 file() << obr_.time().value()
                     << token::TAB << mutPw.patch().name()
                     << token::TAB << minYp
@@ -271,10 +265,7 @@ void Foam::yPlusRAS::execute()
                 mesh.lookupObject<volScalarField>(type())
             );
 
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl;
-        }
+        Info(log_)<< type() << " " << name_ << " output:" << nl;
 
         if (phi.dimensions() == dimMass/dimTime)
         {
@@ -290,7 +281,10 @@ void Foam::yPlusRAS::execute()
 
 void Foam::yPlusRAS::end()
 {
-    // Do nothing
+    if (active_)
+    {
+        execute();
+    }
 }
 
 
@@ -309,10 +303,7 @@ void Foam::yPlusRAS::write()
         const volScalarField& yPlusRAS =
             obr_.lookupObject<volScalarField>(type());
 
-        if (log_)
-        {
-            Info<< "    writing field " << yPlusRAS.name() << nl << endl;
-        }
+        Info(log_)<< "    writing field " << yPlusRAS.name() << nl << endl;
 
         yPlusRAS.write();
     }
-- 
GitLab