diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C
index 49f36d330909cf95fd2521e40406badeb19d23cc..2b2cd7c4fdbe21cc37115da1b050dffceaa40ded 100644
--- a/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C
+++ b/applications/solvers/combustion/PDRFoam/PDRModels/dragModels/PDRDragModel/PDRDragModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,7 +79,7 @@ Foam::PDRDragModel::~PDRDragModel()
 
 bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
 {
-    PDRDragModelCoeffs_ = PDRProperties.subDict(type() + "Coeffs");
+    PDRDragModelCoeffs_ = PDRProperties.optionalSubDict(type() + "Coeffs");
 
     PDRDragModelCoeffs_.lookup("drag") >> on_;
 
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C
index a6301ba973df780bc466067c908b3afa9c3f0032..7e3b2536b13cd15b3896408c46d0144d4a959bc0 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/XiEqModel/XiEqModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,7 @@ Foam::XiEqModel::~XiEqModel()
 
 bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
 {
-    XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
+    XiEqModelCoeffs_ = XiEqProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C
index 12bd7130602fd673a3cae2e8d7e1685f896cf741..217242b24be5e2aeb2e8b6184753107dccc59bb9 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiGModels/XiGModel/XiGModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,7 @@ Foam::XiGModel::~XiGModel()
 
 bool Foam::XiGModel::read(const dictionary& XiGProperties)
 {
-    XiGModelCoeffs_ = XiGProperties.subDict(type() + "Coeffs");
+    XiGModelCoeffs_ = XiGProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C
index 0bb0cd1e0b5b1b6f2a9fc6209549e5809cd79b60..95807289056c353d53fe7115b1079c94f0cb3459 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiModel/XiModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -85,7 +85,7 @@ Foam::XiModel::~XiModel()
 
 bool Foam::XiModel::read(const dictionary& XiProperties)
 {
-    XiModelCoeffs_ = XiProperties.subDict(type() + "Coeffs");
+    XiModelCoeffs_ = XiProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
index 947c62132e90947dc860013148e258891ac7ea8e..afdebbd2c6493b6de861bec6744533860188cd96 100644
--- a/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
+++ b/applications/solvers/combustion/PDRFoam/laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,7 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
                   dict.lookup("fuelFile")
               )
           )()
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     LFL_(readScalar(coeffsDict_.lookup("lowerFlamabilityLimit"))),
     UFL_(readScalar(coeffsDict_.lookup("upperFlamabilityLimit"))),
diff --git a/applications/solvers/combustion/fireFoam/YEEqn.H b/applications/solvers/combustion/fireFoam/YEEqn.H
index d400bf36bb242b8ca66961ab40060384caa187c9..5176956acc9503ec85f7f161ee7014a74e50669e 100644
--- a/applications/solvers/combustion/fireFoam/YEEqn.H
+++ b/applications/solvers/combustion/fireFoam/YEEqn.H
@@ -68,7 +68,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         Qdot
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + parcels.Sh(he)
       + surfaceFilm.Sh()
       + fvOptions(rho, he)
diff --git a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
index 73ecafd89f86ab9b8190823e5b29a0c7ae471878..5aab5362390ad6292ee1d9ff2caa4fabf5920ba2 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
@@ -10,10 +10,8 @@ if (pimple.nCorrPISO() <= 1)
 surfaceScalarField phiHbyA
 (
     "phiHbyA",
-    (
-        fvc::flux(rho*HbyA)
-      + rhorAUf*fvc::ddtCorr(rho, U, phi)
-    )
+    fvc::flux(rho*HbyA)
+  + rhorAUf*fvc::ddtCorr(rho, U, phi)
 );
 
 MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H
index ddd21254a9d7cddc28394c8f740a02730af47db5..f0a7e3ad365a9e8649dc95756df7d6a223ad6633 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/EEqn.H
@@ -18,7 +18,7 @@
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         rho*(U&g)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H
index b9782d3f738e2a2d6c96531d4e0236de1dca9371..e932d2fdefcd5699bc12962bfbb05bf49b8dddba 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/EEqn.H
@@ -12,7 +12,7 @@
       - fvm::laplacian(turbulence->alphaEff(), he)
      ==
         rho*(U&g)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H
index b61847886081fd140ae6ab347cf7ab6a2714a8b4..daf3af8f2db83b177bc90ae01cf9be4d8e7187ee 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/EEqn.H
@@ -12,7 +12,7 @@
       - fvm::laplacian(turb.alphaEff(), he)
      ==
         rho*(U&g)
-      + rad.Sh(thermo)
+      + rad.Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H
index eafea3fd4c8a189d8df7c206437065cd698c2856..d8f4516f5e26ab8fbd4108c451f8702655c11141 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/EEqn.H
@@ -18,7 +18,7 @@
       - fvm::laplacian(turb.alphaEff(), he)
      ==
         rho*(U&g)
-      + rad.Sh(thermo)
+      + rad.Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/heatTransfer/thermoFoam/EEqn.H b/applications/solvers/heatTransfer/thermoFoam/EEqn.H
index 51232bf0bec20f7dfead229401a45bc5ca2ec706..98a248ac35ae47bada3bbca30859ae9dfbeb616f 100644
--- a/applications/solvers/heatTransfer/thermoFoam/EEqn.H
+++ b/applications/solvers/heatTransfer/thermoFoam/EEqn.H
@@ -17,7 +17,7 @@
         )
       - fvm::laplacian(alphaEff, he)
      ==
-        radiation->Sh(thermo)
+        radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
index 241ae11c3d9bec77b8dca07ea86e46252e3e3dfd..3c0f7b99e2631988a9a1c73a7dad1fb93efb2007 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,7 +70,6 @@ int main(int argc, char *argv[])
     {
         #include "readControls.H"
         #include "CourantNo.H"
-
         #include "setDeltaT.H"
 
         runTime++;
diff --git a/applications/solvers/lagrangian/DPMFoam/Allwclean b/applications/solvers/lagrangian/DPMFoam/Allwclean
index f953f59874023350202867bd0c2c2a9a2bd89be2..b78c67f6611505b485b092058d76e54dfa05e735 100755
--- a/applications/solvers/lagrangian/DPMFoam/Allwclean
+++ b/applications/solvers/lagrangian/DPMFoam/Allwclean
@@ -2,7 +2,10 @@
 cd ${0%/*} || exit 1    # Run from this directory
 
 wclean libso DPMTurbulenceModels
+
 wclean
 wclean MPPICFoam
+wclean DPMDyMFoam
+wclean DPMDyMFoam/MPPICDyMFoam
 
 #------------------------------------------------------------------------------
diff --git a/applications/solvers/lagrangian/DPMFoam/Allwmake b/applications/solvers/lagrangian/DPMFoam/Allwmake
index 2af858f6bb9bc21b7e27284ac72bda06fce8898d..e3c5370297acb017e4eaeeb03313a8bea6084cfa 100755
--- a/applications/solvers/lagrangian/DPMFoam/Allwmake
+++ b/applications/solvers/lagrangian/DPMFoam/Allwmake
@@ -1,5 +1,5 @@
 #!/bin/sh
-cd ${0%/*} || exit 1
+cd ${0%/*} || exit 1    # Run from this directory
 
 # Parse arguments for library compilation
 . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
@@ -8,5 +8,7 @@ wmake $targetType DPMTurbulenceModels
 
 wmake $targetType
 wmake $targetType MPPICFoam
+wmake $targetType DPMDyMFoam
+wmake $targetType DPMDyMFoam/MPPICDyMFoam
 
 #------------------------------------------------------------------------------
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/DPMDyMFoam.C b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/DPMDyMFoam.C
new file mode 100644
index 0000000000000000000000000000000000000000..aec4c643045d6b8303571eeee84531d17622b1d0
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/DPMDyMFoam.C
@@ -0,0 +1,163 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+Application
+    DPMDyMFoam
+
+Description
+    Transient solver for the coupled transport of a single kinematic particle
+    cloud including the effect of the volume fraction of particles on the
+    continuous phase, with optional mesh motion and mesh topology changes.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "dynamicFvMesh.H"
+#include "singlePhaseTransportModel.H"
+#include "PhaseIncompressibleTurbulenceModel.H"
+#include "pimpleControl.H"
+#include "CorrectPhi.H"
+
+#ifdef MPPIC
+    #include "basicKinematicMPPICCloud.H"
+    #define basicKinematicTypeCloud basicKinematicMPPICCloud
+#else
+    #include "basicKinematicCollidingCloud.H"
+    #define basicKinematicTypeCloud basicKinematicCollidingCloud
+#endif
+
+int main(int argc, char *argv[])
+{
+    argList::addOption
+    (
+        "cloudName",
+        "name",
+        "specify alternative cloud name. default is 'kinematicCloud'"
+    );
+
+    #include "postProcess.H"
+
+    #include "setRootCase.H"
+    #include "createTime.H"
+    #include "createDynamicFvMesh.H"
+    #include "createControls.H"
+    #include "createFields.H"
+    #include "createUcf.H"
+    #include "initContinuityErrs.H"
+
+    Info<< "\nStarting time loop\n" << endl;
+
+    while (runTime.run())
+    {
+        #include "readControls.H"
+        #include "CourantNo.H"
+        #include "setDeltaT.H"
+
+        runTime++;
+
+        Info<< "Time = " << runTime.timeName() << nl << endl;
+
+        mesh.update();
+
+        // Calculate absolute flux from the mapped surface velocity
+        phic = mesh.Sf() & Ucf;
+
+        if (mesh.changing() && correctPhi)
+        {
+            #include "correctPhic.H"
+        }
+
+        // Make the flux relative to the mesh motion
+        fvc::makeRelative(phic, Uc);
+
+        if (mesh.changing() && checkMeshCourantNo)
+        {
+            #include "meshCourantNo.H"
+        }
+
+        continuousPhaseTransport.correct();
+        muc = rhoc*continuousPhaseTransport.nu();
+
+        Info<< "Evolving " << kinematicCloud.name() << endl;
+        kinematicCloud.evolve();
+
+        // Update continuous phase volume fraction field
+        alphac = max(1.0 - kinematicCloud.theta(), alphacMin);
+        alphac.correctBoundaryConditions();
+        alphacf = fvc::interpolate(alphac);
+        alphaPhic = alphacf*phic;
+
+        fvVectorMatrix cloudSU(kinematicCloud.SU(Uc));
+        volVectorField cloudVolSUSu
+        (
+            IOobject
+            (
+                "cloudVolSUSu",
+                runTime.timeName(),
+                mesh
+            ),
+            mesh,
+            dimensionedVector
+            (
+                "0",
+                cloudSU.dimensions()/dimVolume,
+                Zero
+            ),
+            zeroGradientFvPatchVectorField::typeName
+        );
+
+        cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
+        cloudVolSUSu.correctBoundaryConditions();
+        cloudSU.source() = Zero;
+
+        // --- Pressure-velocity PIMPLE corrector loop
+        while (pimple.loop())
+        {
+            #include "UcEqn.H"
+
+            // --- PISO loop
+            while (pimple.correct())
+            {
+                #include "pEqn.H"
+            }
+
+            if (pimple.turbCorr())
+            {
+                continuousPhaseTurbulence->correct();
+            }
+        }
+
+        runTime.write();
+
+        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
+            << nl << endl;
+    }
+
+    Info<< "End\n" << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C
new file mode 100644
index 0000000000000000000000000000000000000000..ba5dc1bc8526239dfbcf8c57f62f42b9a95e7bed
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/MPPICDyMFoam.C
@@ -0,0 +1,41 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+Application
+    MPPICDyMFoam
+
+Description
+    Transient solver for the coupled transport of a single kinematic particle
+    cloud including the effect of the volume fraction of particles on the
+    continuous phase. Multi-Phase Particle In Cell (MPPIC) modeling is used to
+    represent collisions without resolving particle-particle interactions,
+    with optional mesh motion and mesh topology changes.
+
+\*---------------------------------------------------------------------------*/
+
+#define MPPIC
+
+#include "DPMDyMFoam.C"
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/files b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..d25393d1ff0a46a0ee21f07455b6c9af34131864
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/files
@@ -0,0 +1,3 @@
+MPPICDyMFoam.C
+
+EXE = $(FOAM_APPBIN)/MPPICDyMFoam
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..8b16d20d0611dc78af3e806394db524628c0f493
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
@@ -0,0 +1,42 @@
+EXE_INC = \
+    -I.. \
+    -I../.. \
+    -I../DPMTurbulenceModels/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
+    -I$(LIB_SRC)/transportModels \
+    -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
+    -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
+    -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
+    -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume \
+    -lfvOptions \
+    -lmeshTools \
+    -llagrangian \
+    -llagrangianIntermediate \
+    -llagrangianTurbulence \
+    -lspecie \
+    -lradiationModels \
+    -lincompressibleTransportModels \
+    -lturbulenceModels \
+    -lincompressibleTurbulenceModels \
+    -lDPMTurbulenceModels \
+    -lregionModels \
+    -lsurfaceFilmModels \
+    -lsampling \
+    -ldynamicFvMesh \
+    -ltopoChangerFvMesh \
+    -ldynamicMesh
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/files b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..c3354998ef91b60a96b9cbb3517843fb004316fb
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/files
@@ -0,0 +1,3 @@
+DPMDyMFoam.C
+
+EXE = $(FOAM_APPBIN)/DPMDyMFoam
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..a4c0fcc139cffdbf6e35a46ac67b6090531f2e72
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
@@ -0,0 +1,41 @@
+EXE_INC = \
+    -I.. \
+    -I../DPMTurbulenceModels/lnInclude \
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
+    -I$(LIB_SRC)/transportModels \
+    -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
+    -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
+    -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude
+
+EXE_LIBS = \
+    -llagrangian \
+    -llagrangianIntermediate \
+    -llagrangianTurbulence \
+    -lspecie \
+    -lradiationModels \
+    -lincompressibleTransportModels \
+    -lturbulenceModels \
+    -lincompressibleTurbulenceModels \
+    -lDPMTurbulenceModels \
+    -lregionModels \
+    -lsurfaceFilmModels \
+    -lsampling \
+    -lfiniteVolume \
+    -lfvOptions \
+    -lmeshTools \
+    -ldynamicFvMesh \
+    -ltopoChangerFvMesh \
+    -ldynamicMesh
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/correctPhic.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/correctPhic.H
new file mode 100644
index 0000000000000000000000000000000000000000..46ef721fa2217b2e58bd30568ea6e8cf5d1988bb
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/correctPhic.H
@@ -0,0 +1,11 @@
+CorrectPhi
+(
+    Uc,
+    phic,
+    p,
+    dimensionedScalar("rAUf", dimTime, 1),
+    geometricZeroField(),
+    pimple
+);
+
+#include "continuityErrs.H"
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createControls.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createControls.H
new file mode 100644
index 0000000000000000000000000000000000000000..bee8bd4f39ebd2444f37099dc020828c6cc756fc
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createControls.H
@@ -0,0 +1,12 @@
+#include "createControl.H"
+#include "createTimeControls.H"
+
+bool correctPhi
+(
+    pimple.dict().lookupOrDefault("correctPhi", false)
+);
+
+bool checkMeshCourantNo
+(
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
+);
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createUcf.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createUcf.H
new file mode 100644
index 0000000000000000000000000000000000000000..bdd9898b69a3c84d4f06cccf6352e12ab7efbd71
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/createUcf.H
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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/>.
+
+Global
+    createUcf
+
+Description
+    Creates and initialises the velocity velocity field Ucf.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Info<< "Reading/calculating continuous phase face velocity Ucf\n" << endl;
+
+surfaceVectorField Ucf
+(
+    IOobject
+    (
+        "Ucf",
+        runTime.timeName(),
+        mesh,
+        IOobject::READ_IF_PRESENT,
+        IOobject::AUTO_WRITE
+    ),
+    fvc::interpolate(Uc)
+);
+
+// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..2f7b843d2549d59bd5a64b4106ff28acdc03e9bb
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/pEqn.H
@@ -0,0 +1,62 @@
+{
+    volVectorField HbyA("HbyA", Uc);
+    HbyA = rAUc*UcEqn.H();
+
+    surfaceScalarField phiHbyA
+    (
+        "phiHbyA",
+        (
+           fvc::flux(HbyA)
+         + alphacf*rAUcf*fvc::ddtCorr(Uc, Ucf)
+         + phicForces
+        )
+    );
+
+    if (p.needReference())
+    {
+        fvc::makeRelative(phiHbyA, Uc);
+        adjustPhi(phiHbyA, Uc, p);
+        fvc::makeAbsolute(phiHbyA, Uc);
+    }
+
+    // Update the pressure BCs to ensure flux consistency
+    constrainPressure(p, Uc, phiHbyA, rAUcf);
+
+    // Non-orthogonal pressure corrector loop
+    while (pimple.correctNonOrthogonal())
+    {
+        fvScalarMatrix pEqn
+        (
+            fvm::laplacian(alphacf*rAUcf, p)
+         ==
+            fvc::ddt(alphac) + fvc::div(alphacf*phiHbyA)
+        );
+
+        pEqn.setReference(pRefCell, pRefValue);
+
+        pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+        if (pimple.finalNonOrthogonalIter())
+        {
+            phic = phiHbyA - pEqn.flux()/alphacf;
+
+            p.relax();
+
+            Uc = HbyA
+               + rAUc
+                *fvc::reconstruct((phicForces - pEqn.flux()/alphacf)/rAUcf);
+            Uc.correctBoundaryConditions();
+
+            {
+                Ucf = fvc::interpolate(Uc);
+                surfaceVectorField n(mesh.Sf()/mesh.magSf());
+                Ucf += n*(phic/mesh.magSf() - (n & Ucf));
+            }
+
+            // Make the fluxes relative to the mesh motion
+            fvc::makeRelative(phic, Uc);
+        }
+    }
+}
+
+#include "continuityErrs.H"
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/readControls.H b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/readControls.H
new file mode 100644
index 0000000000000000000000000000000000000000..9f982e260b0c9e61062f7aff3e21048f3bcfd9e9
--- /dev/null
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/readControls.H
@@ -0,0 +1,5 @@
+#include "readTimeControls.H"
+
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
+
+checkMeshCourantNo = pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
index 1a1f014da05c2875451087c225c4831fe55cd417..6f1ad9041be7b2f2189f19ead351d9ba948dd7b9 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/EEqn.H
@@ -21,7 +21,7 @@
       + Qdot
       + coalParcels.Sh(he)
       + limestoneParcels.Sh(he)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
index 325009f067d7034723ae2e12cbcdb922456149b2..4d112da030fc2582f9cf4a871acf1ad7708d83ed 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
@@ -20,7 +20,7 @@
         rho*(U&g)
       + parcels.Sh(he)
       + surfaceFilm.Sh()
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
     );
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
index 2ba1ef693fd66a2a87b25ae7ecd2c98165309a46..42185b8afb2332149626b786066ff9d4cf01c716 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
@@ -19,7 +19,7 @@
      ==
         rho*(U&g)
       + parcels.Sh(he)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
     );
@@ -35,6 +35,6 @@
     thermo.correct();
     radiation->correct();
 
-    Info<< "T gas min/max   = " << min(T).value() << ", "
+    Info<< "T gas min/max   " << min(T).value() << ", "
         << max(T).value() << endl;
 }
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
index 9bc12544287c593fcbf79b0126cf5415a50d0e17..c8baf6beab60d9092c5eaec99533556a4484cca5 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/EEqn.H
@@ -13,7 +13,7 @@
      ==
         rho*(U&g)
       + parcels.Sh(he)
-      + radiation->Sh(thermo)
+      + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
     );
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Allwclean b/applications/solvers/multiphase/compressibleInterFoam/Allwclean
index deb5e2378ba964821faf55e012c1ea79efafeb16..71bff64a720d8dad7966d6f5c0a950e306afd85c 100755
--- a/applications/solvers/multiphase/compressibleInterFoam/Allwclean
+++ b/applications/solvers/multiphase/compressibleInterFoam/Allwclean
@@ -2,6 +2,7 @@
 cd ${0%/*} || exit 1    # Run from this directory
 
 wclean libso twoPhaseMixtureThermo
+wclean libso surfaceTensionModels
 wclean
 wclean compressibleInterDyMFoam
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Allwmake b/applications/solvers/multiphase/compressibleInterFoam/Allwmake
index 20da00c472977322985e8067f4a32b45ea37d735..29bafc3a616ce699e97f28278add05166ad997e1 100755
--- a/applications/solvers/multiphase/compressibleInterFoam/Allwmake
+++ b/applications/solvers/multiphase/compressibleInterFoam/Allwmake
@@ -5,6 +5,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
 
 wmake $targetType twoPhaseMixtureThermo
+wmake $targetType surfaceTensionModels
 
 wmake $targetType
 wmake $targetType compressibleInterDyMFoam
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index b947836f65eda540a6d54e4770c67f263be75458..29b12f3114097bdc6a5051da6c79f091bd1c2504 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -13,6 +13,7 @@ EXE_INC = \
 
 EXE_LIBS = \
     -ltwoPhaseMixtureThermo \
+    -ltwoPhaseSurfaceTension \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index b44af44a7231a401a9421a4c641e382e69b5bec7..4de8fd2713cc8f52111c21c78782cf9bd60b68b4 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -16,6 +16,7 @@ EXE_INC = \
 
 EXE_LIBS = \
     -ltwoPhaseMixtureThermo \
+    -ltwoPhaseSurfaceTension \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/files b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..fa34a838247fdba4426893587e08ca5ed788d755
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/files
@@ -0,0 +1,3 @@
+liquidProperties/liquidPropertiesSurfaceTension.C
+
+LIB = $(FOAM_LIBBIN)/libtwoPhaseSurfaceTension
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/options b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..0d8cc30e2d52ef0d81c7e0365da30c786ce8b076
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/Make/options
@@ -0,0 +1,15 @@
+EXE_INC = \
+    -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+LIB_LIBS = \
+    -linterfaceProperties \
+    -lcompressibleTransportModels \
+    -lfluidThermophysicalModels \
+    -lspecie \
+    -lthermophysicalProperties \
+    -lfiniteVolume
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
new file mode 100644
index 0000000000000000000000000000000000000000..71e10898023f6bf6e8c3129825cd8f2ee56bdcf3
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
@@ -0,0 +1,155 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "liquidPropertiesSurfaceTension.H"
+#include "liquidThermo.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceTensionModels
+{
+    defineTypeNameAndDebug(liquidProperties, 0);
+    addToRunTimeSelectionTable
+    (
+        surfaceTensionModel,
+        liquidProperties,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::liquidProperties::liquidProperties
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    surfaceTensionModel(mesh),
+    phaseName_(dict.lookup("phase"))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::liquidProperties::~liquidProperties()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::surfaceTensionModels::liquidProperties::sigma() const
+{
+    const heRhoThermopureMixtureliquidProperties& thermo =
+        mesh_.lookupObject<heRhoThermopureMixtureliquidProperties>
+        (
+             IOobject::groupName(basicThermo::dictName, phaseName_)
+        );
+
+    const Foam::liquidProperties& liquid = thermo.mixture().properties();
+
+    tmp<volScalarField> tsigma
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "sigma",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            mesh_,
+            dimSigma
+        )
+    );
+    volScalarField& sigma = tsigma.ref();
+
+    const volScalarField& T = thermo.T();
+    const volScalarField& p = thermo.p();
+
+    volScalarField::Internal& sigmai = sigma;
+    const volScalarField::Internal& pi = p;
+    const volScalarField::Internal& Ti = T;
+
+    forAll(sigmai, celli)
+    {
+        sigmai[celli] = liquid.sigma(pi[celli], Ti[celli]);
+    }
+
+    volScalarField::Boundary& sigmaBf = sigma.boundaryFieldRef();
+    const volScalarField::Boundary& pBf = p.boundaryField();
+    const volScalarField::Boundary& TBf = T.boundaryField();
+
+    forAll(sigmaBf, patchi)
+    {
+        scalarField& sigmaPf = sigmaBf[patchi];
+        const scalarField& pPf = pBf[patchi];
+        const scalarField& TPf = TBf[patchi];
+
+        forAll(sigmaPf, facei)
+        {
+            sigmaPf[facei] = liquid.sigma(pPf[facei], TPf[facei]);
+        }
+    }
+
+    return tsigma;
+}
+
+
+bool Foam::surfaceTensionModels::liquidProperties::read
+(
+    const dictionary& dict
+)
+{
+    return true;
+}
+
+
+bool Foam::surfaceTensionModels::liquidProperties::writeData
+(
+    Ostream& os
+) const
+{
+    if (surfaceTensionModel::writeData(os))
+    {
+        return os.good();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
new file mode 100644
index 0000000000000000000000000000000000000000..b209dfc9d6e34ef2a1163e04637ddf859102b901
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.H
@@ -0,0 +1,123 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModels::liquidProperties
+
+Description
+    Temperature-dependent surface tension model in which the surface tension
+    function provided by the phase Foam::liquidProperties class is used.
+
+Usage
+    \table
+        Property     | Description               | Required    | Default value
+        phase        | Phase name                | yes         |
+    \endtable
+
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type    liquidProperties;
+            phase   water;
+        }
+    \endverbatim
+
+See also
+    Foam::surfaceTensionModel
+
+SourceFiles
+    liquidPropertiesSurfaceTension.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef liquidPropertiesSurfaceTension_H
+#define liquidPropertiesSurfaceTension_H
+
+#include "surfaceTensionModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+namespace surfaceTensionModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class liquidProperties Declaration
+\*---------------------------------------------------------------------------*/
+
+class liquidProperties
+:
+    public surfaceTensionModel
+{
+    // Private data
+
+        //- Name of the liquid phase
+        word phaseName_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("liquidProperties");
+
+
+    // Constructors
+
+        //- Construct from dictionary and mesh
+        liquidProperties
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    //- Destructor
+    virtual ~liquidProperties();
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict);
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceTensionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
index cfad51748287f85dc602e2feaa41ed4aff79ff87..6274ad1c31a04a30f57b09db22f68b24a686039d 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C
@@ -360,4 +360,17 @@ Foam::tmp<Foam::scalarField> Foam::twoPhaseMixtureThermo::alphaEff
 }
 
 
+bool Foam::twoPhaseMixtureThermo::read()
+{
+    if (psiThermo::read())
+    {
+        return interfaceProperties::read();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
index 82b0ac90a2d83e2504f90e755303f4ee35ac5da3..aefdbdee4fbc2f06a74ce37d95a8b9fbb0877bc5 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.H
@@ -285,6 +285,12 @@ public:
                 const scalarField& alphat,
                 const label patchi
             ) const;
+
+
+    // IO
+
+        //- Read base transportProperties dictionary
+        virtual bool read();
 };
 
 
diff --git a/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C b/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C
index 5eb7e0f9cecb480718be3705b98b01aac180eb38..c096513474ab780f4a59e6dabf296c4ce4d65f5d 100644
--- a/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C
+++ b/applications/solvers/multiphase/driftFluxFoam/mixtureViscosityModels/plastic/plastic.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::mixtureViscosityModels::plastic::plastic
 )
 :
     mixtureViscosityModel(name, viscosityProperties, U, phi),
-    plasticCoeffs_(viscosityProperties.subDict(modelName + "Coeffs")),
+    plasticCoeffs_(viscosityProperties.optionalSubDict(modelName + "Coeffs")),
     plasticViscosityCoeff_
     (
         "coeff",
@@ -117,7 +117,7 @@ bool Foam::mixtureViscosityModels::plastic::read
 {
     mixtureViscosityModel::read(viscosityProperties);
 
-    plasticCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    plasticCoeffs_ = viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     plasticCoeffs_.lookup("k") >> plasticViscosityCoeff_;
     plasticCoeffs_.lookup("n") >> plasticViscosityExponent_;
diff --git a/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C b/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
index b6e7fbae004aae0ab796408d9ec34b4e739eab8e..103ad496b7017f5bfd9d1ed6dffe9b5e2d5aeace 100644
--- a/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
+++ b/applications/solvers/multiphase/driftFluxFoam/relativeVelocityModels/relativeVelocityModel/relativeVelocityModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -126,7 +126,7 @@ Foam::autoPtr<Foam::relativeVelocityModel> Foam::relativeVelocityModel::New
         (
             cstrIter()
             (
-                dict.subDict(modelType + "Coeffs"),
+                dict.optionalSubDict(modelType + "Coeffs"),
                 mixture
             )
         );
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
index 5b152b78a7ae8a5be1fc4edaf89d9a498f86efea..5d8a42388a55b8ead29cef71f85d6f11c50ca790 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
@@ -40,7 +40,7 @@ const dimensionedScalar& rho1 = mixture.rho1();
 const dimensionedScalar& rho2 = mixture.rho2();
 const dimensionedScalar& rho3 = mixture.rho3();
 
-dimensionedScalar D23(mixture.lookup("D23"));
+dimensionedScalar D23("D23", dimViscosity, mixture);
 
 // Need to store rho for ddt(rho, U)
 volScalarField rho
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
index dce55234e7bf1fe586134fc9235eeca909738fc6..644c3b25a0b13bc18d7fd3c5a6ac882981cb38e8 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -168,8 +168,8 @@ Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
             ).lookup("cAlpha")
         )
     ),
-    sigma12_(mixture.lookup("sigma12")),
-    sigma13_(mixture.lookup("sigma13")),
+    sigma12_("sigma12", dimensionSet(1, 0, -2, 0, 0), mixture),
+    sigma13_("sigma13", dimensionSet(1, 0, -2, 0, 0), mixture),
 
     deltaN_
     (
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
index a4663ba488753b848fe1e089ae5fb0d38ce838e4..32d3fe43086792e76b29cb27291de519d8ef4d35 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,10 +47,10 @@ Foam::phaseChangeTwoPhaseMixtures::Kunz::Kunz
 :
     phaseChangeTwoPhaseMixture(typeName, U, phi),
 
-    UInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf")),
-    tInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf")),
-    Cc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cc")),
-    Cv_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cv")),
+    UInf_("UInf", dimVelocity, phaseChangeTwoPhaseMixtureCoeffs_),
+    tInf_("tInf", dimTime, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cc_("Cc", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cv_("Cv", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
 
     p0_("0", pSat().dimensions(), 0.0),
 
@@ -102,7 +102,7 @@ bool Foam::phaseChangeTwoPhaseMixtures::Kunz::read()
 {
     if (phaseChangeTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf") >> UInf_;
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf") >> tInf_;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
index cfe6b1b0083a4cffbb9bcb674918c3d99275b3dd..ade26e86a41c43a3eceef506a8a8302b3f461db9 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,10 +47,10 @@ Foam::phaseChangeTwoPhaseMixtures::Merkle::Merkle
 :
     phaseChangeTwoPhaseMixture(typeName, U, phi),
 
-    UInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf")),
-    tInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf")),
-    Cc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cc")),
-    Cv_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cv")),
+    UInf_("UInf", dimVelocity, phaseChangeTwoPhaseMixtureCoeffs_),
+    tInf_("tInf", dimTime, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cc_("Cc", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cv_("Cv", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
 
     p0_("0", pSat().dimensions(), 0.0),
 
@@ -97,7 +97,7 @@ bool Foam::phaseChangeTwoPhaseMixtures::Merkle::read()
 {
     if (phaseChangeTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf") >> UInf_;
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf") >> tInf_;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
index 3be86e0f518b15cc6754fb3e5046c30be946a3b6..07fe4a233180865ec9a0f4f9e5cc7d80c0a70a19 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,10 +54,10 @@ Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::SchnerrSauer
 :
     phaseChangeTwoPhaseMixture(typeName, U, phi),
 
-    n_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("n")),
-    dNuc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("dNuc")),
-    Cc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cc")),
-    Cv_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cv")),
+    n_("n", dimless/dimVolume, phaseChangeTwoPhaseMixtureCoeffs_),
+    dNuc_("dNuc", dimLength, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cc_("Cc", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
+    Cv_("Cv", dimless, phaseChangeTwoPhaseMixtureCoeffs_),
 
     p0_("0", pSat().dimensions(), 0.0)
 {
@@ -151,7 +151,7 @@ bool Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::read()
 {
     if (phaseChangeTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("n") >> n_;
         phaseChangeTwoPhaseMixtureCoeffs_.lookup("dNuc") >> dNuc_;
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C
index b9a5e69bf8cfe13ad3e2664d2edebf52af285ca2..c4fe701a2f779dcf37079b000e3db9e46c94421e 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,7 +43,7 @@ Foam::phaseChangeTwoPhaseMixture::phaseChangeTwoPhaseMixture
 )
 :
     incompressibleTwoPhaseMixture(U, phi),
-    phaseChangeTwoPhaseMixtureCoeffs_(subDict(type + "Coeffs")),
+    phaseChangeTwoPhaseMixtureCoeffs_(optionalSubDict(type + "Coeffs")),
     pSat_("pSat", dimPressure, lookup("pSat"))
 {}
 
@@ -77,7 +77,7 @@ bool Foam::phaseChangeTwoPhaseMixture::read()
 {
     if (incompressibleTwoPhaseMixture::read())
     {
-        phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs");
+        phaseChangeTwoPhaseMixtureCoeffs_ = optionalSubDict(type() + "Coeffs");
         lookup("pSat") >> pSat_;
 
         return true;
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
index b58f00291bb73ba28e5b93a1f6c2331621eb8945..ef872df0cc8cb149a20ec3e838d58dd654c8160c 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,11 @@ Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
            << exit(FatalError);
     }
 
-    return cstrIter()(dict.subDict(diameterModelType + "Coeffs"), phase);
+    return cstrIter()
+    (
+        dict.optionalSubDict(diameterModelType + "Coeffs"),
+        phase
+    );
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C
index a956565b4710a10ba4d594cc0e386a0ae7b2eb2f..d7eaa2f081528141b9df54ffe3fabdd158138113 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/diameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,7 +61,7 @@ void Foam::diameterModel::correct()
 
 bool Foam::diameterModel::read(const dictionary& phaseProperties)
 {
-    diameterProperties_ = phaseProperties.subDict(type() + "Coeffs");
+    diameterProperties_ = phaseProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
index b58f00291bb73ba28e5b93a1f6c2331621eb8945..ef872df0cc8cb149a20ec3e838d58dd654c8160c 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/diameterModels/diameterModel/newDiameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,11 @@ Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
            << exit(FatalError);
     }
 
-    return cstrIter()(dict.subDict(diameterModelType + "Coeffs"), phase);
+    return cstrIter()
+    (
+        dict.optionalSubDict(diameterModelType + "Coeffs"),
+        phase
+    );
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C
index f43303a2b7ecb5671e0fc962bc25e8d80a58e60b..712a96e1dedd3fdbbaf4f502b04611ffb83acbf9 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -253,6 +253,14 @@ makeReactionMixtureThermo
     constRefRhoConstHThermoPhysics
 );
 
+makeReactionMixtureThermo
+(
+    rhoThermo,
+    rhoReactionThermo,
+    heRhoThermo,
+    multiComponentMixture,
+    constRefFluidHThermoPhysics
+);
 
 makeReactionMixtureThermo
 (
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
index 3dfc5e971b714f5634fb16b5c156699be8bb1005..034da573494e1d166c261b4f3a2d5e4d424fe8fa 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.C
@@ -86,7 +86,8 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     relax_(0.5),
     AbyV_(p.size(), 0),
     alphatConv_(p.size(), 0),
-    dDep_(p.size(), 0),
+    dDep_(p.size(), 1e-5),
+    qq_(p.size(), 0),
     partitioningModel_(nullptr),
     nucleationSiteModel_(nullptr),
     departureDiamModel_(nullptr),
@@ -114,7 +115,8 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     relax_(dict.lookupOrDefault<scalar>("relax", 0.5)),
     AbyV_(p.size(), 0),
     alphatConv_(p.size(), 0),
-    dDep_(p.size(), 0),
+    dDep_(p.size(), 1e-5),
+    qq_(p.size(), 0),
     partitioningModel_(nullptr),
     nucleationSiteModel_(nullptr),
     departureDiamModel_(nullptr),
@@ -165,6 +167,11 @@ alphatWallBoilingWallFunctionFvPatchScalarField
                 dDep_ = scalarField("dDep", dict, p.size());
             }
 
+            if (dict.found("qQuenching"))
+            {
+                qq_ = scalarField("qQuenching", dict, p.size());
+            }
+
             break;
         }
     }
@@ -203,6 +210,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     AbyV_(psf.AbyV_),
     alphatConv_(psf.alphatConv_, mapper),
     dDep_(psf.dDep_, mapper),
+    qq_(psf.qq_, mapper),
     partitioningModel_(psf.partitioningModel_),
     nucleationSiteModel_(psf.nucleationSiteModel_),
     departureDiamModel_(psf.departureDiamModel_),
@@ -221,6 +229,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     AbyV_(psf.AbyV_),
     alphatConv_(psf.alphatConv_),
     dDep_(psf.dDep_),
+    qq_(psf.qq_),
     partitioningModel_(psf.partitioningModel_),
     nucleationSiteModel_(psf.nucleationSiteModel_),
     departureDiamModel_(psf.departureDiamModel_),
@@ -240,6 +249,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
     AbyV_(psf.AbyV_),
     alphatConv_(psf.alphatConv_),
     dDep_(psf.dDep_),
+    qq_(psf.qq_),
     partitioningModel_(psf.partitioningModel_),
     nucleationSiteModel_(psf.nucleationSiteModel_),
     departureDiamModel_(psf.departureDiamModel_),
@@ -436,14 +446,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
 
                 const scalarField Tplus(Prt_*(log(E_*yPlus)/kappa_ + P));
                 scalarField Tl(Tw - (Tplus_y250/Tplus)*(Tw - Tc));
-                Tl = max(Tc - 40, min(Tc, Tl));
-                const scalarField Tsub(max(Tsatw - Tl, scalar(0)));
-
-                // Wall heat flux partitioning
-                const scalarField fLiquid
-                (
-                    partitioningModel_->fLiquid(liquidw)
-                );
+                Tl = max(Tc - 40, Tl);
 
                 // Nucleation site density:
                 const scalarField N
@@ -453,7 +456,9 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                         liquid,
                         vapor,
                         patchi,
-                        Tsatw
+                        Tl,
+                        Tsatw,
+                        L
                     )
                 );
 
@@ -463,7 +468,9 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                     liquid,
                     vapor,
                     patchi,
-                    Tsub
+                    Tl,
+                    Tsatw,
+                    L
                 );
 
                 // Bubble departure frequency:
@@ -481,19 +488,24 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 // Area fractions:
 
                 // Del Valle & Kenning (1985)
-                const scalarField Ja(rhoLiquidw*Cpw*Tsub/(rhoVaporw*L));
-                const scalarField Al(fLiquid*4.8*exp(-Ja/80));
+                const scalarField Ja
+                (
+                    rhoLiquidw*Cpw*(Tsatw - Tl)/(rhoVaporw*L)
+                );
+                const scalarField Al
+                (
+                    fLiquid*4.8*exp( min(-Ja/80,log(VGREAT)))
+                );
 
                 const scalarField A2(min(pi*sqr(dDep_)*N*Al/4, scalar(1)));
                 const scalarField A1(max(1 - A2, scalar(1e-4)));
                 const scalarField A2E(min(pi*sqr(dDep_)*N*Al/4, scalar(5)));
 
-                // Wall evaporation heat flux [kg/s3 = J/m2s]
-                const scalarField Qe((1.0/6.0)*A2E*dDep_*rhoVaporw*fDep*L);
-
                 // Volumetric mass source in the near wall cell due to the
                 // wall boiling
-                dmdt_ = (1 - relax_)*dmdt_ + relax_*Qe*AbyV_/L;
+                dmdt_ =
+                    (1 - relax_)*dmdt_
+                  + relax_*(1.0/6.0)*A2E*dDep_*rhoVaporw*fDep*AbyV_;
 
                 // Volumetric source in the near wall cell due to the wall
                 // boiling
@@ -506,7 +518,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 );
 
                 // Quenching heat flux
-                const scalarField Qq(A2*hQ*max(Tw - Tl, scalar(0)));
+                qq_ = (A2*hQ*max(Tw - Tl, scalar(0)));
 
                 // Effective thermal diffusivity that corresponds to the
                 // calculated convective, quenching and evaporative heat fluxes
@@ -515,7 +527,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                 (
                     (
                         A1*alphatConv_
-                      + (Qq + Qe)/max(hew.snGrad(), scalar(1e-16))
+                      + (qq_ + qe())/max(hew.snGrad(), scalar(1e-16))
                     )
                    /max(liquidw, scalar(1e-8))
                 );
@@ -538,12 +550,12 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
 
                 if (debug)
                 {
-                    const scalarField Qc
+                    const scalarField qc
                     (
                         fLiquid*A1*(alphatConv_ + alphaw)*hew.snGrad()
                     );
 
-                    const scalarField QEff
+                    const scalarField qEff
                     (
                         liquidw*(*this + alphaw)*hew.snGrad()
                     );
@@ -562,13 +574,13 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
                         << gMax(A2E) << endl;
                     Info<< "  dmdtW: " << gMin(dmdt_) << " - "
                         << gMax(dmdt_) << endl;
-                    Info<< "  Qc: " << gMin(Qc) << " - " << gMax(Qc) << endl;
-                    Info<< "  Qq: " << gMin(fLiquid*Qq) << " - "
-                        << gMax(fLiquid*Qq) << endl;
-                    Info<< "  Qe: " << gMin(fLiquid*Qe) << " - "
-                        << gMax(fLiquid*Qe) << endl;
-                    Info<< "  QEff: " << gMin(QEff) << " - "
-                        << gMax(QEff) << endl;
+                    Info<< "  qc: " << gMin(qc) << " - " << gMax(qc) << endl;
+                    Info<< "  qq: " << gMin(fLiquid*qq()) << " - "
+                        << gMax(fLiquid*qq()) << endl;
+                    Info<< "  qe: " << gMin(fLiquid*qe()) << " - "
+                        << gMax(fLiquid*qe()) << endl;
+                    Info<< "  qEff: " << gMin(qEff) << " - "
+                        << gMax(qEff) << endl;
                     Info<< "  alphat: " << gMin(*this) << " - "
                         << gMax(*this) << endl;
                     Info<< "  alphatConv: " << gMin(alphatConv_)
@@ -636,6 +648,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::write(Ostream& os) const
 
     dmdt_.writeEntry("dmdt", os);
     dDep_.writeEntry("dDep", os);
+    qq_.writeEntry("qQuenching", os);
     alphatConv_.writeEntry("alphatConv", os);
     writeEntry("value", os);
 }
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
index 701a3f911f577e5fa604815fec149472c75dd99d..665d41197ebf573be4e7599b3c9dbd07055e516b 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/alphatWallBoilingWallFunction/alphatWallBoilingWallFunctionFvPatchScalarField.H
@@ -181,6 +181,9 @@ private:
         //- Departure diameter field
         scalarField dDep_;
 
+        //- Quenching surface heat flux
+        scalarField qq_;
+
         //- Run-time selected heat flux partitioning model
         autoPtr<wallBoilingModels::partitioningModel>
             partitioningModel_;
@@ -275,6 +278,17 @@ public:
             return dDep_;
         }
 
+        //- Return the quenching surface heat flux [W/m2]
+        const scalarField& qq() const
+        {
+            return qq_;
+        }
+
+        //- Return the evaporation surface heat flux [W/m2]
+        tmp<scalarField> qe() const
+        {
+            return mDotL_/AbyV_;
+        }
 
         // Evaluation functions
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C
index ae6ecf46206799a1c260433dfbac301607521a48..53fe0e2f15bfd5295b91ef4260d28c78fee2e9e7 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,9 @@ KocamustafaogullariIshii::dDeparture
     const phaseModel& liquid,
     const phaseModel& vapor,
     const label patchi,
-    const scalarField& Tsub
+    const scalarField& Tl,
+    const scalarField& Tsatw,
+    const scalarField& L
 ) const
 {
     // Gravitational acceleration
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H
index 5bbe8d5433015eed05b835cb520b79d2b851d9cc..e7f0c6755535c1ef89b4f3de1394be90c2887066 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/KocamustafaogullariIshii/KocamustafaogullariIshii.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,7 +92,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const scalarField& Tsub
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const;
 
         virtual void write(Ostream& os) const;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C
index 23229071c0b8558713624736ebe57ce56366a613..71ef4f03c735815d34c261da4e2af756eea66c8a 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,10 @@ TolubinskiKostanchuk::TolubinskiKostanchuk
     const dictionary& dict
 )
 :
-    departureDiameterModel()
+    departureDiameterModel(),
+    dRef_(dict.lookupOrDefault<scalar>("dRef", 6e-4)),
+    dMax_(dict.lookupOrDefault<scalar>("dMax", 0.0014)),
+    dMin_(dict.lookupOrDefault<scalar>("dMin", 1e-6))
 {}
 
 
@@ -74,10 +77,22 @@ TolubinskiKostanchuk::dDeparture
     const phaseModel& liquid,
     const phaseModel& vapor,
     const label patchi,
-    const scalarField& Tsub
+    const scalarField& Tl,
+    const scalarField& Tsatw,
+    const scalarField& L
 ) const
 {
-    return max(min(0.0006*exp(-Tsub/45), scalar(0.0014)), scalar(1e-6));
+    return max(min(dRef_*exp(-(Tsatw-Tl)/45), dMax_), dMin_);
+}
+
+
+void Foam::wallBoilingModels::departureDiameterModels::
+TolubinskiKostanchuk::write(Ostream& os) const
+{
+    departureDiameterModel::write(os);
+    os.writeKeyword("dRef") << dRef_ << token::END_STATEMENT << nl;
+    os.writeKeyword("dMax") << dMax_ << token::END_STATEMENT << nl;
+    os.writeKeyword("dMin") << dMin_ << token::END_STATEMENT << nl;
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H
index 9437f5185b4cd1e843712af39a65ccc640b2f886..79c5d61c6a45b5671d5f1959b3e50d4885a73c12 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/TolubinskiKostanchuk/TolubinskiKostanchuk.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,6 +63,17 @@ class TolubinskiKostanchuk
     public departureDiameterModel
 {
 
+    // Private data:
+
+        //- Coefficient of the temperature term
+        scalar dRef_;
+
+        //- Maximum diameter
+        scalar dMax_;
+
+        //- Minimum diameter
+        scalar dMin_;
+
 public:
 
     //- Runtime type information
@@ -87,8 +98,12 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const scalarField& Tsub
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const;
+
+        virtual void write(Ostream& os) const;
 };
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H
index 47f431eb190408eb9d06d1a6d837c873d78fecf5..5a7375e061606f67a3d900961f9be8324aa59a1d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/departureDiameterModels/departureDiameterModel/departureDiameterModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const scalarField& Tsub
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const = 0;
 
         virtual void write(Ostream& os) const;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C
index 28920597d2bee20ddd86d7ca5bfd8468b2f64c68..69eddc91c8ed82f6a2b24d6b011e90015a2d4f20 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,8 @@ Foam::wallBoilingModels::nucleationSiteModels::LemmertChawla::LemmertChawla
     const dictionary& dict
 )
 :
-    nucleationSiteModel()
+    nucleationSiteModel(),
+    Cn_(dict.lookupOrDefault<scalar>("Cn", 1))
 {}
 
 
@@ -71,13 +72,15 @@ Foam::wallBoilingModels::nucleationSiteModels::LemmertChawla::N
     const phaseModel& liquid,
     const phaseModel& vapor,
     const label patchi,
-    const fvPatchScalarField& Tsatw
+    const scalarField& Tl,
+    const scalarField& Tsatw,
+    const scalarField& L
 ) const
 {
     const fvPatchScalarField& Tw =
         liquid.thermo().T().boundaryField()[patchi];
 
-    return 0.8*9.922e5*pow(max((Tw - Tsatw)/10, scalar(0)), 1.805);
+    return Cn_*9.922e5*pow(max((Tw - Tsatw)/10, scalar(0)), 1.805);
 }
 
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H
index a521eb78429651fee44a27f4c3d57bae6b389d4a..f3c560478fa96d60d07becfd50d0fb8c29bb92a5 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/LemmertChawla/LemmertChawla.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,6 +68,11 @@ class LemmertChawla
     public nucleationSiteModel
 {
 
+    // Private data:
+
+        //- Coefficient for nucleation site density
+        scalar Cn_;
+
 public:
 
     //- Runtime type information
@@ -91,7 +96,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const fvPatchScalarField& Tsatw
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const;
 };
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H
index 6a26e4de708e2075234881cac1e8c865a1b9ea4f..fc26b7f9ecf864c6ae5e7f6ab6a662cdfbcd5339 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/derivedFvPatchFields/wallBoilingSubModels/nucleationSiteModels/nucleationSiteModel/nucleationSiteModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,9 @@ public:
             const phaseModel& liquid,
             const phaseModel& vapor,
             const label patchi,
-            const fvPatchScalarField& Tsatw
+            const scalarField& Tl,
+            const scalarField& Tsatw,
+            const scalarField& L
         ) const = 0;
 
         virtual void write(Ostream& os) const;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
index 5abe9f3561d741f93a9140d838b96452e4d9f0fb..a1794a78207bc71a4072656fca4ea909ff5cd89c 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     conductivityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -103,7 +103,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::kappa
 
 bool Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
index ab6d3d354a1bc7e7e98d36e54b2cee3e6ac4b569..6b110d373177a1fd4028ef2fa6a1be7d67e33c64 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJackson
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -130,7 +130,7 @@ Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
index 3b69aa8a62a15995679e2b64e52ffcaacf7547d4..67517beb073ebb452b4c9b7fcae664505ef314d1 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJacksonSchaeffer::JohnsonJacksonSchaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -190,7 +190,7 @@ JohnsonJacksonSchaeffer::nu
 bool Foam::kineticTheoryModels::frictionalStressModels::
 JohnsonJacksonSchaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
index be2555958c9e83d86ffb383d5967ed846a039313..eeabe622e12a425078a71b675cf2cc690e2d4138 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::Schaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     phi_("phi", dimless, coeffDict_)
 {
     phi_ *= constant::mathematical::pi/180.0;
@@ -178,7 +178,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     phi_.read(coeffDict_);
     phi_ *= constant::mathematical::pi/180.0;
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
index 415bb3145a572eecdb51a1f9237b7665e6fcacb7..6607b16443d31daffa3edfbe6b628a1bd37adc70 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     viscosityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -100,7 +100,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::nu
 
 bool Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
index 5abe9f3561d741f93a9140d838b96452e4d9f0fb..a1794a78207bc71a4072656fca4ea909ff5cd89c 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     conductivityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -103,7 +103,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::kappa
 
 bool Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
index ab6d3d354a1bc7e7e98d36e54b2cee3e6ac4b569..6b110d373177a1fd4028ef2fa6a1be7d67e33c64 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJackson
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -130,7 +130,7 @@ Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
index 3b69aa8a62a15995679e2b64e52ffcaacf7547d4..67517beb073ebb452b4c9b7fcae664505ef314d1 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJacksonSchaeffer/JohnsonJacksonSchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,7 +57,7 @@ JohnsonJacksonSchaeffer::JohnsonJacksonSchaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_),
     eta_("eta", dimless, coeffDict_),
     p_("p", dimless, coeffDict_),
@@ -190,7 +190,7 @@ JohnsonJacksonSchaeffer::nu
 bool Foam::kineticTheoryModels::frictionalStressModels::
 JohnsonJacksonSchaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     Fr_.read(coeffDict_);
     eta_.read(coeffDict_);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
index be2555958c9e83d86ffb383d5967ed846a039313..eeabe622e12a425078a71b675cf2cc690e2d4138 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::Schaeffer
 )
 :
     frictionalStressModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     phi_("phi", dimless, coeffDict_)
 {
     phi_ *= constant::mathematical::pi/180.0;
@@ -178,7 +178,7 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu
 
 bool Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     phi_.read(coeffDict_);
     phi_ *= constant::mathematical::pi/180.0;
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
index 415bb3145a572eecdb51a1f9237b7665e6fcacb7..6607b16443d31daffa3edfbe6b628a1bd37adc70 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     viscosityModel(dict),
-    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(typeName + "Coeffs")),
     L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_)
 {}
 
@@ -100,7 +100,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::nu
 
 bool Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::read()
 {
-    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+    coeffDict_ <<= dict_.optionalSubDict(typeName + "Coeffs");
 
     L_.readIfPresent(coeffDict_);
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C
index 55225147acc6aa804e7aa87659621ac1bc85187d..d7eaa2f081528141b9df54ffe3fabdd158138113 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,7 +61,7 @@ void Foam::diameterModel::correct()
 
 bool Foam::diameterModel::read(const dictionary& phaseProperties)
 {
-    diameterProperties_ = phaseProperties.subDict(type() + "Coeffs");
+    diameterProperties_ = phaseProperties.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
index b58f00291bb73ba28e5b93a1f6c2331621eb8945..ef872df0cc8cb149a20ec3e838d58dd654c8160c 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,11 @@ Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
            << exit(FatalError);
     }
 
-    return cstrIter()(dict.subDict(diameterModelType + "Coeffs"), phase);
+    return cstrIter()
+    (
+        dict.optionalSubDict(diameterModelType + "Coeffs"),
+        phase
+    );
 }
 
 
diff --git a/applications/test/findSphereFeatureEdges-octree/Make/options b/applications/test/findSphereFeatureEdges-octree/Make/options
index 606903451472483dd2b1136556b156bddbaeabe7..d27c95d033dd5d7b1995c8ff8dc406e35ca1f586 100644
--- a/applications/test/findSphereFeatureEdges-octree/Make/options
+++ b/applications/test/findSphereFeatureEdges-octree/Make/options
@@ -1,9 +1,7 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
-    -lmeshTools \
-    -ledgeMesh
+    -lmeshTools
diff --git a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
index 21d9fd8131e9eb5af671b065a01f889576c7e410..c53403e602207dea2430046ceb2c0b96e2f2c744 100644
--- a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
@@ -19,7 +19,6 @@ EXE_INC =  \
     -I$(LIB_SRC)/sampling/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I../conformalVoronoiMesh/lnInclude
 
@@ -30,7 +29,6 @@ EXE_LIBS =  \
     -lmeshTools \
     -ldecompositionMethods \
     -L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
-    -ledgeMesh \
     -ltriSurface \
     -ldynamicMesh \
     -lsampling \
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
index a25814c1c4cd998a5b5e78b680bf0d3be07b7127..1baf4fb2f9d94ddd717db04c80637441e73de06d 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
@@ -17,7 +17,6 @@ EXE_INC = \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
@@ -30,7 +29,6 @@ LIB_LIBS = \
     ${CGAL_LIBS} \
     -lmeshTools \
     -ldecompose \
-    -ledgeMesh \
     -lfileFormats \
     -ltriSurface \
     -ldynamicMesh \
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C
index c0db55e55864635d9b8d6c3750f5f93514037e8c..3e6860c7a51b2284c15aa20f1f490a5af27aecc4 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/cellSizeFunction/cellSizeFunction/cellSizeFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,7 +58,7 @@ Foam::cellSizeFunction::cellSizeFunction
             defaultCellSize
         )
     ),
-    coeffsDict_(subDict(type + "Coeffs")),
+    coeffsDict_(optionalSubDict(type + "Coeffs")),
     defaultCellSize_(defaultCellSize),
     regionIndices_(regionIndices),
     sideMode_(),
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
index ccaff192aa74e77970da77659c09278c2e4c584d..d9bf097d1d6d7023a378ca7d53232c0391795e03 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,7 @@ Foam::automatic::automatic
         surface,
         defaultCellSize
     ),
-    coeffsDict_(cellSizeCalcTypeDict.subDict(typeName + "Coeffs")),
+    coeffsDict_(cellSizeCalcTypeDict.optionalSubDict(typeName + "Coeffs")),
     surfaceName_(surface.searchableSurface::name()),
     readCurvature_(Switch(coeffsDict_.lookup("curvature"))),
     curvatureFile_(coeffsDict_.lookup("curvatureFile")),
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C
index 6d6b56e7b6c43de620cbeebba30c18e1002ef245..c4f2014caf5fef1125eba85027efdf1a0b001ad3 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/fieldFromFile/fieldFromFile.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,10 +58,13 @@ Foam::fieldFromFile::fieldFromFile
         surface,
         defaultCellSize
     ),
-    coeffsDict_(cellSizeCalcTypeDict.subDict(typeName + "Coeffs")),
+    coeffsDict_(cellSizeCalcTypeDict.optionalSubDict(typeName + "Coeffs")),
     fileName_
     (
-        cellSizeCalcTypeDict.subDict(typeName + "Coeffs").lookup("fieldFile")
+        cellSizeCalcTypeDict.optionalSubDict
+        (
+            typeName + "Coeffs"
+        ).lookup("fieldFile")
     ),
     cellSizeMultipleCoeff_
     (
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C
index cac183702182c5a1447640d5904df926647983de..33d7267d7d9b401cdf8908954e3fff780641225e 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/surfaceCellSizeFunction/surfaceCellSizeFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,7 @@ Foam::surfaceCellSizeFunction::surfaceCellSizeFunction
 :
     dictionary(surfaceCellSizeFunctionDict),
     surface_(surface),
-    coeffsDict_(subDict(type + "Coeffs")),
+    coeffsDict_(optionalSubDict(type + "Coeffs")),
     defaultCellSize_(defaultCellSize),
     refinementFactor_
     (
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C
index 6388c0c6c88bfa3cf0030cd3f3a57b81cb90857c..0aa043cb1e35c09be61e8a0f12e462345f95385d 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/faceAreaWeightModel/faceAreaWeightModel/faceAreaWeightModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,7 @@ faceAreaWeightModel::faceAreaWeightModel
 )
 :
     dictionary(relaxationDict),
-    coeffDict_(subDict(type + "Coeffs"))
+    coeffDict_(optionalSubDict(type + "Coeffs"))
 {}
 
 
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C
index 110078415529bba7455a326c297dbd25a68ed941..d7b93caba4cf68a45412ee14678ffbd07df1828f 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/initialPointsMethod/initialPointsMethod.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ initialPointsMethod::initialPointsMethod
     geometryToConformTo_(geometryToConformTo),
     cellShapeControls_(cellShapeControls),
     decomposition_(decomposition),
-    detailsDict_(subDict(type + "Coeffs")),
+    detailsDict_(optionalSubDict(type + "Coeffs")),
     minimumSurfaceDistanceCoeffSqr_
     (
         sqr
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C
index e47cbf4aaa1cdc2c90d6d5e7ef6a552fdb7e7594..c06c5ed969346afe29edef71e96af0aeb5ba0e2b 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/relaxationModel/relaxationModel/relaxationModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,7 @@ relaxationModel::relaxationModel
 :
     dictionary(relaxationDict),
     runTime_(runTime),
-    coeffDict_(subDict(type + "Coeffs"))
+    coeffDict_(optionalSubDict(type + "Coeffs"))
 {}
 
 
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
index 560ee3a7b834095eecf9b2a0e83d8d1e4d265474..ce8d65dcc64eda32cc0fe6a1972858eea550e63b 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
@@ -17,7 +17,6 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
@@ -32,7 +31,6 @@ EXE_LIBS = \
     -ldecompositionMethods \
     -ldecompose \
     -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp -lscotchDecomp \
-    -ledgeMesh \
     -lfileFormats \
     -ltriSurface \
     -ldynamicMesh \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
index 625763f59762663c38696a79301e29dd6b364c51..293882347b33d9e930f9dbede943bfdc8a25a689 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
@@ -10,7 +10,6 @@ EXE_INC = \
     -I../conformalVoronoiMesh/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
@@ -25,7 +24,6 @@ EXE_LIBS = \
     -lconformalVoronoiMesh \
     -ldecompositionMethods /* -L$(FOAM_LIBBIN)/dummy -lscotchDecomp */ \
     -ldecompose \
-    -ledgeMesh \
     -ltriSurface \
     -lmeshTools \
     -lfileFormats \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
index 1a24c89f7036a2f9094910b27f19c951eebf20bb..0a1653a2f3f0e36722ecf7d505be23dea6cd3fb3 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
@@ -8,7 +8,6 @@ EXE_INC = \
     /* -IMarchingCubes */ \
     -I$(FASTDUALOCTREE_SRC_PATH) \
     -I../conformalVoronoiMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
@@ -20,7 +19,6 @@ EXE_LIBS = \
     -lGL \
     -lconformalVoronoiMesh \
     -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lscotchDecomp \
-    -ledgeMesh \
     -lfileFormats \
     -ltriSurface \
     -lmeshTools \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
index ede07dde711e224f70539d926373e6013d9a511b..37dda1856936d864ef600b5d2416021636e18ea6 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
@@ -15,7 +15,6 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/mesh/extrudeModel/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude \
@@ -31,7 +30,6 @@ EXE_LIBS = \
     -lconformalVoronoiMesh \
     -lmeshTools \
     -lsurfMesh \
-    -ledgeMesh \
     -ltriSurface \
     -ldynamicMesh \
     -ldecompositionMethods \
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/Make/options b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
index 40ccd9c2ce3dcc1ebeae811655d9559bfed963c4..a01104b387d8d576459ad1d5ee642a7c582cda1c 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
@@ -7,7 +7,6 @@ EXE_INC = \
     -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \
     -I$(LIB_SRC)/parallel/reconstruct/reconstruct/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
index 777730a96d27bb6fd4df87d08f93322ff118df61..ba4a1e930657c3010e6c92e4f5af1a85ff94af88 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
@@ -144,7 +144,7 @@ autoPtr<refinementSurfaces> createRefinementSurfaces
             const word scsFuncName =
                 shapeDict.lookup("surfaceCellSizeFunction");
             const dictionary& scsDict =
-                shapeDict.subDict(scsFuncName + "Coeffs");
+                shapeDict.optionalSubDict(scsFuncName + "Coeffs");
 
             const scalar surfaceCellSize =
                 readScalar(scsDict.lookup("surfaceCellSizeCoeff"));
diff --git a/applications/utilities/miscellaneous/foamList/Make/options b/applications/utilities/miscellaneous/foamList/Make/options
index 1835b2239740b29a33c84bb40152d47d36d4c46f..96e74a80ac15462248c6d534677c1a7f0d0bfba1 100644
--- a/applications/utilities/miscellaneous/foamList/Make/options
+++ b/applications/utilities/miscellaneous/foamList/Make/options
@@ -28,7 +28,6 @@ EXE_LIBS = \
     -lDSMC \
     -ldynamicFvMesh \
     -ldynamicMesh \
-    -ledgeMesh \
     -lengine \
     -lextrudeModel \
     -lfieldFunctionObjects \
diff --git a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
index 767d626880ee3d4b43e7318ba3c40fa9678a8e60..4fc525a3a94f162ac5d98252a28a20c83ae1ec56 100644
--- a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
+++ b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
@@ -22,9 +22,9 @@
 
     cachedRandom rndGen(label(0), -1);
 
-    autoPtr<distributionModels::distributionModel> p
+    autoPtr<distributionModel> p
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             pdfDictionary,
             rndGen
diff --git a/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.C b/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.C
index 9079b119412527c7cabf490aab7baf8666b785ad..aa881bdc9d04f49a0ac53f49be8208bd8d1aef45 100644
--- a/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.C
+++ b/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/tabulatedWallFunction/tabulatedWallFunction.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) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,7 @@ Foam::tabulatedWallFunctions::tabulatedWallFunction::tabulatedWallFunction
 :
     dict_(dict),
     mesh_(mesh),
-    coeffDict_(dict.subDict(name + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(name + "Coeffs")),
     invertedTableName_(dict.lookup("invertedTableName")),
     invertedTable_(invertedTableName_, mesh_, dict, true)
 {}
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/Make/options b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
index 4ff7ef80147e9842bd3ae73de7d9348abdd99efe..5a431f7d73b4aa3331cc763f80a958277a01e2d4 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/Make/options
+++ b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
@@ -17,12 +17,10 @@ EXE_INC = \
     $(COMP_FLAGS) \
     -I$(FOAM_SRC)/surfMesh/lnInclude \
     -I$(FOAM_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -lsurfMesh \
     -ltriSurface \
-    -ledgeMesh \
     -lmeshTools \
     $(LINK_FLAGS)
diff --git a/applications/utilities/surface/surfaceFeatureConvert/Make/options b/applications/utilities/surface/surfaceFeatureConvert/Make/options
index e71834f99e7bda1e25a37bf5073892ce318fab8a..54c035b8f55d183c1ad02bc372398feceaf31718 100644
--- a/applications/utilities/surface/surfaceFeatureConvert/Make/options
+++ b/applications/utilities/surface/surfaceFeatureConvert/Make/options
@@ -1,7 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -lmeshTools \
-    -ledgeMesh
+    -lmeshTools
diff --git a/applications/utilities/surface/surfaceFeatureExtract/Make/options b/applications/utilities/surface/surfaceFeatureExtract/Make/options
index b733d5fde961f788415c0aa33e9e74bd1caa539d..e96fbb3687514ebb43c3709677d54518e5a3064d 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/Make/options
+++ b/applications/utilities/surface/surfaceFeatureExtract/Make/options
@@ -1,13 +1,11 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
     -lmeshTools \
-    -ledgeMesh \
     -ltriSurface \
     -lsampling
diff --git a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
index c35bf55e3948e0b85483c88e0d482b56349147bc..5ae72ebd31bdf7500846ee0dca7a4c123ff4fb43 100644
--- a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
+++ b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
@@ -1,7 +1,7 @@
 EXE_INC = \
     -I$(LIB_SRC)/surfMesh/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
-    -ledgeMesh \
-    -lsurfMesh
+    -lsurfMesh \
+    -lmeshTools
diff --git a/bin/foamNewApp b/bin/foamNewApp
index b2f664817bd735b665cb66db8da25bfd3834431c..e960ea0b73722576062f4f25f68fdd61e83abc55 100755
--- a/bin/foamNewApp
+++ b/bin/foamNewApp
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -62,9 +62,12 @@ esac
 [ -d "$1" ] && usage "$1 directory already exists, aborting..."
 
 NAME=$1
+YEAR=$(date +%Y)
 
 echo "Creating application code directory $NAME" && mkdir $NAME
-sed "s#NAME#${NAME}#g" ${DIR}/app.C > $NAME/$NAME.C
+sed -e "s#NAME#${NAME}#g" \
+    -e "s#YEAR#${YEAR}#g" \
+    ${DIR}/app.C > $NAME/$NAME.C
 
 echo "Creating Make subdirectory" && mkdir $NAME/Make
 sed "s#NAME#${NAME}#g" ${DIR}/Make/files > $NAME/Make/files
diff --git a/bin/foamNewBC b/bin/foamNewBC
index 26ac4fcc91ec5cd2d58e8646431ef4c650be6e54..ceac666502c3982cb8cb65ed7df802bd148433ef 100755
--- a/bin/foamNewBC
+++ b/bin/foamNewBC
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -134,6 +134,7 @@ FVPATCHF=fvPatch$(cap $FIELD)
 CLASS=$NAME$(cap $FVPATCHF)
 PARENT=$BASE$(cap $FVPATCHF)
 CONSTRUCT=$(echo $CLASS | sed 's/<Type>//g')
+YEAR=$(date +%Y)
 
 # Create some example values for the Description
 n=0
@@ -155,6 +156,7 @@ do
         -e "s#NAME#${NAME}#g" \
         -e "s#BASE#${BASE}#g" \
         -e "s#CONSTRUCT#${CONSTRUCT}#g" \
+        -e "s#YEAR#${YEAR}#g" \
         -e "s#CLASS#${CLASS}#g" \
         -e "s#FIELD#${FIELD}#g" \
         -e "s#FVPATCHF#${FVPATCHF}#g" \
diff --git a/bin/foamNewFunctionObject b/bin/foamNewFunctionObject
index a2f5d2bf20a8b3002e4e323d19c3a4e0a44eee0b..24455375724ae919dc8b46cde5ea79c93ab79469 100755
--- a/bin/foamNewFunctionObject
+++ b/bin/foamNewFunctionObject
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -66,12 +66,15 @@ esac
 [ -d "$1" ] && usage "$1 directory already exists, aborting..."
 
 NAME=$1
+YEAR=$(date +%Y)
 
 echo "Creating function object code directory $NAME" && mkdir $NAME
 for F in $(ls ${DIR}/*.*)
 do
     FILE=$(basename $F | sed "s#FUNCTIONOBJECT#${NAME}#g")
-    sed "s#FUNCTIONOBJECT#${NAME}#g" ${F} > ${NAME}/${FILE}
+    sed -e "s#FUNCTIONOBJECT#${NAME}#g" \
+        -e "s#YEAR#${YEAR}#g" \
+        ${F} > ${NAME}/${FILE}
 done
 
 echo "Creating Make subdirectory" && mkdir $NAME/Make
diff --git a/etc/caseDicts/postProcessing/visualization/streamlines.cfg b/etc/caseDicts/postProcessing/visualization/streamlines.cfg
index 64d4bd474c692aff84e1204d00a4a97583c7ec87..10dc9dd144a98c2609c655cfeaa6da760784cf31 100644
--- a/etc/caseDicts/postProcessing/visualization/streamlines.cfg
+++ b/etc/caseDicts/postProcessing/visualization/streamlines.cfg
@@ -19,8 +19,8 @@ lifeTime        10000;
 nSubCycle       5;
 
 cloudName       particleTracks;
-seedSampleSet   uniform;
-uniformCoeffs
+
+seedSampleSet
 {
     type            uniform;
     axis            x;
diff --git a/etc/codeTemplates/BC/BC.C b/etc/codeTemplates/BC/BC.C
index ced40005b3acdda5540ca51d9f210052f8c437a5..d31c281a5f97bddc6ac6f1629450adfb0de0a9ef 100644
--- a/etc/codeTemplates/BC/BC.C
+++ b/etc/codeTemplates/BC/BC.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BC.H b/etc/codeTemplates/BC/BC.H
index c878d68d9d43bbbfa07d1766002108c8179bc5b6..72f66462f648c9d158c54a91ccb3493f3bfc8132 100644
--- a/etc/codeTemplates/BC/BC.H
+++ b/etc/codeTemplates/BC/BC.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BCs.C b/etc/codeTemplates/BC/BCs.C
index a0b084933ad755952b65d1e4b605a5794593ee7f..b8b4642918c2beae74fa3a7dce9f503b96ec2ca5 100644
--- a/etc/codeTemplates/BC/BCs.C
+++ b/etc/codeTemplates/BC/BCs.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BCs.H b/etc/codeTemplates/BC/BCs.H
index bbd112ed9d13febf74db55eef3b213e61ff5edaf..f32d209bbeaa13e0190d5df27c64844e492274c7 100644
--- a/etc/codeTemplates/BC/BCs.H
+++ b/etc/codeTemplates/BC/BCs.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/BC/BCsFwd.H b/etc/codeTemplates/BC/BCsFwd.H
index 4c600dd7eb09b54e6521dcd9af40e38aeb9083d1..2aeabb56ff13cb890f101e41fc6c511078d63523 100644
--- a/etc/codeTemplates/BC/BCsFwd.H
+++ b/etc/codeTemplates/BC/BCsFwd.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/app/app.C b/etc/codeTemplates/app/app.C
index 2ed97537f6bb8e5d96bce5383a60651f50a1f09a..0b765eb1e20acaf1566d3eb00225bec1fd7b1b9d 100644
--- a/etc/codeTemplates/app/app.C
+++ b/etc/codeTemplates/app/app.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/codeStreamTemplate.C b/etc/codeTemplates/dynamicCode/codeStreamTemplate.C
index 5d69d9963294eebbced2b28a454b477698e3e3d1..58671e58769002ad583e14f4fc3baa05f236544b 100644
--- a/etc/codeTemplates/dynamicCode/codeStreamTemplate.C
+++ b/etc/codeTemplates/dynamicCode/codeStreamTemplate.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) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
index 6cb5cc0d7bd2a76df41adb9b9204d09a8f1fc448..046412bd683df6b40795206009e50637460f94b4 100644
--- a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
+++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
index a30727ccb6d4a3cbc170247aa805be7fd43a583b..a25fe3d30dd9a833f949122e66deb2d5e0755f0e 100644
--- a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
+++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.C b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.C
index c7f442f03a64c9a4fa4bd919b91a061c2de547ec..e0a3943411fbc6279733292859d01cf68cb14336 100644
--- a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.C
+++ b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.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) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H
index 6026fe1256cb8b0973a77f271201fffad69f04ca..468ef1326c01fd5416fc2e516c06a320d4f95970 100644
--- a/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H
+++ b/etc/codeTemplates/dynamicCode/fixedValueFvPatchFieldTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.C b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.C
index f474cbbd73cdcba5a7197e8427fc3f6b8554845d..c1cc7e66c94e73783fc0d9f7a0349e6768c080e0 100644
--- a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.C
+++ b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.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) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H
index bbb46269ff592451c4ddcdc624b4f42d041aa36a..ce92b09fb2b27f9782e40a430c1cc07e496438c9 100644
--- a/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H
+++ b/etc/codeTemplates/dynamicCode/fixedValuePointPatchFieldTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/functionObjectTemplate.C b/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
index 4df4117cdd826389da54fc49fdd8720139f4556b..b2d65aad5d91445761bc7d08d9d95c2189df7776 100644
--- a/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
+++ b/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/functionObjectTemplate.H b/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
index a20a40120fe2bd22df2dcbc7cce4d8d8f6ed214f..bd2580a9bea04b50a9a1cf3bbf05ae526f6bedb3 100644
--- a/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
+++ b/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C
index ab2f100f3e462c9c30a9f8419179e30be61f40ea..651ee6018a5db141546df445ceb891e7477f78fa 100644
--- a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.C
+++ b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.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) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H
index 129fb534dd4be1299730a5436b89f6793fce9550..cb59d0a1f5cfca4cc4896e5511ed6881b0d87c04 100644
--- a/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H
+++ b/etc/codeTemplates/dynamicCode/mixedFvPatchFieldTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/foamScript b/etc/codeTemplates/foamScript
index 0c30f3371529ea384d46e4051b89ff433ec4e937..48cc73bb5cd7efeb3104b1a930816b73f616a342 100755
--- a/etc/codeTemplates/foamScript
+++ b/etc/codeTemplates/foamScript
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
diff --git a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
index 68c84dfe7d6d7f79fa449db45406b6e7c527e1ca..5318dbead70db3c3fe801aee83029c073a46b7be 100644
--- a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
+++ b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
index 2a2dfd07ccc6b6c449f99a7f8dd33d0c6db2358a..dc3a3edb2f497633ca21202d349019c21e802a18 100644
--- a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
+++ b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_Template.C b/etc/codeTemplates/source/_Template.C
index 6812cbdf16ff8b4bd1dbcae4a4306fbce57527ac..3d6f46ded11153b01203f29604e72d4b75cfeaf0 100644
--- a/etc/codeTemplates/source/_Template.C
+++ b/etc/codeTemplates/source/_Template.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_Template.H b/etc/codeTemplates/source/_Template.H
index d2cbe47d0b5280d2b69aa8c819e1cf86335a5825..df90d5e4fe2a30dcc671475482a8b5acf0f1c143 100644
--- a/etc/codeTemplates/source/_Template.H
+++ b/etc/codeTemplates/source/_Template.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_TemplateApp.C b/etc/codeTemplates/source/_TemplateApp.C
index 80c562cbdbc9b40185dbec45bf9df0e9fe11459a..aa6efc53f755e2526c3afc4235063467fdc21874 100644
--- a/etc/codeTemplates/source/_TemplateApp.C
+++ b/etc/codeTemplates/source/_TemplateApp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_TemplateI.H b/etc/codeTemplates/source/_TemplateI.H
index eca8d9ea3b2ab1a5690711352eb2a1cf5e7a7166..dd1ba9ecf1efde9049db85f7e24ad2d8c3563946 100644
--- a/etc/codeTemplates/source/_TemplateI.H
+++ b/etc/codeTemplates/source/_TemplateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/_TemplateIO.C b/etc/codeTemplates/source/_TemplateIO.C
index d07fc0d3f30ee81b258acf0a66b2b2a0fcae897f..f1e498671e4840e61a72de74d6f1b07d33725ad4 100644
--- a/etc/codeTemplates/source/_TemplateIO.C
+++ b/etc/codeTemplates/source/_TemplateIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/source/foamNewSource b/etc/codeTemplates/source/foamNewSource
index 0a9c1b91af0f8cb0ee44b1d1a31625629980ccbf..ae6d547141120672debf6d925d3bef61e675d80e 100755
--- a/etc/codeTemplates/source/foamNewSource
+++ b/etc/codeTemplates/source/foamNewSource
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -104,7 +104,9 @@ else
     fi
 
     # process class name
-    sed "s/CLASSNAME/$className/g" $Template$subType$Type > $fileName
+    sed -e "s/CLASSNAME/$className/g" \
+        -e "s/YEAR/$(date +%Y)/g" \
+        $Template$subType$Type > $fileName
 
     if [ "$subType" = App -a ! -d Make ]
     then
diff --git a/etc/codeTemplates/template/_TemplateTemplate.C b/etc/codeTemplates/template/_TemplateTemplate.C
index 63b895032b60ec2ed6046a6fdb3ef77b75d12ef9..2f733dfc3fae7883e14326a32a620267395dabfd 100644
--- a/etc/codeTemplates/template/_TemplateTemplate.C
+++ b/etc/codeTemplates/template/_TemplateTemplate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/_TemplateTemplate.H b/etc/codeTemplates/template/_TemplateTemplate.H
index 12e5511b732819851a7d73e52c0802b6073cffc5..ad98aca4af2daff403c7789b25b0d59640b08691 100644
--- a/etc/codeTemplates/template/_TemplateTemplate.H
+++ b/etc/codeTemplates/template/_TemplateTemplate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/_TemplateTemplateI.H b/etc/codeTemplates/template/_TemplateTemplateI.H
index eca8d9ea3b2ab1a5690711352eb2a1cf5e7a7166..dd1ba9ecf1efde9049db85f7e24ad2d8c3563946 100644
--- a/etc/codeTemplates/template/_TemplateTemplateI.H
+++ b/etc/codeTemplates/template/_TemplateTemplateI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/_TemplateTemplateIO.C b/etc/codeTemplates/template/_TemplateTemplateIO.C
index c60b5be8b8d8494dd982b9958fb8a81ac4b04485..05921c96458977c882c55558c514b3c0a399a33b 100644
--- a/etc/codeTemplates/template/_TemplateTemplateIO.C
+++ b/etc/codeTemplates/template/_TemplateTemplateIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) YEAR OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/etc/codeTemplates/template/foamNewTemplate b/etc/codeTemplates/template/foamNewTemplate
index dfc2e13375e3b17e521ed5a46480a17a250da3da..a85be23b50382afc6e38723d8515b166c81f9b27 100755
--- a/etc/codeTemplates/template/foamNewTemplate
+++ b/etc/codeTemplates/template/foamNewTemplate
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -106,7 +106,9 @@ else
 
 
     # process class name
-    sed -e "s/CLASSNAME/$className/g" $Template$Type > $fileName.1
+    sed -e "s/CLASSNAME/$className/g" \
+        -e "s/YEAR/$(date +%Y)/g" \
+        $Template$Type > $fileName.1
 
 
     # process remaining (template) arguments
diff --git a/etc/controlDict b/etc/controlDict
index 38ebd71b95ec61e8fd6914324ccf21218aea6d8d..a0151fc0bd1b183e73b607aee2500a0208793fbf 100644
--- a/etc/controlDict
+++ b/etc/controlDict
@@ -855,7 +855,6 @@ DebugSwitches
     triSurface          0;
     triSurfaceMesh      0;
     turbulenceModel     0;
-    turbulentHeatFluxTemperature 0;
     turbulentInlet      0;
     turbulentIntensityKineticEnergyInlet 0;
     turbulentMixingLengthDissipationRateInlet 0;
diff --git a/etc/templates/closedVolume/system/snappyHexMeshDict b/etc/templates/closedVolume/system/snappyHexMeshDict
index f7927ca2c3cbfed07e3a3214fc13574c3d510cd9..74f9cae76a89b5ebfd4b616bf408452bed1d31f0 100644
--- a/etc/templates/closedVolume/system/snappyHexMeshDict
+++ b/etc/templates/closedVolume/system/snappyHexMeshDict
@@ -60,6 +60,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
diff --git a/etc/templates/closedVolumeRotating/README b/etc/templates/closedVolumeRotating/README
index 693cee7bd9df53940cd23b01a35ca46c4a1d922f..79c0fbf857eb806da704269e14a1d81c7237021d 100644
--- a/etc/templates/closedVolumeRotating/README
+++ b/etc/templates/closedVolumeRotating/README
@@ -2,6 +2,61 @@ Overview
 ========
 + Template case for rotating geometry flow for a closed geometry
 + Can be used for MRF or AMI simulations
-+ Setup to run the simpleFoam solver
-+ Set up is like inflowOutflowRotating but without inlet and outlet
-+ See $FOAM_ETC/templates/closedVolume/README for details of use
\ No newline at end of file
++ Setup to run the simpleFoam solver for MRF, pimpleDyMFoam for AMI
++ The case is designed to be meshed with snappyHexMesh
++ snappyHexMesh is setup to use 3 trisurface files
+  + fixed.obj: CAD of the stationary geometry
+  + rotating.obj: CAD of the rotating geometry
+  + rotatingZone.obj: CAD of surface bounding the rotating region
++ Copy the *.obj files to the constant/triSurface directory
++ The fixed.obj should contain an inlet and outlet region to create the relevant
+  patches in the mesh
+
+Background Mesh
+===============
++ The blockMeshDict file contains a configuration for a cylindrical background
+  mesh aligned along the z-axis
++ The mesh includes a core box-shaped block and inner and outer cylinders
++ The backgroundMesh subdictionary includes key geometric parameters of the mesh
++ The inner cylinder relates to the rotatingZone.obj
++ The outer cyliner relates to the external boundary, e.g. fixed.obj
++ Set the radii of inner and outer cylinders to ~2% larger than respective OBJ
+  files
++ Set background mesh density with boxCells, inCells, outCells and zCells
++ Run blockMesh
++ NOTE: An alternative blockMeshDict-box file exists if the user wants a regular
+  box-shaped background mesh, similar to set up in the inflowOutflow template
+
+Features
+========
++ Run surfaceFeatureExtract to extract features for explicit feature capturing
+
+Castellated Mesh
+================
++ run snappyHexMesh to obtain a castellatedMesh
++ Review the mesh; modify refinement levels and regenerate the mesh as required
+  (levels are set in refinementSurfaces and refinementRegions)
+
+Snapped Mesh
+============
++ In snappyHexMeshDict, set castellatedMesh off; snap on;
++ Run the snapping phase of snappyHexMesh
++ Review the mesh
+
+Layers
+======
++ To add layers to the mesh along wall boundary patches...
++ Switch on addLayers; switch snap off;
++ Run snappyHexMesh
++ The number of layers can be changed by modifying nSurfaceLayers
+
+Initialisation
+==============
++ Initialise the field files in the 0 directory
++ Set the viscosity in constant/transportProperties
++ Rotating properties are set in constant/rotatingZoneProperties
+  + For MRF, this file is included from system/fvOptions
+  + For AMI, this file is included from constant/dynamicMeshDict
++ Ensure settings are appropriate in controlDict, fvSchemes, fvSolution, for
+  relevant simulation; for AMI, in particular, ensure that deltaT, ddtSchemes
+  and relaxationFactors are set for transient simulation
diff --git a/etc/templates/closedVolumeRotating/system/blockMeshDict b/etc/templates/closedVolumeRotating/system/blockMeshDict
index 273d50fad2367de42c8eeef10117501a4d748079..b7f0c57061c8e696616f012acc6f047b7889fe7b 100644
--- a/etc/templates/closedVolumeRotating/system/blockMeshDict
+++ b/etc/templates/closedVolumeRotating/system/blockMeshDict
@@ -14,47 +14,175 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+// Example configuration:
+// - Cylindrical mesh along z-axis (0 < z < 10)
+// - External boundary (fixed.obj) radius = 3
+// - Rotating zone (rotatingZone.obj) radius = 1
+
 backgroundMesh
 {
-    xMin    -1;
-    xMax     1;
-    yMin    -1;
-    yMax     1;
-    zMin    -1;
-    zMax     1;
-    xCells  20;
-    yCells  20;
-    zCells  20;
+    radOut     3.06; // larger than fixed.obj by ~ 1/cos(45/boxCells)
+    radOutN   -3.06;
+    radIn      1.02; // larger than rotatingZone.obj (see above)
+    radInN    -1.02;
+    radBox     0.30; // ~30% of rotatingZone.obj
+    radBoxN   -0.30;
+
+    zMin       0;
+    zMax       10;   // External boundary axial length
+
+    boxCells   5;    // Cells across inner box-shaped block
+    inCells    5;    // Cells in radial direction, inner cylinder
+    outCells   8;    // Cells in radial direction, outer cylinder
+    zCells     50;   // Cells in axial direction
+
+    outGrading 2.0;  // Expansion ratio in outer region, radial direction
+}
+
+geometry
+{
+    rotatingZone
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radIn;
+    }
+
+    fixed
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radOut;
+    }
 }
 
 convertToMeters 1;
 
 vertices
 (
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
-
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
 );
 
+boxMesh
+($:backgroundMesh.boxCells $:backgroundMesh.boxCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+inMesh
+($:backgroundMesh.boxCells $:backgroundMesh.inCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+outMesh
+($:backgroundMesh.boxCells $:backgroundMesh.outCells $:backgroundMesh.zCells)
+simpleGrading (1 $:backgroundMesh.outGrading 1);
+
 blocks
 (
-    hex (0 1 2 3 4 5 6 7)
-    (
-        $:backgroundMesh.xCells
-        $:backgroundMesh.yCells
-        $:backgroundMesh.zCells
-    )
-    simpleGrading (1 1 1)
+    hex (0 1 2 3 12 13 14 15) $boxMesh
+
+    hex (1 0 4 5 13 12 16 17) $inMesh
+    hex (0 3 7 4 12 15 19 16) $inMesh
+    hex (2 1 5 6 14 13 17 18) $inMesh
+    hex (3 2 6 7 15 14 18 19) $inMesh
+
+    hex (5 4  8  9 17 16 20 21) $outMesh
+    hex (4 7 11  8 16 19 23 20) $outMesh
+    hex (6 5  9 10 18 17 21 22) $outMesh
+    hex (7 6 10 11 19 18 22 23) $outMesh
 );
 
 edges
 (
+    project  4  5  (rotatingZone)
+    project  5  6  (rotatingZone)
+    project  6  7  (rotatingZone)
+    project  7  4  (rotatingZone)
+    project 16 17  (rotatingZone)
+    project 17 18  (rotatingZone)
+    project 18 19  (rotatingZone)
+    project 19 16  (rotatingZone)
+
+    project  8  9  (fixed)
+    project  9 10  (fixed)
+    project 10 11  (fixed)
+    project 11  8  (fixed)
+    project 20 21  (fixed)
+    project 21 22  (fixed)
+    project 22 23  (fixed)
+    project 23 20  (fixed)
 );
 
 boundary
diff --git a/etc/templates/inflowOutflow/system/blockMeshDict.extPatches b/etc/templates/closedVolumeRotating/system/blockMeshDict-box
similarity index 75%
rename from etc/templates/inflowOutflow/system/blockMeshDict.extPatches
rename to etc/templates/closedVolumeRotating/system/blockMeshDict-box
index dbba64bbb9f6fb55e033160a2ac18d9783efe839..273d50fad2367de42c8eeef10117501a4d748079 100644
--- a/etc/templates/inflowOutflow/system/blockMeshDict.extPatches
+++ b/etc/templates/closedVolumeRotating/system/blockMeshDict-box
@@ -59,59 +59,6 @@ edges
 
 boundary
 (
-    left
-    {
-        type patch;
-        faces
-        (
-            (0 3 7 4)
-        );
-    }
-
-    right
-    {
-        type patch;
-        faces
-        (
-            (1 5 6 2)
-        );
-    }
-
-    bottom
-    {
-        type patch;
-        faces
-        (
-            (0 1 2 3)
-        );
-    }
-
-    top
-    {
-        type patch;
-        faces
-        (
-            (4 7 6 5)
-        );
-    }
-
-    back
-    {
-        type patch;
-        faces
-        (
-            (0 4 5 1)
-        );
-    }
-
-    front
-    {
-        type patch;
-        faces
-        (
-            (3 2 6 7)
-        );
-    }
 );
 
 mergePatchPairs
diff --git a/etc/templates/closedVolumeRotating/system/snappyHexMeshDict b/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
index c31ea0166691758d73e8381357717c725851e7bc..115ce5b1032b78aa1e92a6286806f7e499017531 100644
--- a/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
+++ b/etc/templates/closedVolumeRotating/system/snappyHexMeshDict
@@ -83,11 +83,13 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
 {
     explicitFeatureSnap    true;
+    implicitFeatureSnap    false;
 }
 
 addLayersControls
diff --git a/etc/templates/compressibleInflowOutflow/README b/etc/templates/compressibleInflowOutflow/README
index 780ced006907710ed0af831586a56caa11d2c10d..3500e5e16e25d9c543b921f2fd3bfc8011c1e4a6 100644
--- a/etc/templates/compressibleInflowOutflow/README
+++ b/etc/templates/compressibleInflowOutflow/README
@@ -12,19 +12,13 @@ Background Mesh
 ===============
 + The user should establish the bounds of their CAD.obj file
 + The blockMeshDict file contains a backgroundMesh subditionary
-+ Set xMin, xMax, etc to be beyond the CAD.obj bounds
++ For internal flows, where CAD.obj describes the external boundary, set xMin,
+  xMax, etc to be beyond the CAD.obj bounds
++ For external flows, the background mesh can define the external boundary by
+  uncommenting entries, e.g. left, in the boundary section of blockMeshDict
 + Set background mesh density with xCells, yCells, zCells
 + Run blockMesh
 
-Background Mesh (alternative)
-=============================
-+ The user can adopt the background mesh patches in the mesh
-+ For example, the background mesh can provide external patches of an external
-  flow
-+ An alternative blockMeshDict file is set up for this: blockMeshDict.extPatches
-+ Simply copy blockMeshDict.extPatches to blockMeshDict and edit inlet, outlet
-  patches accordingly
-
 Castellated Mesh
 ================
 + In the snappyHexMeshDict file, replace <inletPatch> with the name of the inlet
diff --git a/etc/templates/compressibleInflowOutflow/system/blockMeshDict b/etc/templates/compressibleInflowOutflow/system/blockMeshDict
index 273d50fad2367de42c8eeef10117501a4d748079..a761d4fecbf635b99c4b2b96adf95ea9564b54a8 100644
--- a/etc/templates/compressibleInflowOutflow/system/blockMeshDict
+++ b/etc/templates/compressibleInflowOutflow/system/blockMeshDict
@@ -59,6 +59,62 @@ edges
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
+/*
+    left
+    {
+        type patch;
+        faces
+        (
+            (0 3 7 4)
+        );
+    }
+
+    right
+    {
+        type patch;
+        faces
+        (
+            (1 5 6 2)
+        );
+    }
+
+    bottom
+    {
+        type patch;
+        faces
+        (
+            (0 1 2 3)
+        );
+    }
+
+    top
+    {
+        type patch;
+        faces
+        (
+            (4 7 6 5)
+        );
+    }
+
+    back
+    {
+        type patch;
+        faces
+        (
+            (0 4 5 1)
+        );
+    }
+
+    front
+    {
+        type patch;
+        faces
+        (
+            (3 2 6 7)
+        );
+    }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict b/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict
index c8abb26721c103ec3803b32c0d71614d80894024..0d578833f06a9016675580075c5e15681e9976ed 100644
--- a/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict
+++ b/etc/templates/compressibleInflowOutflow/system/snappyHexMeshDict
@@ -84,6 +84,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
diff --git a/etc/templates/inflowOutflow/README b/etc/templates/inflowOutflow/README
index 3cac200bdc9141417842e32ec3c7fa35042bb621..7c2252a7adf4fa7fee479338fefc45b349b926ad 100644
--- a/etc/templates/inflowOutflow/README
+++ b/etc/templates/inflowOutflow/README
@@ -12,19 +12,13 @@ Background Mesh
 ===============
 + The user should establish the bounds of their CAD.obj file
 + The blockMeshDict file contains a backgroundMesh subditionary
-+ Set xMin, xMax, etc to be beyond the CAD.obj bounds
++ For internal flows, where CAD.obj describes the external boundary, set xMin,
+  xMax, etc to be beyond the CAD.obj bounds
++ For external flows, the background mesh can define the external boundary by
+  uncommenting entries, e.g. left, in the boundary section of blockMeshDict
 + Set background mesh density with xCells, yCells, zCells
 + Run blockMesh
 
-Background Mesh (alternative)
-=============================
-+ The user can adopt the background mesh patches in the mesh
-+ For example, the background mesh can provide external patches of an external
-  flow
-+ An alternative blockMeshDict file is set up for this: blockMeshDict.extPatches
-+ Simply copy blockMeshDict.extPatches to blockMeshDict and edit inlet, outlet
-  patches accordingly
-
 Castellated Mesh
 ================
 + In the snappyHexMeshDict file, replace <inletPatch> with the name of the inlet
diff --git a/etc/templates/inflowOutflow/system/blockMeshDict b/etc/templates/inflowOutflow/system/blockMeshDict
index 273d50fad2367de42c8eeef10117501a4d748079..a761d4fecbf635b99c4b2b96adf95ea9564b54a8 100644
--- a/etc/templates/inflowOutflow/system/blockMeshDict
+++ b/etc/templates/inflowOutflow/system/blockMeshDict
@@ -59,6 +59,62 @@ edges
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
+/*
+    left
+    {
+        type patch;
+        faces
+        (
+            (0 3 7 4)
+        );
+    }
+
+    right
+    {
+        type patch;
+        faces
+        (
+            (1 5 6 2)
+        );
+    }
+
+    bottom
+    {
+        type patch;
+        faces
+        (
+            (0 1 2 3)
+        );
+    }
+
+    top
+    {
+        type patch;
+        faces
+        (
+            (4 7 6 5)
+        );
+    }
+
+    back
+    {
+        type patch;
+        faces
+        (
+            (0 4 5 1)
+        );
+    }
+
+    front
+    {
+        type patch;
+        faces
+        (
+            (3 2 6 7)
+        );
+    }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/inflowOutflow/system/snappyHexMeshDict b/etc/templates/inflowOutflow/system/snappyHexMeshDict
index c8abb26721c103ec3803b32c0d71614d80894024..0d578833f06a9016675580075c5e15681e9976ed 100644
--- a/etc/templates/inflowOutflow/system/snappyHexMeshDict
+++ b/etc/templates/inflowOutflow/system/snappyHexMeshDict
@@ -84,6 +84,7 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
diff --git a/etc/templates/inflowOutflowRotating/0/U b/etc/templates/inflowOutflowRotating/0/U
index 159fe22463971632737962b9e25bd28bb7e032e2..e57a3d9a6df0d0e56ac6ff20f85464789b9b04a9 100644
--- a/etc/templates/inflowOutflowRotating/0/U
+++ b/etc/templates/inflowOutflowRotating/0/U
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Uinlet          (10 0 0);
+Uinlet          (0 0 10);
 
 dimensions      [0 1 -1 0 0 0 0];
 
diff --git a/etc/templates/inflowOutflowRotating/README b/etc/templates/inflowOutflowRotating/README
index b1b05eeb42592640773ad0209ce5857de3662d9c..250b5a331222d8e9b650e9ea2e76db5433f77ff4 100644
--- a/etc/templates/inflowOutflowRotating/README
+++ b/etc/templates/inflowOutflowRotating/README
@@ -12,12 +12,48 @@ Overview
 + The fixed.obj should contain an inlet and outlet region to create the relevant
   patches in the mesh
 
-Meshing
-=======
-+ Meshing is setup as in the inflowOutflow template
-+ See $FOAM_ETC/templates/inflowOutflow/README for details
-+ For AMI, the AMI interface can be set up by running createBaffles which uses
-  the createBafflesDict file
+Background Mesh
+===============
++ The blockMeshDict file contains a configuration for a cylindrical background
+  mesh aligned along the z-axis
++ The mesh includes a core box-shaped block and inner and outer cylinders
++ The backgroundMesh subdictionary includes key geometric parameters of the mesh
++ The inner cylinder relates to the rotatingZone.obj
++ The outer cyliner relates to the external boundary, e.g. fixed.obj
++ Set the radii of inner and outer cylinders to ~2% larger than respective OBJ
+  files
++ The background mesh can define the external boundary by uncommenting
+  entries, e.g. inlet, in the boundary section of blockMeshDict
++ Set background mesh density with boxCells, inCells, outCells and zCells
++ Run blockMesh
++ NOTE: An alternative blockMeshDict-box file exists if the user wants a regular
+  box-shaped background mesh, similar to set up in the inflowOutflow template
+
+Features
+========
++ Run surfaceFeatureExtract to extract features for explicit feature capturing
+
+Castellated Mesh
+================
++ In the snappyHexMeshDict file, replace <inletPatch> with the name of the inlet
+  region in the fixed.obj file, if it defines the external boundary
++ Replace <outletPatch> with the name of the outlet region
++ run snappyHexMesh to obtain a castellatedMesh
++ Review the mesh; modify refinement levels and regenerate the mesh as required
+  (levels are set in refinementSurfaces and refinementRegions)
+
+Snapped Mesh
+============
++ In snappyHexMeshDict, set castellatedMesh off; snap on;
++ Run the snapping phase of snappyHexMesh
++ Review the mesh
+
+Layers
+======
++ To add layers to the mesh along wall boundary patches...
++ Switch on addLayers; switch snap off;
++ Run snappyHexMesh
++ The number of layers can be changed by modifying nSurfaceLayers
 
 Initialisation
 ==============
diff --git a/etc/templates/inflowOutflowRotating/system/blockMeshDict b/etc/templates/inflowOutflowRotating/system/blockMeshDict
index 273d50fad2367de42c8eeef10117501a4d748079..6de435522b15d1bf20596aec570c7794a55b1db3 100644
--- a/etc/templates/inflowOutflowRotating/system/blockMeshDict
+++ b/etc/templates/inflowOutflowRotating/system/blockMeshDict
@@ -14,51 +14,227 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+// Example configuration:
+// - Cylindrical mesh along z-axis (0 < z < 10)
+// - External boundary (fixed.obj) radius = 3
+// - Rotating zone (rotatingZone.obj) radius = 1
+
 backgroundMesh
 {
-    xMin    -1;
-    xMax     1;
-    yMin    -1;
-    yMax     1;
-    zMin    -1;
-    zMax     1;
-    xCells  20;
-    yCells  20;
-    zCells  20;
+    radOut     3.06; // larger than fixed.obj by ~ 1/cos(45/boxCells)
+    radOutN   -3.06;
+    radIn      1.02; // larger than rotatingZone.obj (see above)
+    radInN    -1.02;
+    radBox     0.30; // ~30% of rotatingZone.obj
+    radBoxN   -0.30;
+
+    zMin       0;
+    zMax       10;   // External boundary axial length
+
+    boxCells   5;    // Cells across inner box-shaped block
+    inCells    5;    // Cells in radial direction, inner cylinder
+    outCells   8;    // Cells in radial direction, outer cylinder
+    zCells     50;   // Cells in axial direction
+
+    outGrading 2.0;  // Expansion ratio in outer region, radial direction
+}
+
+geometry
+{
+    rotatingZone
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radIn;
+    }
+
+    fixed
+    {
+        type   searchableCylinder;
+        point1 (0 0 -100);
+        point2 (0 0  100);
+        radius $:backgroundMesh.radOut;
+    }
 }
 
 convertToMeters 1;
 
 vertices
 (
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
-
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMin)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radInN $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN $:backgroundMesh.radIn $:backgroundMesh.zMin)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMin)
+    (fixed)
+
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBoxN $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBox  $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+    ($:backgroundMesh.radBoxN $:backgroundMesh.radBox  $:backgroundMesh.zMax)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radInN  $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radIn   $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radInN  $:backgroundMesh.radIn   $:backgroundMesh.zMax)
+    (rotatingZone)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOutN $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOut  $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
+
+    project
+    ($:backgroundMesh.radOutN $:backgroundMesh.radOut  $:backgroundMesh.zMax)
+    (fixed)
 );
 
+boxMesh
+($:backgroundMesh.boxCells $:backgroundMesh.boxCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+inMesh
+($:backgroundMesh.boxCells $:backgroundMesh.inCells $:backgroundMesh.zCells)
+simpleGrading (1 1 1);
+
+outMesh
+($:backgroundMesh.boxCells $:backgroundMesh.outCells $:backgroundMesh.zCells)
+simpleGrading (1 $:backgroundMesh.outGrading 1);
+
 blocks
 (
-    hex (0 1 2 3 4 5 6 7)
-    (
-        $:backgroundMesh.xCells
-        $:backgroundMesh.yCells
-        $:backgroundMesh.zCells
-    )
-    simpleGrading (1 1 1)
+    hex (0 1 2 3 12 13 14 15) $boxMesh
+
+    hex (1 0 4 5 13 12 16 17) $inMesh
+    hex (0 3 7 4 12 15 19 16) $inMesh
+    hex (2 1 5 6 14 13 17 18) $inMesh
+    hex (3 2 6 7 15 14 18 19) $inMesh
+
+    hex (5 4  8  9 17 16 20 21) $outMesh
+    hex (4 7 11  8 16 19 23 20) $outMesh
+    hex (6 5  9 10 18 17 21 22) $outMesh
+    hex (7 6 10 11 19 18 22 23) $outMesh
 );
 
 edges
 (
+    project  4  5  (rotatingZone)
+    project  5  6  (rotatingZone)
+    project  6  7  (rotatingZone)
+    project  7  4  (rotatingZone)
+    project 16 17  (rotatingZone)
+    project 17 18  (rotatingZone)
+    project 18 19  (rotatingZone)
+    project 19 16  (rotatingZone)
+
+    project  8  9  (fixed)
+    project  9 10  (fixed)
+    project 10 11  (fixed)
+    project 11  8  (fixed)
+    project 20 21  (fixed)
+    project 21 22  (fixed)
+    project 22 23  (fixed)
+    project 23 20  (fixed)
 );
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
+/*
+    inlet
+    {
+        type patch;
+        faces
+        (
+            (0 1 2 3)
+            (0 4 5 1)
+            (1 5 6 2)
+            (2 6 7 3)
+            (3 7 4 0)
+            (4 8 9 5)
+            (5 9 10 6)
+            (6 10 11 7)
+            (7 11 8 4)
+        );
+    }
+
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (12 13 14 15)
+            (12 16 17 13)
+            (13 17 18 14)
+            (14 18 19 15)
+            (15 19 16 12)
+            (16 20 21 17)
+            (17 21 22 18)
+            (18 22 23 19)
+            (19 23 20 16)
+        );
+    }
+
+    walls
+    {
+        type wall;
+        faces
+        (
+            (8 9 21 20)
+            (9 10 22 21)
+            (10 11 23 22)
+            (11 8 20 23)
+        );
+    }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/compressibleInflowOutflow/system/blockMeshDict.extPatches b/etc/templates/inflowOutflowRotating/system/blockMeshDict-box
similarity index 97%
rename from etc/templates/compressibleInflowOutflow/system/blockMeshDict.extPatches
rename to etc/templates/inflowOutflowRotating/system/blockMeshDict-box
index dbba64bbb9f6fb55e033160a2ac18d9783efe839..a761d4fecbf635b99c4b2b96adf95ea9564b54a8 100644
--- a/etc/templates/compressibleInflowOutflow/system/blockMeshDict.extPatches
+++ b/etc/templates/inflowOutflowRotating/system/blockMeshDict-box
@@ -59,6 +59,8 @@ edges
 
 boundary
 (
+//  Uncomment below to define patches in background mesh
+/*
     left
     {
         type patch;
@@ -112,6 +114,7 @@ boundary
             (3 2 6 7)
         );
     }
+*/
 );
 
 mergePatchPairs
diff --git a/etc/templates/inflowOutflowRotating/system/blockMeshDict.extPatches b/etc/templates/inflowOutflowRotating/system/blockMeshDict.extPatches
deleted file mode 100644
index dbba64bbb9f6fb55e033160a2ac18d9783efe839..0000000000000000000000000000000000000000
--- a/etc/templates/inflowOutflowRotating/system/blockMeshDict.extPatches
+++ /dev/null
@@ -1,121 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    object      blockMeshDict;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-backgroundMesh
-{
-    xMin    -1;
-    xMax     1;
-    yMin    -1;
-    yMax     1;
-    zMin    -1;
-    zMax     1;
-    xCells  20;
-    yCells  20;
-    zCells  20;
-}
-
-convertToMeters 1;
-
-vertices
-(
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
-
-    ($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
-    ($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
-);
-
-blocks
-(
-    hex (0 1 2 3 4 5 6 7)
-    (
-        $:backgroundMesh.xCells
-        $:backgroundMesh.yCells
-        $:backgroundMesh.zCells
-    )
-    simpleGrading (1 1 1)
-);
-
-edges
-(
-);
-
-boundary
-(
-    left
-    {
-        type patch;
-        faces
-        (
-            (0 3 7 4)
-        );
-    }
-
-    right
-    {
-        type patch;
-        faces
-        (
-            (1 5 6 2)
-        );
-    }
-
-    bottom
-    {
-        type patch;
-        faces
-        (
-            (0 1 2 3)
-        );
-    }
-
-    top
-    {
-        type patch;
-        faces
-        (
-            (4 7 6 5)
-        );
-    }
-
-    back
-    {
-        type patch;
-        faces
-        (
-            (0 4 5 1)
-        );
-    }
-
-    front
-    {
-        type patch;
-        faces
-        (
-            (3 2 6 7)
-        );
-    }
-);
-
-mergePatchPairs
-(
-);
-
-// ************************************************************************* //
diff --git a/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict b/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
index 0dc1c3acc4303d41afbb781d3ee73a4a5ef05bd6..1fe915899d9424fd6d9ed7328539c2318ec27a47 100644
--- a/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
+++ b/etc/templates/inflowOutflowRotating/system/snappyHexMeshDict
@@ -112,11 +112,13 @@ castellatedMeshControls
 
     locationInMesh (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
                                      // coinciding with face or edge
+    nCellsBetweenLevels 3;
 }
 
 snapControls
 {
     explicitFeatureSnap    true;
+    implicitFeatureSnap    false;
 }
 
 addLayersControls
diff --git a/src/Allwmake b/src/Allwmake
index 501f286305450dd9bc72b838f8ef7a35edd6bc0d..01aa91102e226cc280f160c136013568d0ea2e7d 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -30,7 +30,6 @@ wmake $targetType fileFormats
 wmake $targetType surfMesh
 wmake $targetType triSurface
 wmake $targetType meshTools
-wmake $targetType edgeMesh
 
 # Decomposition methods needed by dummyThirdParty
 # (dummy metisDecomp, scotchDecomp etc) needed by e.g. meshTools
diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C
index ea449f50e6dc5911a018b6e8df161300cbc45303..46d3fae44f04331aab33f15c8063d97b814ac2b3 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.C
+++ b/src/OpenFOAM/db/dictionary/dictionary.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -753,6 +753,24 @@ Foam::dictionary Foam::dictionary::subOrEmptyDict
 }
 
 
+const Foam::dictionary& Foam::dictionary::optionalSubDict
+(
+    const word& keyword
+) const
+{
+    const entry* entryPtr = lookupEntryPtr(keyword, false, true);
+
+    if (entryPtr)
+    {
+        return entryPtr->dict();
+    }
+    else
+    {
+        return *this;
+    }
+}
+
+
 Foam::wordList Foam::dictionary::toc() const
 {
     wordList keys(size());
diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H
index 7870d1ab3f1e2f0c1de6e06407bec8744509dd3b..81fdd99c799d672b2fde92267958cdcaa314676a 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.H
+++ b/src/OpenFOAM/db/dictionary/dictionary.H
@@ -419,6 +419,10 @@ public:
                 const bool mustRead = false
             ) const;
 
+            //- Find and return a sub-dictionary if found
+            //  otherwise return this dictionary
+            const dictionary& optionalSubDict(const word&) const;
+
             //- Return the table of contents
             wordList toc() const;
 
diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C
index a32972d21a13561fa1cd0318cda272cff1287a7a..4160f382ab809bf4e62e95189d297cba14bad754 100644
--- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C
+++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctionsM.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -206,44 +206,44 @@ TEMPLATE                                                                       \
 void Func                                                                      \
 (                                                                              \
     FieldField<Field, ReturnType>& f,                                          \
-    const FieldField<Field, Type1>& f1,                                        \
-    const Type2& s                                                             \
+    const Type1& s,                                                            \
+    const FieldField<Field, Type2>& f2                                         \
 )                                                                              \
 {                                                                              \
     forAll(f, i)                                                               \
     {                                                                          \
-        Func(f[i], f1[i], s);                                                  \
+        Func(f[i], s, f2[i]);                                                  \
     }                                                                          \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const FieldField<Field, Type1>& f1,                                        \
-    const Type2& s                                                             \
+    const Type1& s,                                                            \
+    const FieldField<Field, Type2>& f2                                         \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        FieldField<Field, Type1>::NewCalculatedType(f1)                        \
+        FieldField<Field, Type2>::NewCalculatedType(f2)                        \
     );                                                                         \
-    Func(tRes.ref(), f1, s);                                                   \
+    Func(tRes.ref(), s, f2);                                                   \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const tmp<FieldField<Field, Type1>>& tf1,                                  \
-    const Type2& s                                                             \
+    const Type1& s,                                                            \
+    const tmp<FieldField<Field, Type2>>& tf2                                   \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1)                 \
+        reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2)                 \
     );                                                                         \
-    Func(tRes.ref(), tf1(), s);                                                \
-    tf1.clear();                                                               \
+    Func(tRes.ref(), s, tf2());                                                \
+    tf2.clear();                                                               \
     return tRes;                                                               \
 }
 
@@ -254,44 +254,44 @@ TEMPLATE                                                                       \
 void Func                                                                      \
 (                                                                              \
     FieldField<Field, ReturnType>& f,                                          \
-    const Type1& s,                                                            \
-    const FieldField<Field, Type2>& f2                                         \
+    const FieldField<Field, Type1>& f1,                                        \
+    const Type2& s                                                             \
 )                                                                              \
 {                                                                              \
     forAll(f, i)                                                               \
     {                                                                          \
-        Func(f[i], s, f2[i]);                                                  \
+        Func(f[i], f1[i], s);                                                  \
     }                                                                          \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const Type1& s,                                                            \
-    const FieldField<Field, Type2>& f2                                         \
+    const FieldField<Field, Type1>& f1,                                        \
+    const Type2& s                                                             \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        FieldField<Field, Type2>::NewCalculatedType(f2)                        \
+        FieldField<Field, Type1>::NewCalculatedType(f1)                        \
     );                                                                         \
-    Func(tRes.ref(), s, f2);                                                   \
+    Func(tRes.ref(), f1, s);                                                   \
     return tRes;                                                               \
 }                                                                              \
                                                                                \
 TEMPLATE                                                                       \
 tmp<FieldField<Field, ReturnType>> Func                                        \
 (                                                                              \
-    const Type1& s,                                                            \
-    const tmp<FieldField<Field, Type2>>& tf2                                   \
+    const tmp<FieldField<Field, Type1>>& tf1,                                  \
+    const Type2& s                                                             \
 )                                                                              \
 {                                                                              \
     tmp<FieldField<Field, ReturnType>> tRes                                    \
     (                                                                          \
-        reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2)                 \
+        reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1)                 \
     );                                                                         \
-    Func(tRes.ref(), s, tf2());                                                \
-    tf2.clear();                                                               \
+    Func(tRes.ref(), tf1(), s);                                                \
+    tf1.clear();                                                               \
     return tRes;                                                               \
 }
 
diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
index 8b090ff275d344bbb0283acc068eae3ff9a4cb76..89105de6559b447850b62e97cb9ff7536bd96a1a 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -156,7 +156,7 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
     {
         if (i < Un-1)
         {
-            if (g != 0)
+            if (g*U_(i, l) != 0)
             {
                 for (label j=l; j<Un; j++)
                 {
@@ -199,7 +199,7 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
             U_(i, j) = 0;
         }
 
-        if (g != 0)
+        if (g*U_(i, i) != 0)
         {
             g = 1.0/g;
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
index c75f128cec65031599427722811dc938a460f4a7..a0492f66ee1684bc2591ff715e76110064b8cb71 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H
@@ -162,7 +162,7 @@ public:
             friend Ostream& operator<< <Type>
             (
                 Ostream& os,
-                const Function1<Type>& de
+                const Function1<Type>& func
             );
 
             //- Write in dictionary format
diff --git a/src/TurbulenceModels/compressible/Make/files b/src/TurbulenceModels/compressible/Make/files
index 53b83f60b9f1f76cd04ec8af55e9bf71f6cfaa9b..c7b6100132fc7e76581b4abf95517337c7750dae 100644
--- a/src/TurbulenceModels/compressible/Make/files
+++ b/src/TurbulenceModels/compressible/Make/files
@@ -2,7 +2,6 @@ compressibleTurbulenceModel.C
 turbulentFluidThermoModels/turbulentFluidThermoModels.C
 
 BCs = turbulentFluidThermoModels/derivedFvPatchFields
-$(BCs)/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
 $(BCs)/temperatureCoupledBase/temperatureCoupledBase.C
 $(BCs)/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
 $(BCs)/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
index ab1abe4657f9a378dd3bc4869e3ee490e1cc077d..3aa29ad806292d412dee811a6b76f1c3a8e0068c 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -27,6 +27,9 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
+#include "physicoChemicalConstants.H"
+
+using Foam::constant::physicoChemical::sigma;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -40,12 +43,11 @@ namespace Foam
         3
     >::names[] =
     {
-        "fixed_heat_flux",
-        "fixed_heat_transfer_coefficient",
-        "unknown"
+        "power",
+        "flux",
+        "coefficient"
     };
-
-} // End namespace Foam
+}
 
 const Foam::NamedEnum
 <
@@ -65,45 +67,21 @@ externalWallHeatFluxTemperatureFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
-    mode_(unknown),
-    q_(p.size(), 0.0),
-    h_(p.size(), 0.0),
-    Ta_(p.size(), 0.0),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(1),
-    QrName_("undefined-Qr"),
+    mode_(fixedHeatFlux),
+    Q_(0),
+    relaxation_(1),
+    emissivity_(0),
+    qrRelaxation_(1),
+    qrName_("undefined-qr"),
     thicknessLayers_(),
     kappaLayers_()
 {
-    refValue() = 0.0;
-    refGrad() = 0.0;
-    valueFraction() = 1.0;
+    refValue() = 0;
+    refGrad() = 0;
+    valueFraction() = 1;
 }
 
 
-Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
-externalWallHeatFluxTemperatureFvPatchScalarField
-(
-    const externalWallHeatFluxTemperatureFvPatchScalarField& ptf,
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
-)
-:
-    mixedFvPatchScalarField(ptf, p, iF, mapper),
-    temperatureCoupledBase(patch(), ptf),
-    mode_(ptf.mode_),
-    q_(ptf.q_, mapper),
-    h_(ptf.h_, mapper),
-    Ta_(ptf.Ta_, mapper),
-    QrPrevious_(ptf.QrPrevious_, mapper),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_),
-    thicknessLayers_(ptf.thicknessLayers_),
-    kappaLayers_(ptf.kappaLayers_)
-{}
-
-
 Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
 externalWallHeatFluxTemperatureFvPatchScalarField
 (
@@ -114,60 +92,67 @@ externalWallHeatFluxTemperatureFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), dict),
-    mode_(unknown),
-    q_(p.size(), 0.0),
-    h_(p.size(), 0.0),
-    Ta_(p.size(), 0.0),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none")),
+    mode_(operationModeNames.read(dict.lookup("mode"))),
+    Q_(0),
+    relaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
+    emissivity_(dict.lookupOrDefault<scalar>("emissivity", 0)),
+    qrRelaxation_(dict.lookupOrDefault<scalar>("qrRelaxation", 1)),
+    qrName_(dict.lookupOrDefault<word>("qr", "none")),
     thicknessLayers_(),
     kappaLayers_()
 {
-    if (dict.found("q") && !dict.found("h") && !dict.found("Ta"))
-    {
-        mode_ = fixedHeatFlux;
-        q_ = scalarField("q", dict, p.size());
-    }
-    else if (dict.found("h") && dict.found("Ta") && !dict.found("q"))
+    switch (mode_)
     {
-        mode_ = fixedHeatTransferCoeff;
-        h_ = scalarField("h", dict, p.size());
-        Ta_ = scalarField("Ta", dict, p.size());
-        if (dict.found("thicknessLayers"))
+        case fixedPower:
+        {
+            dict.lookup("Q") >> Q_;
 
-        if (dict.readIfPresent("thicknessLayers", thicknessLayers_))
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_ = scalarField("q", dict, p.size());
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
         {
-            dict.lookup("kappaLayers") >> kappaLayers_;
+            h_ = scalarField("h", dict, p.size());
+            Ta_ = scalarField("Ta", dict, p.size());
 
-            if (thicknessLayers_.size() != kappaLayers_.size())
+            if (dict.found("thicknessLayers"))
             {
-                FatalIOErrorInFunction(dict)
-                    << "\n number of layers for thicknessLayers and "
-                    << "kappaLayers must be the same"
-                    << "\n for patch " << p.name()
-                    << " of field " << internalField().name()
-                    << " in file " << internalField().objectPath()
-                    << exit(FatalIOError);
+                dict.lookup("thicknessLayers") >> thicknessLayers_;
+                dict.lookup("kappaLayers") >> kappaLayers_;
+
+                if (thicknessLayers_.size() != kappaLayers_.size())
+                {
+                    FatalIOErrorInFunction(dict)
+                        << "\n number of layers for thicknessLayers and "
+                        << "kappaLayers must be the same"
+                        << "\n for patch " << p.name()
+                        << " of field " << internalField().name()
+                        << " in file " << internalField().objectPath()
+                        << exit(FatalIOError);
+                }
             }
+
+            break;
         }
     }
-    else
-    {
-        FatalErrorInFunction
-            << "\n patch type '" << p.type()
-            << "' either q or h and Ta were not found '"
-            << "\n for patch " << p.name()
-            << " of field " << internalField().name()
-            << " in file " << internalField().objectPath()
-            << exit(FatalError);
-    }
 
     fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
 
-    if (dict.found("QrPrevious"))
+    if (qrName_ != "none")
     {
-        QrPrevious_ = scalarField("QrPrevious", dict, p.size());
+        if (dict.found("qrPrevious"))
+        {
+            qrPrevious_ = scalarField("qrPrevious", dict, p.size());
+        }
+        else
+        {
+            qrPrevious_.setSize(p.size(), 0);
+        }
     }
 
     if (dict.found("refValue"))
@@ -181,8 +166,56 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     {
         // Start from user entered data. Assume fixedValue.
         refValue() = *this;
-        refGrad() = 0.0;
-        valueFraction() = 1.0;
+        refGrad() = 0;
+        valueFraction() = 1;
+    }
+}
+
+
+Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
+externalWallHeatFluxTemperatureFvPatchScalarField
+(
+    const externalWallHeatFluxTemperatureFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    mixedFvPatchScalarField(ptf, p, iF, mapper),
+    temperatureCoupledBase(patch(), ptf),
+    mode_(ptf.mode_),
+    Q_(ptf.Q_),
+    relaxation_(ptf.relaxation_),
+    emissivity_(ptf.emissivity_),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_),
+    thicknessLayers_(ptf.thicknessLayers_),
+    kappaLayers_(ptf.kappaLayers_)
+{
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.autoMap(mapper);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.autoMap(mapper);
+            Ta_.autoMap(mapper);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.autoMap(mapper);
     }
 }
 
@@ -190,41 +223,47 @@ externalWallHeatFluxTemperatureFvPatchScalarField
 Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
 externalWallHeatFluxTemperatureFvPatchScalarField
 (
-    const externalWallHeatFluxTemperatureFvPatchScalarField& tppsf
+    const externalWallHeatFluxTemperatureFvPatchScalarField& ewhftpsf
 )
 :
-    mixedFvPatchScalarField(tppsf),
-    temperatureCoupledBase(tppsf),
-    mode_(tppsf.mode_),
-    q_(tppsf.q_),
-    h_(tppsf.h_),
-    Ta_(tppsf.Ta_),
-    QrPrevious_(tppsf.QrPrevious_),
-    QrRelaxation_(tppsf.QrRelaxation_),
-    QrName_(tppsf.QrName_),
-    thicknessLayers_(tppsf.thicknessLayers_),
-    kappaLayers_(tppsf.kappaLayers_)
+    mixedFvPatchScalarField(ewhftpsf),
+    temperatureCoupledBase(ewhftpsf),
+    mode_(ewhftpsf.mode_),
+    Q_(ewhftpsf.Q_),
+    q_(ewhftpsf.q_),
+    h_(ewhftpsf.h_),
+    Ta_(ewhftpsf.Ta_),
+    relaxation_(ewhftpsf.relaxation_),
+    emissivity_(ewhftpsf.emissivity_),
+    qrPrevious_(ewhftpsf.qrPrevious_),
+    qrRelaxation_(ewhftpsf.qrRelaxation_),
+    qrName_(ewhftpsf.qrName_),
+    thicknessLayers_(ewhftpsf.thicknessLayers_),
+    kappaLayers_(ewhftpsf.kappaLayers_)
 {}
 
 
 Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
 externalWallHeatFluxTemperatureFvPatchScalarField
 (
-    const externalWallHeatFluxTemperatureFvPatchScalarField& tppsf,
+    const externalWallHeatFluxTemperatureFvPatchScalarField& ewhftpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    mixedFvPatchScalarField(tppsf, iF),
-    temperatureCoupledBase(patch(), tppsf),
-    mode_(tppsf.mode_),
-    q_(tppsf.q_),
-    h_(tppsf.h_),
-    Ta_(tppsf.Ta_),
-    QrPrevious_(tppsf.QrPrevious_),
-    QrRelaxation_(tppsf.QrRelaxation_),
-    QrName_(tppsf.QrName_),
-    thicknessLayers_(tppsf.thicknessLayers_),
-    kappaLayers_(tppsf.kappaLayers_)
+    mixedFvPatchScalarField(ewhftpsf, iF),
+    temperatureCoupledBase(patch(), ewhftpsf),
+    mode_(ewhftpsf.mode_),
+    Q_(ewhftpsf.Q_),
+    q_(ewhftpsf.q_),
+    h_(ewhftpsf.h_),
+    Ta_(ewhftpsf.Ta_),
+    relaxation_(ewhftpsf.relaxation_),
+    emissivity_(ewhftpsf.emissivity_),
+    qrPrevious_(ewhftpsf.qrPrevious_),
+    qrRelaxation_(ewhftpsf.qrRelaxation_),
+    qrName_(ewhftpsf.qrName_),
+    thicknessLayers_(ewhftpsf.thicknessLayers_),
+    kappaLayers_(ewhftpsf.kappaLayers_)
 {}
 
 
@@ -236,10 +275,32 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::autoMap
 )
 {
     mixedFvPatchScalarField::autoMap(m);
-    q_.autoMap(m);
-    h_.autoMap(m);
-    Ta_.autoMap(m);
-    QrPrevious_.autoMap(m);
+
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.autoMap(m);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.autoMap(m);
+            Ta_.autoMap(m);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.autoMap(m);
+    }
 }
 
 
@@ -251,13 +312,34 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::rmap
 {
     mixedFvPatchScalarField::rmap(ptf, addr);
 
-    const externalWallHeatFluxTemperatureFvPatchScalarField& tiptf =
+    const externalWallHeatFluxTemperatureFvPatchScalarField& ewhftpsf =
         refCast<const externalWallHeatFluxTemperatureFvPatchScalarField>(ptf);
 
-    q_.rmap(tiptf.q_, addr);
-    h_.rmap(tiptf.h_, addr);
-    Ta_.rmap(tiptf.Ta_, addr);
-    QrPrevious_.rmap(tiptf.QrPrevious_, addr);
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.rmap(ewhftpsf.q_, addr);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.rmap(ewhftpsf.h_, addr);
+            Ta_.rmap(ewhftpsf.Ta_, addr);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.rmap(ewhftpsf.qrPrevious_, addr);
+    }
 }
 
 
@@ -268,65 +350,114 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
         return;
     }
 
-    const scalarField Tp(*this);
-    scalarField hp(patch().size(), 0.0);
+    const scalarField& Tp(*this);
 
-    scalarField Qr(Tp.size(), 0.0);
-    if (QrName_ != "none")
+    scalarField qr(Tp.size(), 0);
+    if (qrName_ != "none")
     {
-        Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+        qr =
+            qrRelaxation_
+           *patch().lookupPatchField<volScalarField, scalar>(qrName_)
+          + (1 - qrRelaxation_)*qrPrevious_;
 
-        Qr = QrRelaxation_*Qr + (1.0 - QrRelaxation_)*QrPrevious_;
-        QrPrevious_ = Qr;
+        qrPrevious_ = qr;
     }
 
     switch (mode_)
     {
+        case fixedPower:
+        {
+            refGrad() = (Q_/gSum(patch().magSf()) + qr)/kappa(Tp);
+            refValue() = 0;
+            valueFraction() = 0;
+
+            break;
+        }
         case fixedHeatFlux:
         {
-            refGrad() = (q_ + Qr)/kappa(Tp);
-            refValue() = 0.0;
-            valueFraction() = 0.0;
+            refGrad() = (q_ + qr)/kappa(Tp);
+            refValue() = 0;
+            valueFraction() = 0;
 
             break;
         }
         case fixedHeatTransferCoeff:
         {
-            scalar totalSolidRes = 0.0;
-            if (thicknessLayers_.size() > 0)
+            scalar totalSolidRes = 0;
+            if (thicknessLayers_.size())
             {
                 forAll(thicknessLayers_, iLayer)
                 {
                     const scalar l = thicknessLayers_[iLayer];
-                    if (kappaLayers_[iLayer] > 0.0)
+                    if (kappaLayers_[iLayer] > 0)
                     {
                         totalSolidRes += l/kappaLayers_[iLayer];
                     }
                 }
             }
-            hp = 1.0/(1.0/h_ + totalSolidRes);
+            scalarField hp(1/(1/h_ + totalSolidRes));
+
+            scalarField hpTa(hp*Ta_);
+
+            if (emissivity_ > 0)
+            {
+                // Evaluate the radiative flux to the environment
+                // from the surface temperature ...
+                if (totalSolidRes > 0)
+                {
+                    // ... including the effect of the solid wall thermal
+                    // resistance
+                    scalarField TpLambda(h_/(h_ + 1/totalSolidRes));
+                    scalarField Ts(TpLambda*Tp + (1 - TpLambda)*Ta_);
+                    scalarField lambdaTa4(pow4((1 - TpLambda)*Ta_));
+
+                    hp += emissivity_*sigma.value()*(pow4(Ts) - lambdaTa4)/Tp;
+                    hpTa += sigma.value()*(emissivity_*lambdaTa4 + pow4(Ta_));
+                }
+                else
+                {
+                    // ... if there is no solid wall thermal resistance use
+                    // the current wall temperature
+                    hp += emissivity_*sigma.value()*pow3(Tp);
+                    hpTa += sigma.value()*pow4(Ta_);
+                }
+            }
 
-            Qr /= Tp;
-            refGrad() = 0.0;
-            refValue() = hp*Ta_/(hp - Qr);
-            valueFraction() =
-                (hp - Qr)/((hp - Qr) + kappa(Tp)*patch().deltaCoeffs());
+            const scalarField kappaDeltaCoeffs
+            (
+                this->kappa(Tp)*patch().deltaCoeffs()
+            );
+
+            refGrad() = 0;
+
+            forAll(Tp, i)
+            {
+                if (qr[i] < 0)
+                {
+                    const scalar hpmqr = hp[i] - qr[i]/Tp[i];
+
+                    refValue()[i] = hpTa[i]/hpmqr;
+                    valueFraction()[i] = hpmqr/(hpmqr + kappaDeltaCoeffs[i]);
+                }
+                else
+                {
+                    refValue()[i] = (hpTa[i] + qr[i])/hp[i];
+                    valueFraction()[i] = hp[i]/(hp[i] + kappaDeltaCoeffs[i]);
+                }
+            }
 
             break;
         }
-        default:
-        {
-            FatalErrorInFunction
-                << "Illegal heat flux mode " << operationModeNames[mode_]
-                << exit(FatalError);
-        }
     }
 
+    valueFraction() = relaxation_*valueFraction() + (1 - relaxation_);
+    refValue() = relaxation_*refValue() + (1 - relaxation_)*Tp;
+
     mixedFvPatchScalarField::updateCoeffs();
 
     if (debug)
     {
-        scalar Q = gSum(kappa(Tp)*patch().magSf()*snGrad());
+        const scalar Q = gSum(kappa(Tp)*patch().magSf()*snGrad());
 
         Info<< patch().boundaryMesh().mesh().name() << ':'
             << patch().name() << ':'
@@ -346,37 +477,68 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write
     Ostream& os
 ) const
 {
-    mixedFvPatchScalarField::write(os);
-    temperatureCoupledBase::write(os);
+    fvPatchScalarField::write(os);
 
-    QrPrevious_.writeEntry("QrPrevious", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("relaxation")<< QrRelaxation_
-        << token::END_STATEMENT << nl;
+    os.writeKeyword("mode")
+        << operationModeNames[mode_] << token::END_STATEMENT << nl;
+    temperatureCoupledBase::write(os);
 
     switch (mode_)
     {
+        case fixedPower:
+        {
+            os.writeKeyword("Q")
+                << Q_ << token::END_STATEMENT << nl;
 
+            break;
+        }
         case fixedHeatFlux:
         {
             q_.writeEntry("q", os);
+
             break;
         }
         case fixedHeatTransferCoeff:
         {
             h_.writeEntry("h", os);
             Ta_.writeEntry("Ta", os);
-            thicknessLayers_.writeEntry("thicknessLayers", os);
-            kappaLayers_.writeEntry("kappaLayers", os);
+
+            if (relaxation_ < 1)
+            {
+                os.writeKeyword("relaxation")
+                    << relaxation_ << token::END_STATEMENT << nl;
+            }
+
+            if (emissivity_ > 0)
+            {
+                os.writeKeyword("emissivity")
+                    << emissivity_ << token::END_STATEMENT << nl;
+            }
+
+            if (thicknessLayers_.size())
+            {
+                thicknessLayers_.writeEntry("thicknessLayers", os);
+                kappaLayers_.writeEntry("kappaLayers", os);
+            }
+
             break;
         }
-        default:
-        {
-            FatalErrorInFunction
-                << "Illegal heat flux mode " << operationModeNames[mode_]
-                << abort(FatalError);
-        }
     }
+
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
+
+    if (qrName_ != "none")
+    {
+        os.writeKeyword("qrRelaxation")
+            << qrRelaxation_ << token::END_STATEMENT << nl;
+
+        qrPrevious_.writeEntry("qrPrevious", os);
+    }
+
+    refValue().writeEntry("refValue", os);
+    refGrad().writeEntry("refGradient", os);
+    valueFraction().writeEntry("valueFraction", os);
+    writeEntry("value", os);
 }
 
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
index a253a040f4ff83bab02441cc3561ece524c8c104..c9d1d6d51f14124b863ca2241956cc0138354ec9 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,37 +28,43 @@ Group
     grpThermoBoundaryConditions grpWallBoundaryConditions
 
 Description
-    This boundary condition supplies a heat flux condition for temperature
-    on an external wall. Optional thin thermal layer resistances can be
-    specified through thicknessLayers and kappaLayers entries for the
-    fixed heat transfer coefficient mode.
+    This boundary condition applies a heat flux condition to temperature
+    on an external wall in one of three modes:
 
-    The condition can operate in two modes:
-      - fixed heat transfer coefficient: supply h and Ta
+      - fixed power: supply Q
       - fixed heat flux: supply q
+      - fixed heat transfer coefficient: supply h and Ta
 
     where:
     \vartable
-        h  | heat transfer coefficient [W/m^2/K]
-        Ta | ambient temperature [K]
-        q  | heat flux [W/m^2]
+        Q  | Power [W]
+        q  | Heat flux [W/m^2]
+        h  | Heat transfer coefficient [W/m^2/K]
+        Ta | Ambient temperature [K]
     \endvartable
 
+    For heat transfer coefficient mode optional thin thermal layer resistances
+    can be specified through thicknessLayers and kappaLayers entries.
+
     The thermal conductivity \c kappa can either be retrieved from various
     possible sources, as detailed in the class temperatureCoupledBase.
 
 Usage
     \table
-        Property     | Description                 | Required | Default value
-        q            | heat flux [W/m^2]           | yes*     |
-        Ta           | ambient temperature [K]     | yes*     |
-        h            | heat transfer coefficient [W/m^2/K] | yes*|
-        thicknessLayers | list of thicknesses per layer [m] | yes |
-        kappaLayers  | list of thermal conductivities per layer [W/m/K] | yes |
-        Qr           | name of the radiative field | no | no
-        relaxation   | relaxation factor for radiative field | no | 1
-        kappaMethod  | inherited from temperatureCoupledBase | inherited |
-        kappa        | inherited from temperatureCoupledBase | inherited |
+    Property     | Description                 | Required | Default value
+    mode         | 'power', 'flux' or 'coefficient' | yes |
+    Q            | Power [W]                   | for mode 'power'     |
+    q            | Heat flux [W/m^2]           | for mode 'flux'     |
+    h            | Heat transfer coefficient [W/m^2/K] | for mode 'coefficent' |
+    Ta           | Ambient temperature [K]     | for mode 'coefficient' |
+    thicknessLayers | Layer thicknesses [m] | no |
+    kappaLayers  | Layer thermal conductivities [W/m/K] | no |
+    relaxation   | Relaxation for the wall temperature | no | 1
+    emissivity   | Surface emissivity for radiative flux to ambient | no | 0
+    qr           | Name of the radiative field | no | none
+    qrRelaxation | Relaxation factor for radiative field | no | 1
+    kappaMethod  | Inherited from temperatureCoupledBase | inherited |
+    kappa        | Inherited from temperatureCoupledBase | inherited |
     \endtable
 
     Example of the boundary condition specification:
@@ -66,24 +72,23 @@ Usage
     <patchName>
     {
         type            externalWallHeatFluxTemperature;
-        q               uniform 1000;
+
+        mode            coefficient;
+
         Ta              uniform 300.0;
         h               uniform 10.0;
         thicknessLayers (0.1 0.2 0.3 0.4);
         kappaLayers     (1 2 3 4);
-        value           uniform 300.0;
-        Qr              none;
-        relaxation      1;
-        kappaMethod           fluidThermo;
-        kappa       none;
+
+        kappaMethod     fluidThermo;
+
+        value           $internalField;
     }
     \endverbatim
 
-    Note:
-      - Only supply \c h and \c Ta, or \c q in the dictionary (see above)
-
 See also
     Foam::temperatureCoupledBase
+    Foam::mixedFvPatchScalarField
 
 SourceFiles
     externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -117,9 +122,9 @@ public:
         //- Operation mode enumeration
         enum operationMode
         {
+            fixedPower,                 //!< Fixed heat flux
             fixedHeatFlux,              //!< Fixed heat flux
             fixedHeatTransferCoeff,     //!< Fixed heat transfer coefficient
-            unknown
         };
 
         static const NamedEnum<operationMode, 3> operationModeNames;
@@ -132,23 +137,32 @@ private:
         //- Operation mode
         operationMode mode_;
 
-        //- Heat flux / [W/m2]
+        //- Heat power [W]
+        scalar Q_;
+
+        //- Heat flux [W/m2]
         scalarField q_;
 
-        //- Heat transfer coefficient / [W/m2K]
+        //- Heat transfer coefficient [W/m2K]
         scalarField h_;
 
-        //- Ambient temperature / [K]
+        //- Ambient temperature [K]
         scalarField Ta_;
 
-        //- Chache Qr for relaxation
-        scalarField QrPrevious_;
+        //- Relaxation for the wall temperature (thermal inertia)
+        scalar relaxation_;
+
+        //- Optional surface emissivity for radiative transfer to ambient
+        scalar emissivity_;
+
+        //- Cache qr for relaxation
+        scalarField qrPrevious_;
 
-        //- Relaxation for Qr
-        scalar QrRelaxation_;
+        //- Relaxation for qr
+        scalar qrRelaxation_;
 
         //- Name of the radiative heat flux
-        const word QrName_;
+        const word qrName_;
 
         //- Thickness of layers
         scalarList thicknessLayers_;
@@ -181,8 +195,8 @@ public:
         );
 
         //- Construct by mapping given
-        // externalWallHeatFluxTemperatureFvPatchScalarField
-        // onto a new patch
+        //  externalWallHeatFluxTemperatureFvPatchScalarField
+        //  onto a new patch
         externalWallHeatFluxTemperatureFvPatchScalarField
         (
             const externalWallHeatFluxTemperatureFvPatchScalarField&,
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
index 71c695e80de410e9e1d6ef6a9405a6f7040ae6e8..6ed6e4f72afb060258182e8c36403d934863d02a 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,9 +53,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(p.size()),
     solidDict_(),
     solidPtr_(nullptr),
-    QrPrevious_(p.size()),
-    QrRelaxation_(1),
-    QrName_("undefined-Qr")
+    qrPrevious_(p.size()),
+    qrRelaxation_(1),
+    qrName_("undefined-qr")
 {}
 
 
@@ -77,9 +77,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(ptf.Qs_, mapper),
     solidDict_(ptf.solidDict_),
     solidPtr_(ptf.solidPtr_),
-    QrPrevious_(ptf.QrPrevious_, mapper),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_)
+    qrPrevious_(ptf.qrPrevious_, mapper),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_)
 {}
 
 
@@ -100,9 +100,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(p.size(), 0),
     solidDict_(dict),
     solidPtr_(),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none"))
+    qrPrevious_(p.size(), 0.0),
+    qrRelaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
+    qrName_(dict.lookupOrDefault<word>("qr", "none"))
 {
     fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
 
@@ -116,9 +116,9 @@ thermalBaffle1DFvPatchScalarField
         Qs_ = scalarField("Qs", dict, p.size());
     }
 
-    if (dict.found("QrPrevious"))
+    if (dict.found("qrPrevious"))
     {
-        QrPrevious_ = scalarField("QrPrevious", dict, p.size());
+        qrPrevious_ = scalarField("qrPrevious", dict, p.size());
     }
 
     if (dict.found("refValue") && baffleActivated_)
@@ -154,9 +154,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(ptf.Qs_),
     solidDict_(ptf.solidDict_),
     solidPtr_(ptf.solidPtr_),
-    QrPrevious_(ptf.QrPrevious_),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_)
+    qrPrevious_(ptf.qrPrevious_),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_)
 {}
 
 
@@ -176,9 +176,9 @@ thermalBaffle1DFvPatchScalarField
     Qs_(ptf.Qs_),
     solidDict_(ptf.solidDict_),
     solidPtr_(ptf.solidPtr_),
-    QrPrevious_(ptf.QrPrevious_),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_)
+    qrPrevious_(ptf.qrPrevious_),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_)
 {}
 
 
@@ -364,15 +364,15 @@ void thermalBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
             patch().template lookupPatchField<volScalarField, scalar>(TName_);
 
 
-        scalarField Qr(Tp.size(), 0.0);
+        scalarField qr(Tp.size(), 0.0);
 
-        if (QrName_ != "none")
+        if (qrName_ != "none")
         {
-            Qr = patch().template lookupPatchField<volScalarField, scalar>
-                (QrName_);
+            qr = patch().template lookupPatchField<volScalarField, scalar>
+                (qrName_);
 
-            Qr = QrRelaxation_*Qr + (1.0 - QrRelaxation_)*QrPrevious_;
-            QrPrevious_ = Qr;
+            qr = qrRelaxation_*qr + (1.0 - qrRelaxation_)*qrPrevious_;
+            qrPrevious_ = qr;
         }
 
         tmp<scalarField> Ti = patchInternalField();
@@ -393,7 +393,7 @@ void thermalBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
 
         scalarField KDeltaSolid(kappas/baffleThickness());
 
-        scalarField alpha(KDeltaSolid - Qr/Tp);
+        scalarField alpha(KDeltaSolid - qr/Tp);
 
         valueFraction() = alpha/(alpha + myKDelta);
 
@@ -435,9 +435,9 @@ void thermalBaffle1DFvPatchScalarField<solidType>::write(Ostream& os) const
         solid().write(os);
     }
 
-    QrPrevious_.writeEntry("QrPrevious", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("relaxation")<< QrRelaxation_
+    qrPrevious_.writeEntry("qrPrevious", os);
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("relaxation")<< qrRelaxation_
         << token::END_STATEMENT << nl;
 }
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
index af6c701bc76c186a1030714b3137edf112f6fa12..f9491806fecfdde79494d021c10b96b524745e30 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
@@ -31,8 +31,8 @@ Description
     This BC solves a steady 1D thermal baffle.
 
     The solid properties are specify as dictionary. Optionaly radiative heat
-    flux (Qr) can be incorporated into the balance. Some under-relaxation might
-    be needed on Qr.  Baffle and solid properties need to be specified on the
+    flux (qr) can be incorporated into the balance. Some under-relaxation might
+    be needed on qr.  Baffle and solid properties need to be specified on the
     master side of the baffle.
 
 Usage
@@ -48,7 +48,7 @@ Usage
         thickness       uniform 0.005;  // thickness [m]
         Qs              uniform 100;    // heat flux [W/m2]
 
-        Qr              none;
+        qr              none;
         relaxation      1;
 
         // Solid thermo
@@ -78,7 +78,7 @@ Usage
         type   compressible::thermalBaffle1D<hConstSolidThermoPhysics>;
         samplePatch     <masterPatchName>;
 
-        Qr              none;
+        qr              none;
         relaxation      1;
     }
     \endverbatim
@@ -132,14 +132,14 @@ class thermalBaffle1DFvPatchScalarField
         //- Solid thermo
         mutable autoPtr<solidType> solidPtr_;
 
-        //- Cache Qr for relaxation
-        scalarField QrPrevious_;
+        //- Cache qr for relaxation
+        scalarField qrPrevious_;
 
-        //- Relaxation for Qr
-        scalar QrRelaxation_;
+        //- Relaxation for qr
+        scalar qrRelaxation_;
 
         //- Name of the radiative heat flux in local region
-        const word QrName_;
+        const word qrName_;
 
 
     // Private members
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
deleted file mode 100644
index 786ceae3e9d924008aa0aa3e56103a862b1ad1ff..0000000000000000000000000000000000000000
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
+++ /dev/null
@@ -1,262 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 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 "turbulentHeatFluxTemperatureFvPatchScalarField.H"
-#include "addToRunTimeSelectionTable.H"
-#include "fvPatchFieldMapper.H"
-#include "volFields.H"
-
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    // declare specialization within 'Foam' namespace
-    template<>
-    const char* NamedEnum
-    <
-        Foam::compressible::
-        turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceType,
-        2
-    >::names[] =
-    {
-        "power",
-        "flux"
-    };
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-
-namespace Foam
-{
-
-namespace compressible
-{
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-const NamedEnum
-<
-    turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceType,
-    2
-> turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceTypeNames_;
-
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF
-)
-:
-    fixedGradientFvPatchScalarField(p, iF),
-    temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
-    heatSource_(hsPower),
-    q_(p.size(), 0.0),
-    QrName_("undefinedQr")
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& ptf,
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
-)
-:
-    fixedGradientFvPatchScalarField(ptf, p, iF, mapper),
-    temperatureCoupledBase(patch(), ptf),
-    heatSource_(ptf.heatSource_),
-    q_(ptf.q_, mapper),
-    QrName_(ptf.QrName_)
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const dictionary& dict
-)
-:
-    fixedGradientFvPatchScalarField(p, iF),
-    temperatureCoupledBase(patch(), dict),
-    heatSource_(heatSourceTypeNames_.read(dict.lookup("heatSource"))),
-    q_("q", dict, p.size()),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none"))
-{
-    if (dict.found("value") && dict.found("gradient"))
-    {
-        fvPatchField<scalar>::operator=(Field<scalar>("value", dict, p.size()));
-        gradient() = Field<scalar>("gradient", dict, p.size());
-    }
-    else
-    {
-        // Still reading so cannot yet evaluate. Make up a value.
-        fvPatchField<scalar>::operator=(patchInternalField());
-        gradient() = 0.0;
-    }
-}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf
-)
-:
-    fixedGradientFvPatchScalarField(thftpsf),
-    temperatureCoupledBase(patch(), thftpsf),
-    heatSource_(thftpsf.heatSource_),
-    q_(thftpsf.q_),
-    QrName_(thftpsf.QrName_)
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf,
-    const DimensionedField<scalar, volMesh>& iF
-)
-:
-    fixedGradientFvPatchScalarField(thftpsf, iF),
-    temperatureCoupledBase(patch(), thftpsf),
-    heatSource_(thftpsf.heatSource_),
-    q_(thftpsf.q_),
-    QrName_(thftpsf.QrName_)
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::autoMap
-(
-    const fvPatchFieldMapper& m
-)
-{
-    fixedGradientFvPatchScalarField::autoMap(m);
-    q_.autoMap(m);
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::rmap
-(
-    const fvPatchScalarField& ptf,
-    const labelList& addr
-)
-{
-    fixedGradientFvPatchScalarField::rmap(ptf, addr);
-
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftptf =
-        refCast<const turbulentHeatFluxTemperatureFvPatchScalarField>
-        (
-            ptf
-        );
-
-    q_.rmap(thftptf.q_, addr);
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
-{
-    if (updated())
-    {
-        return;
-    }
-
-    const scalarField& Tp = *this;
-
-    scalarField qr(this->size(), 0.0);
-
-    //- Qr is negative going into the domain
-    if (QrName_ != "none")
-    {
-        qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
-    }
-
-    switch (heatSource_)
-    {
-        case hsPower:
-        {
-            const scalar Ap = gSum(patch().magSf());
-            gradient() = (q_/Ap + qr)/kappa(Tp);
-            break;
-        }
-        case hsFlux:
-        {
-            gradient() = (q_ + qr)/kappa(Tp);
-            break;
-        }
-        default:
-        {
-            FatalErrorInFunction
-                << "Unknown heat source type. Valid types are: "
-                << heatSourceTypeNames_ << nl << exit(FatalError);
-        }
-    }
-
-    fixedGradientFvPatchScalarField::updateCoeffs();
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::write
-(
-    Ostream& os
-) const
-{
-    fixedGradientFvPatchScalarField::write(os);
-    os.writeKeyword("heatSource") << heatSourceTypeNames_[heatSource_]
-        << token::END_STATEMENT << nl;
-    temperatureCoupledBase::write(os);
-    q_.writeEntry("q", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    writeEntry("value", os);
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-makePatchTypeField
-(
-    fvPatchScalarField,
-    turbulentHeatFluxTemperatureFvPatchScalarField
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
-} // End namespace Foam
-
-
-// ************************************************************************* //
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
index f2629e6f4057ff873d8d42c7b6967db96c872ad4..e8fad80ee703f74bd6b8e278da42bd3e51ee2e1f 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd
 -------------------------------------------------------------------------------
 License
@@ -49,8 +49,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
     TnbrName_("undefined-Tnbr"),
-    QrNbrName_("undefined-QrNbr"),
-    QrName_("undefined-Qr"),
+    qrNbrName_("undefined-qrNbr"),
+    qrName_("undefined-qr"),
     thicknessLayers_(0),
     kappaLayers_(0),
     contactRes_(0),
@@ -74,8 +74,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(psf, p, iF, mapper),
     temperatureCoupledBase(patch(), psf),
     TnbrName_(psf.TnbrName_),
-    QrNbrName_(psf.QrNbrName_),
-    QrName_(psf.QrName_),
+    qrNbrName_(psf.qrNbrName_),
+    qrName_(psf.qrName_),
     thicknessLayers_(psf.thicknessLayers_),
     kappaLayers_(psf.kappaLayers_),
     contactRes_(psf.contactRes_),
@@ -94,8 +94,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), dict),
     TnbrName_(dict.lookupOrDefault<word>("Tnbr", "T")),
-    QrNbrName_(dict.lookupOrDefault<word>("QrNbr", "none")),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none")),
+    qrNbrName_(dict.lookupOrDefault<word>("qrNbr", "none")),
+    qrName_(dict.lookupOrDefault<word>("qr", "none")),
     thicknessLayers_(0),
     kappaLayers_(0),
     contactRes_(0.0),
@@ -156,8 +156,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
     mixedFvPatchScalarField(psf, iF),
     temperatureCoupledBase(patch(), psf),
     TnbrName_(psf.TnbrName_),
-    QrNbrName_(psf.QrNbrName_),
-    QrName_(psf.QrName_),
+    qrNbrName_(psf.qrNbrName_),
+    qrName_(psf.qrName_),
     thicknessLayers_(psf.thicknessLayers_),
     kappaLayers_(psf.kappaLayers_),
     contactRes_(psf.contactRes_),
@@ -182,6 +182,7 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::updateCoeffs()
     UPstream::msgType() = oldTag+1;
 
     // Get the coupling information from the mappedPatchBase
+    const label patchi = patch().index();
     const mappedPatchBase& mpp =
         refCast<const mappedPatchBase>(patch().patch());
     const polyMesh& nbrMesh = mpp.sampleMesh();
@@ -219,17 +220,17 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::updateCoeffs()
 
     scalarField KDelta(kappa(Tp)*patch().deltaCoeffs());
 
-    scalarField Qr(Tp.size(), 0.0);
-    if (QrName_ != "none")
+    scalarField qr(Tp.size(), 0.0);
+    if (qrName_ != "none")
     {
-        Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+        qr = patch().lookupPatchField<volScalarField, scalar>(qrName_);
     }
 
-    scalarField QrNbr(Tp.size(), 0.0);
-    if (QrNbrName_ != "none")
+    scalarField qrNbr(Tp.size(), 0.0);
+    if (qrNbrName_ != "none")
     {
-        QrNbr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrNbrName_);
-        mpp.distribute(QrNbr);
+        qrNbr = nbrPatch.lookupPatchField<volScalarField, scalar>(qrNbrName_);
+        mpp.distribute(qrNbr);
     }
 
     // inertia therm
@@ -244,10 +245,15 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::updateCoeffs()
 
             if (thermo)
             {
+                const scalarField& ppn =
+                    thermo->p().boundaryField()[samplePatchi];
+                const scalarField& Tpn =
+                    thermo->T().boundaryField()[samplePatchi];
+
                 mCpDtNbr =
                 (
-                    thermo->Cp()().boundaryField()[nbrPatch.index()]
-                  * thermo->rho()().boundaryField()[nbrPatch.index()]
+                    thermo->Cp(ppn, Tpn, samplePatchi)
+                  * thermo->rho(samplePatchi)
                   / nbrPatch.deltaCoeffs()/dt
                 );
 
@@ -268,10 +274,12 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::updateCoeffs()
 
             if (thermo)
             {
+                const scalarField& pp = thermo->p().boundaryField()[patchi];
+
                 mCpDt =
                 (
-                    thermo->rho()().boundaryField()[patch().index()]
-                  * thermo->Cp()().boundaryField()[patch().index()]
+                    thermo->Cp(pp, Tp, patchi)
+                  * thermo->rho(patchi)
                   / patch().deltaCoeffs()/dt
                 );
             }
@@ -288,21 +296,20 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::updateCoeffs()
                 this->internalField().name()
             );
 
-        const fvPatchField<scalar>& TpOld =
-            T.oldTime().boundaryField()[patch().index()];
+        const fvPatchField<scalar>& TpOld = T.oldTime().boundaryField()[patchi];
 
         scalarField alpha(KDeltaNbr + mCpDt + mCpDtNbr);
 
         valueFraction() = alpha/(alpha + KDelta);
         scalarField c(KDeltaNbr*TcNbr + (mCpDt + mCpDtNbr)*TpOld);
         refValue() = c/alpha;
-        refGrad() = (Qr + QrNbr)/kappa(Tp);
+        refGrad() = (qr + qrNbr)/kappa(Tp);
     }
     else
     {
         valueFraction() = KDeltaNbr/(KDeltaNbr + KDelta);
         refValue() = TcNbr;
-        refGrad() = (Qr + QrNbr)/kappa(Tp);
+        refGrad() = (qr + qrNbr)/kappa(Tp);
     }
 
     mixedFvPatchScalarField::updateCoeffs();
@@ -337,8 +344,8 @@ void turbulentTemperatureRadCoupledMixedFvPatchScalarField::write
 {
     mixedFvPatchScalarField::write(os);
     os.writeKeyword("Tnbr")<< TnbrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("QrNbr")<< QrNbrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("qrNbr")<< qrNbrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
     os.writeEntry("thermalInertia", thermalInertia_);
 
     thicknessLayers_.writeEntry("thicknessLayers", os);
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
index 1efecea9d02923d5f4dcdcc5403e2b3aac4d8458..a28a965bf16aab40297cc9f0b2d8f82c9932af03 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd
 -------------------------------------------------------------------------------
 License
@@ -38,8 +38,8 @@ Usage
     \table
         Property     | Description             | Required    | Default value
         Tnbr         | name of the field    | no | T
-        QrNbr      | name of the radiative flux in the nbr region | no | none
-        Qr         | name of the radiative flux in this region | no | none
+        qrNbr      | name of the radiative flux in the nbr region | no | none
+        qr         | name of the radiative flux in this region | no | none
         thicknessLayers | list of thicknesses per layer [m] | no |
         kappaLayers  | list of thermal conductivites per layer [W/m/K] | no |
         kappaMethod  | inherited from temperatureCoupledBase | inherited |
@@ -53,8 +53,8 @@ Usage
     {
         type            compressible::turbulentTemperatureRadCoupledMixed;
         Tnbr            T;
-        QrNbr           Qr; // or none. Name of Qr field on neighbour region
-        Qr              Qr; // or none. Name of Qr field on local region
+        qrNbr           qr; // or none. Name of qr field on neighbour region
+        qr              qr; // or none. Name of qr field on local region
         thicknessLayers (0.1 0.2 0.3 0.4);
         kappaLayers     (1 2 3 4);
         thermalInertia  false/true;
@@ -103,10 +103,10 @@ class turbulentTemperatureRadCoupledMixedFvPatchScalarField
         const word TnbrName_;
 
          //- Name of the radiative heat flux in the neighbout region
-        const word QrNbrName_;
+        const word qrNbrName_;
 
         //- Name of the radiative heat flux in local region
-        const word QrName_;
+        const word qrName_;
 
         //- Thickness of layers
         scalarList thicknessLayers_;
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H.orig
similarity index 52%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
rename to src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H.orig
index a19de4fff8a8fc63988411b2ba45cf3d721bac28..9b725409dce0b690de15d9d3d39fbf2639c845b5 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H.orig
@@ -2,8 +2,13 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
+<<<<<<< HEAD
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd
+=======
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
+>>>>>>> d2a62df7c
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -22,12 +27,14 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::compressible::turbulentHeatFluxTemperatureFvPatchScalarField
+    Foam::compressible::
+        turbulentTemperatureRadCoupledMixedFvPatchScalarField
 
 Description
-    Fixed heat boundary condition to specify temperature gradient. Input
-    heat source either specified in terms of an absolute power [W], or as a
-    flux [W/m^2].
+    Mixed boundary condition for temperature and radiation heat transfer
+    to be used for in multiregion cases. Optional thin thermal layer
+    resistances can be specified through thicknessLayers and kappaLayers
+    entries.
 
     The thermal conductivity \c kappa can either be retrieved from various
     possible sources, as detailed in the class temperatureCoupledBase.
@@ -35,43 +42,49 @@ Description
 Usage
     \table
         Property     | Description             | Required    | Default value
-        heatSource   | 'power' [W] or 'flux' [W/m^2] | yes |
-        q            | heat power or flux field      | yes |
-        Qr           | name of the radiative flux field | yes |
-        value        | initial temperature value | no | calculated
-        gradient     | initial gradient value | no | 0.0
+        Tnbr         | name of the field    | no | T
+        qrNbr      | name of the radiative flux in the nbr region | no | none
+        qr         | name of the radiative flux in this region | no | none
+        thicknessLayers | list of thicknesses per layer [m] | no |
+        kappaLayers  | list of thermal conductivites per layer [W/m/K] | no |
         kappaMethod  | inherited from temperatureCoupledBase | inherited |
         kappa        | inherited from temperatureCoupledBase | inherited |
+        thermalInertia | Add thermal inertia to wall node | no | false
     \endtable
 
-    Note: If needed, both 'value' and 'gradient' must be defined to be used.
-
-    Example usage:
+    Example of the boundary condition specification:
     \verbatim
-    hotWall
+    <patchName>
     {
-        type            compressible::turbulentHeatFluxTemperature;
-        heatSource      flux;
-        q               uniform 10;
-        kappaMethod     fluidThermo;
-        kappa           none;
-        Qr              none;
+        type            compressible::turbulentTemperatureRadCoupledMixed;
+        Tnbr            T;
+        qrNbr           qr; // or none. Name of qr field on neighbour region
+        qr              qr; // or none. Name of qr field on local region
+        thicknessLayers (0.1 0.2 0.3 0.4);
+        kappaLayers     (1 2 3 4);
+        thermalInertia  false/true;
+        kappaMethod     lookup;
+        kappa           kappa;
+        value           uniform 300;
     }
     \endverbatim
 
+    Needs to be on underlying mapped(Wall)FvPatch.
+
 See also
     Foam::temperatureCoupledBase
 
 SourceFiles
-    turbulentHeatFluxTemperatureFvPatchScalarField.C
+    turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef turbulentHeatFluxTemperatureFvPatchScalarFields_H
-#define turbulentHeatFluxTemperatureFvPatchScalarFields_H
+#ifndef turbulentTemperatureRadCoupledMixedFvPatchScalarField_H
+#define turbulentTemperatureRadCoupledMixedFvPatchScalarField_H
 
-#include "fixedGradientFvPatchFields.H"
+#include "mixedFvPatchFields.H"
 #include "temperatureCoupledBase.H"
+#include "scalarList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -81,60 +94,55 @@ namespace compressible
 {
 
 /*---------------------------------------------------------------------------*\
-      Class turbulentHeatFluxTemperatureFvPatchScalarField Declaration
+    Class turbulentTemperatureRadCoupledMixedFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
-class turbulentHeatFluxTemperatureFvPatchScalarField
+class turbulentTemperatureRadCoupledMixedFvPatchScalarField
 :
-    public fixedGradientFvPatchScalarField,
+    public mixedFvPatchScalarField,
     public temperatureCoupledBase
 {
-public:
-
-    // Data types
-
-        //- Enumeration listing the possible hest source input modes
-        enum heatSourceType
-        {
-            hsPower,
-            hsFlux
-        };
+    // Private data
 
+        //- Name of field on the neighbour region
+        const word TnbrName_;
 
-private:
+         //- Name of the radiative heat flux in the neighbout region
+        const word qrNbrName_;
 
-    // Private data
+        //- Name of the radiative heat flux in local region
+        const word qrName_;
 
-        //- Heat source type names
-        static const NamedEnum<heatSourceType, 2> heatSourceTypeNames_;
+        //- Thickness of layers
+        scalarList thicknessLayers_;
 
-        //- Heat source type
-        heatSourceType heatSource_;
+        //- Conductivity of layers
+        scalarList kappaLayers_;
 
-        //- Heat power [W] or flux [W/m2]
-        scalarField q_;
+        //- Total contact resistance
+        scalar contactRes_;
 
-        //- Name of radiative in flux field
-        word QrName_;
+        //- Thermal inertia term
+        Switch thermalInertia_;
 
 
 public:
 
     //- Runtime type information
-    TypeName("compressible::turbulentHeatFluxTemperature");
+    TypeName("compressible::turbulentTemperatureRadCoupledMixed");
 
 
     // Constructors
 
         //- Construct from patch and internal field
-        turbulentHeatFluxTemperatureFvPatchScalarField
+        turbulentTemperatureRadCoupledMixedFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&
         );
 
         //- Construct from patch, internal field and dictionary
-        turbulentHeatFluxTemperatureFvPatchScalarField
+        turbulentTemperatureRadCoupledMixedFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
@@ -142,35 +150,33 @@ public:
         );
 
         //- Construct by mapping given
-        //  turbulentHeatFluxTemperatureFvPatchScalarField onto
-        //  a new patch
-        turbulentHeatFluxTemperatureFvPatchScalarField
+        //  turbulentTemperatureCoupledBaffleMixedFvPatchScalarField onto a
+        //  new patch
+        turbulentTemperatureRadCoupledMixedFvPatchScalarField
         (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&,
+            const
+            turbulentTemperatureRadCoupledMixedFvPatchScalarField&,
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
             const fvPatchFieldMapper&
         );
 
-        //- Construct as copy
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&
-        );
-
         //- Construct and return a clone
         virtual tmp<fvPatchScalarField> clone() const
         {
             return tmp<fvPatchScalarField>
             (
-                new turbulentHeatFluxTemperatureFvPatchScalarField(*this)
+                new turbulentTemperatureRadCoupledMixedFvPatchScalarField
+                (
+                    *this
+                )
             );
         }
 
         //- Construct as copy setting internal field reference
-        turbulentHeatFluxTemperatureFvPatchScalarField
+        turbulentTemperatureRadCoupledMixedFvPatchScalarField
         (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&,
+            const turbulentTemperatureRadCoupledMixedFvPatchScalarField&,
             const DimensionedField<scalar, volMesh>&
         );
 
@@ -182,7 +188,7 @@ public:
         {
             return tmp<fvPatchScalarField>
             (
-                new turbulentHeatFluxTemperatureFvPatchScalarField
+                new turbulentTemperatureRadCoupledMixedFvPatchScalarField
                 (
                     *this,
                     iF
@@ -193,29 +199,11 @@ public:
 
     // Member functions
 
-        // Mapping functions
-
-            //- Map (and resize as needed) from self given a mapping object
-            virtual void autoMap(const fvPatchFieldMapper&);
-
-            //- Reverse map the given fvPatchField onto this fvPatchField
-            virtual void rmap
-            (
-                const fvPatchScalarField&,
-                const labelList&
-            );
-
-
-        // Evaluation functions
-
-            //- Update the coefficients associated with the patch field
-            virtual void updateCoeffs();
-
-
-        // I-O
+        //- Update the coefficients associated with the patch field
+        virtual void updateCoeffs();
 
-            //- Write
-            virtual void write(Ostream&) const;
+        //- Write
+        virtual void write(Ostream&) const;
 };
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C b/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C
index c5cc7ebdb70fc625cd9e5604035ae4dd83030b6a..0ff62667376fb3ca531868269d617997899ed684 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESModel/LESModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,7 @@ void Foam::LESModel<BasicTurbulenceModel>::printCoeffs(const word& type)
 {
     if (printCoeffs_)
     {
-        Info<< type << "Coeffs" << coeffDict_ << endl;
+        Info<< coeffDict_.dictName() << coeffDict_ << endl;
     }
 }
 
@@ -67,7 +67,7 @@ Foam::LESModel<BasicTurbulenceModel>::LESModel
     LESDict_(this->subOrEmptyDict("LES")),
     turbulence_(LESDict_.lookup("turbulence")),
     printCoeffs_(LESDict_.lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(LESDict_.subOrEmptyDict(type + "Coeffs")),
+    coeffDict_(LESDict_.optionalSubDict(type + "Coeffs")),
 
     kMin_
     (
@@ -183,10 +183,7 @@ bool Foam::LESModel<BasicTurbulenceModel>::read()
         LESDict_ <<= this->subDict("LES");
         LESDict_.lookup("turbulence") >> turbulence_;
 
-        if (const dictionary* dictPtr = LESDict_.subDictPtr(type() + "Coeffs"))
-        {
-            coeffDict_ <<= *dictPtr;
-        }
+        coeffDict_ <<= LESDict_.optionalSubDict(type() + "Coeffs");
 
         delta_().read(LESDict_);
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C
index f23ee3f528173d03e1897902b4c435159b3dca71..c7e478ebce54e79e485a50be77f05ac393255667 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/IDDESDelta/IDDESDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -151,7 +151,11 @@ Foam::LESModels::IDDESDelta::IDDESDelta
     ),
     Cw_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cw", 0.15)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Cw",
+            0.15
+        )
     )
 {
     calcDelta();
@@ -162,7 +166,7 @@ Foam::LESModels::IDDESDelta::IDDESDelta
 
 void Foam::LESModels::IDDESDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     coeffsDict.readIfPresent<scalar>("Cw", Cw_);
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C
index d2b9f762b4a2589ed6c8f1038945ccb4783112d5..f09e9c240bb38c3640ff77581efe50e07bbae88b 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,13 +67,17 @@ Foam::LESModels::PrandtlDelta::PrandtlDelta
         (
             name,
             turbulence,
-            dict.subDict(type() + "Coeffs")
+            dict.optionalSubDict(type() + "Coeffs")
         )
     ),
     kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)),
     Cdelta_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cdelta", 0.158)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Cdelta",
+            0.158
+        )
     )
 {
     calcDelta();
@@ -84,7 +88,7 @@ Foam::LESModels::PrandtlDelta::PrandtlDelta
 
 void Foam::LESModels::PrandtlDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffDict(dict.optionalSubDict(type() + "Coeffs"));
 
     geometricDelta_().read(coeffDict);
     dict.readIfPresent<scalar>("kappa", kappa_);
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C
index 16bfdc9f3206c7ef7d3cd83b0662234c74e4d345..5b88de32cd8188175c7a49f71b74ba35b5641db1 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -94,7 +94,11 @@ Foam::LESModels::cubeRootVolDelta::cubeRootVolDelta
     LESdelta(name, turbulence),
     deltaCoeff_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("deltaCoeff", 1)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "deltaCoeff",
+            1
+        )
     )
 {
     calcDelta();
@@ -105,7 +109,7 @@ Foam::LESModels::cubeRootVolDelta::cubeRootVolDelta
 
 void Foam::LESModels::cubeRootVolDelta::read(const dictionary& dict)
 {
-    dict.subDict(type() + "Coeffs").readIfPresent<scalar>
+    dict.optionalSubDict(type() + "Coeffs").readIfPresent<scalar>
     (
         "deltaCoeff",
         deltaCoeff_
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C
index 6aa84d132f12e2debf6d52065064533bff10b529..351d0fb11f35f966a5bc3be5ca6965e71bd0c7a0 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/maxDeltaxyz/maxDeltaxyz.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -110,7 +110,11 @@ Foam::LESModels::maxDeltaxyz::maxDeltaxyz
     LESdelta(name, turbulence),
     deltaCoeff_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("deltaCoeff", 1)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "deltaCoeff",
+            1
+        )
     )
 {
     calcDelta();
@@ -121,7 +125,7 @@ Foam::LESModels::maxDeltaxyz::maxDeltaxyz
 
 void Foam::LESModels::maxDeltaxyz::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     coeffsDict.readIfPresent<scalar>("deltaCoeff", deltaCoeff_);
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
index b8877829117beac4d93dc6964bdf9acc3c200b79..a93225c735519947e7f4879ee822bf61edd6f820 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -156,12 +156,15 @@ Foam::LESModels::smoothDelta::smoothDelta
         (
             "geometricDelta",
             turbulence,
-            dict.subDict(type() + "Coeffs")
+            dict.optionalSubDict(type() + "Coeffs")
         )
     ),
     maxDeltaRatio_
     (
-        readScalar(dict.subDict(type() + "Coeffs").lookup("maxDeltaRatio"))
+        readScalar
+        (
+            dict.optionalSubDict(type() + "Coeffs").lookup("maxDeltaRatio")
+        )
     )
 {
     calcDelta();
@@ -172,7 +175,7 @@ Foam::LESModels::smoothDelta::smoothDelta
 
 void Foam::LESModels::smoothDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     geometricDelta_().read(coeffsDict);
     coeffsDict.lookup("maxDeltaRatio") >> maxDeltaRatio_;
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C
index 97effadd45a44facdba30df40364a88ffb11a801..05b1774c2f6c3a4af8c358c0067b325339c51cec 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESdeltas/vanDriestDelta/vanDriestDelta.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,21 +108,29 @@ Foam::LESModels::vanDriestDelta::vanDriestDelta
         (
             IOobject::groupName("geometricDelta", turbulence.U().group()),
             turbulence,
-            dict.subDict(type() + "Coeffs")
+            dict.optionalSubDict(type() + "Coeffs")
         )
     ),
     kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)),
     Aplus_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Aplus", 26.0)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Aplus",
+            26.0
+        )
     ),
     Cdelta_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cdelta", 0.158)
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
+        (
+            "Cdelta",
+            0.158
+        )
     ),
     calcInterval_
     (
-        dict.subDict(type() + "Coeffs").lookupOrDefault<label>
+        dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<label>
         (
             "calcInterval",
             1
@@ -137,7 +145,7 @@ Foam::LESModels::vanDriestDelta::vanDriestDelta
 
 void Foam::LESModels::vanDriestDelta::read(const dictionary& dict)
 {
-    const dictionary& coeffsDict(dict.subDict(type() + "Coeffs"));
+    const dictionary& coeffsDict(dict.optionalSubDict(type() + "Coeffs"));
 
     geometricDelta_().read(coeffsDict);
     dict.readIfPresent<scalar>("kappa", kappa_);
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C
index 467949de78a36f5ee7521382dc6e2b10efbc9bc5..f988138fe3ef6b65b73940bd1baf00c535c9ec12 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,7 +84,10 @@ Foam::anisotropicFilter::anisotropicFilter
 )
 :
     LESfilter(mesh),
-    widthCoeff_(readScalar(bd.subDict(type() + "Coeffs").lookup("widthCoeff"))),
+    widthCoeff_
+    (
+        readScalar(bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff"))
+    ),
     coeff_
     (
         IOobject
@@ -118,7 +121,7 @@ Foam::anisotropicFilter::anisotropicFilter
 
 void Foam::anisotropicFilter::read(const dictionary& bd)
 {
-    bd.subDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
+    bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C
index 11fea8654316d9f30947c3ac63df91f0d7a550d8..61934975af14fce6da0f1452fded9888ae9ac125 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,10 @@ Foam::laplaceFilter::laplaceFilter(const fvMesh& mesh, scalar widthCoeff)
 Foam::laplaceFilter::laplaceFilter(const fvMesh& mesh, const dictionary& bd)
 :
     LESfilter(mesh),
-    widthCoeff_(readScalar(bd.subDict(type() + "Coeffs").lookup("widthCoeff"))),
+    widthCoeff_
+    (
+        readScalar(bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff"))
+    ),
     coeff_
     (
         IOobject
@@ -86,7 +89,7 @@ Foam::laplaceFilter::laplaceFilter(const fvMesh& mesh, const dictionary& bd)
 
 void Foam::laplaceFilter::read(const dictionary& bd)
 {
-    bd.subDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
+    bd.optionalSubDict(type() + "Coeffs").lookup("widthCoeff") >> widthCoeff_;
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C b/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C
index d95f2bffb3f3f0e0d9d101d89a029b537aef2809..cc22f4d64cc2cdcdc5aff0ccd5ae2f55888c6626 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/RASModel/RASModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,7 @@ void Foam::RASModel<BasicTurbulenceModel>::printCoeffs(const word& type)
 {
     if (printCoeffs_)
     {
-        Info<< type << "Coeffs" << coeffDict_ << endl;
+        Info<< coeffDict_.dictName() << coeffDict_ << endl;
     }
 }
 
@@ -67,7 +67,7 @@ Foam::RASModel<BasicTurbulenceModel>::RASModel
     RASDict_(this->subOrEmptyDict("RAS")),
     turbulence_(RASDict_.lookup("turbulence")),
     printCoeffs_(RASDict_.lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(RASDict_.subOrEmptyDict(type + "Coeffs")),
+    coeffDict_(RASDict_.optionalSubDict(type + "Coeffs")),
 
     kMin_
     (
@@ -173,10 +173,7 @@ bool Foam::RASModel<BasicTurbulenceModel>::read()
         RASDict_ <<= this->subDict("RAS");
         RASDict_.lookup("turbulence") >> turbulence_;
 
-        if (const dictionary* dictPtr = RASDict_.subDictPtr(type() + "Coeffs"))
-        {
-            coeffDict_ <<= *dictPtr;
-        }
+        coeffDict_ <<= RASDict_.optionalSubDict(type() + "Coeffs");
 
         kMin_.readIfPresent(RASDict_);
         epsilonMin_.readIfPresent(RASDict_);
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
index 0bd0bb49e3a536ff441a93aed0b00b59b153d384..b91406d464a6cd75c6e6d8559e6b5789bd9bc385 100644
--- a/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
+++ b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,7 +33,7 @@ void Foam::laminarModel<BasicTurbulenceModel>::printCoeffs(const word& type)
 {
     if (printCoeffs_)
     {
-        Info<< type << "Coeffs" << coeffDict_ << endl;
+        Info<< coeffDict_.dictName() << coeffDict_ << endl;
     }
 }
 
@@ -67,7 +67,7 @@ Foam::laminarModel<BasicTurbulenceModel>::laminarModel
 
     laminarDict_(this->subOrEmptyDict("laminar")),
     printCoeffs_(laminarDict_.lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(laminarDict_.subOrEmptyDict(type + "Coeffs"))
+    coeffDict_(laminarDict_.optionalSubDict(type + "Coeffs"))
 {
     // Force the construction of the mesh deltaCoeffs which may be needed
     // for the construction of the derived models and BCs
@@ -170,14 +170,7 @@ bool Foam::laminarModel<BasicTurbulenceModel>::read()
     {
         laminarDict_ <<= this->subDict("laminar");
 
-        if
-        (
-            const dictionary* dictPtr =
-                laminarDict_.subDictPtr(type() + "Coeffs")
-        )
-        {
-            coeffDict_ <<= *dictPtr;
-        }
+        coeffDict_ <<= laminarDict_.optionalSubDict(type() + "Coeffs");
 
         return true;
     }
diff --git a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
index 4e767ca3ad18240b24ed1520de34d49a9a56692f..1208979f7d6e55cc85ffd0594336ed5057434f9e 100644
--- a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
+++ b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ Foam::reactionRateFlameArea::reactionRateFlameArea
     const combustionModel& combModel
 )
 :
-    coeffDict_(dict.subDict(modelType + "Coeffs")),
+    coeffDict_(dict.optionalSubDict(modelType + "Coeffs")),
     mesh_(mesh),
     combModel_(combModel),
     fuel_(dict.lookup("fuel")),
diff --git a/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C b/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
index c714bc5cd2552420d14369c32b27eb32770eb4fd..3ae9d31c297ba2b860452511b982cc935d6fa5e6 100644
--- a/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
+++ b/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,9 +56,12 @@ Foam::reactionRateFlameAreaModels::relaxation::relaxation
 )
 :
     reactionRateFlameArea(modelType, dict, mesh, combModel),
-    correlation_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
-    C_(readScalar(dict.subDict(typeName + "Coeffs").lookup("C"))),
-    alpha_(readScalar(dict.subDict(typeName + "Coeffs").lookup("alpha")))
+    correlation_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
+    C_(readScalar(dict.optionalSubDict(typeName + "Coeffs").lookup("C"))),
+    alpha_
+    (
+        readScalar(dict.optionalSubDict(typeName + "Coeffs").lookup("alpha"))
+    )
 {}
 
 
@@ -148,7 +151,7 @@ bool  Foam::reactionRateFlameAreaModels::relaxation::read
 {
     if (reactionRateFlameArea::read(dict))
     {
-        coeffDict_ = dict.subDict(typeName + "Coeffs");
+        coeffDict_ = dict.optionalSubDict(typeName + "Coeffs");
         coeffDict_.lookup("C") >> C_;
         coeffDict_.lookup("alpha") >> alpha_;
         correlation_.read
diff --git a/src/combustionModels/combustionModel/combustionModel.C b/src/combustionModels/combustionModel/combustionModel.C
index 3094e4bdff336335b8fb6949f1354a0ebdb3da65..1ed899200cb2abf071b8460493d75c525cb1cbfc 100644
--- a/src/combustionModels/combustionModel/combustionModel.C
+++ b/src/combustionModels/combustionModel/combustionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,7 +62,7 @@ Foam::combustionModel::combustionModel
     turbulencePtr_(),
     mesh_(mesh),
     active_(lookupOrDefault<Switch>("active", true)),
-    coeffs_(subDict(modelType + "Coeffs")),
+    coeffs_(optionalSubDict(modelType + "Coeffs")),
     modelType_(modelType),
     phaseName_(phaseName)
 {}
@@ -86,7 +86,7 @@ bool Foam::combustionModel::read()
     if (regIOobject::read())
     {
         this->lookup("active") >> active_;
-        coeffs_ = subDict(modelType_ + "Coeffs");
+        coeffs_ = optionalSubDict(modelType_ + "Coeffs");
         return true;
     }
     else
diff --git a/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.C b/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.C
index a26ea293d3e0606ad517077570a78634d9852648..737e27877e5647d927c91bd9249a3e96eb86ef42 100644
--- a/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.C
+++ b/src/dynamicFvMesh/dynamicInkJetFvMesh/dynamicInkJetFvMesh.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) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ Foam::dynamicInkJetFvMesh::dynamicInkJetFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     amplitude_(readScalar(dynamicMeshCoeffs_.lookup("amplitude"))),
     frequency_(readScalar(dynamicMeshCoeffs_.lookup("frequency"))),
diff --git a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
index 6ef49e4951f06db6817eaa1c008d10688d85ac2b..41f8d34b17d04c4a5fe796e912a66164c91f581a 100644
--- a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
+++ b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -191,7 +191,7 @@ void Foam::dynamicRefineFvMesh::readDict()
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     );
 
     List<Pair<word>> fluxVelocities = List<Pair<word>>
@@ -1248,7 +1248,7 @@ bool Foam::dynamicRefineFvMesh::update()
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     );
 
     label refineInterval = readLabel(refineDict.lookup("refineInterval"));
diff --git a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C
index fd2fb3a9d205923c49bd544d22ca6f1417fc3829..e57fc35ee5ea00e25e3a149b963fa2528dcf2a13 100644
--- a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C
+++ b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ Foam::solidBodyMotionFunction::solidBodyMotionFunction
 :
     SBMFCoeffs_
     (
-        SBMFCoeffs.subDict
+        SBMFCoeffs.optionalSubDict
         (
             word(SBMFCoeffs.lookup("solidBodyMotionFunction")) + "Coeffs"
         )
@@ -63,7 +63,7 @@ Foam::solidBodyMotionFunction::~solidBodyMotionFunction()
 
 bool Foam::solidBodyMotionFunction::read(const dictionary& SBMFCoeffs)
 {
-    SBMFCoeffs_ = SBMFCoeffs.subDict(type() + "Coeffs");
+    SBMFCoeffs_ = SBMFCoeffs.optionalSubDict(type() + "Coeffs");
 
     return true;
 }
diff --git a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
index a637338472ef24de23fdf26fa5ff6122fe9ed6db..37dd6f11a6f4d17fb37dd4c2d0ec938c8924fdf3 100644
--- a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
+++ b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -85,7 +85,7 @@ Foam::motionSolver::motionSolver
 :
     IOdictionary(stealRegistration(dict), dict),
     mesh_(mesh),
-    coeffDict_(dict.subDict(type + "Coeffs"))
+    coeffDict_(dict.optionalSubDict(type + "Coeffs"))
 {}
 
 
@@ -104,7 +104,12 @@ Foam::autoPtr<Foam::motionSolver> Foam::motionSolver::New
     const IOdictionary& solverDict
 )
 {
-    const word solverTypeName(solverDict.lookup("solver"));
+    const word solverTypeName
+    (
+        solverDict.found("motionSolver")
+      ? solverDict.lookup("motionSolver")
+      : solverDict.lookup("solver")
+    );
 
     Info<< "Selecting motion solver: " << solverTypeName << endl;
 
@@ -227,7 +232,7 @@ bool Foam::motionSolver::read()
 {
     if (regIOobject::read())
     {
-        coeffDict_ = subDict(type() + "Coeffs");
+        coeffDict_ = optionalSubDict(type() + "Coeffs");
 
         return true;
     }
diff --git a/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C b/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C
index 3e1c92a108a33ed42c2d5182c4ff65eb8e404747..9d7d2c2516ef1137cb90e1c9c9e69aa292bf9802 100644
--- a/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C
+++ b/src/finiteVolume/cfdTools/general/SRF/SRFModel/SRFModel/SRFModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,7 +61,7 @@ Foam::SRF::SRFModel::SRFModel
     mesh_(Urel_.mesh()),
     origin_("origin", dimLength, lookup("origin")),
     axis_(lookup("axis")),
-    SRFModelCoeffs_(subDict(type + "Coeffs")),
+    SRFModelCoeffs_(optionalSubDict(type + "Coeffs")),
     omega_(dimensionedVector("omega", dimless/dimTime, Zero))
 {
     // Normalise the axis
@@ -89,7 +89,7 @@ bool Foam::SRF::SRFModel::read()
         axis_ /= mag(axis_);
 
         // Re-read sub-model coeffs
-        SRFModelCoeffs_ = subDict(type() + "Coeffs");
+        SRFModelCoeffs_ = optionalSubDict(type() + "Coeffs");
 
         return true;
     }
diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
index d6ccd5c66b482bcd57a781594b2936e02d976da8..446c917a4ef95fe2c9e8d21fe1f5d7be1db72ac1 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,7 +52,7 @@ Foam::fv::option::option
     modelType_(modelType),
     mesh_(mesh),
     dict_(dict),
-    coeffs_(dict.subDict(modelType + "Coeffs")),
+    coeffs_(dict.optionalSubDict(modelType + "Coeffs")),
     active_(dict_.lookupOrDefault<Switch>("active", true)),
     fieldNames_(),
     applied_()
@@ -75,6 +75,13 @@ Foam::autoPtr<Foam::fv::option> Foam::fv::option::New
     Info<< indent
         << "Selecting finite volume options model type " << modelType << endl;
 
+    const_cast<Time&>(mesh.time()).libs().open
+    (
+        coeffs,
+        "libs",
+        dictionaryConstructorTablePtr_
+    );
+
     dictionaryConstructorTable::iterator cstrIter =
         dictionaryConstructorTablePtr_->find(modelType);
 
diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H
index 506a868bc5bdfeb47e1e99a3ca05d2c0d293fa8a..cab111236859da53856dd0f6b222b3eb04d5a66f 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
index 0f6c45322631cf68eced3c5b732abc3adf1374df..88730167b863aa358ce6d30ffa98ce916759c8e8 100644
--- a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
+++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,8 @@ void Foam::fv::option::writeData(Ostream& os) const
 bool Foam::fv::option::read(const dictionary& dict)
 {
     dict.readIfPresent("active", active_);
-    coeffs_ = dict.subDict(modelType_ + "Coeffs");
+
+    coeffs_ = dict.optionalSubDict(modelType_ + "Coeffs");
 
     return true;
 }
diff --git a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
index eb5550222e80d7c63f449db3f11413e8e5fc23ec..4ca403cdf07b49893ad3aa2cff7617ff0f288305 100644
--- a/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
+++ b/src/finiteVolume/cfdTools/general/porosityModel/porosityModel/porosityModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -97,7 +97,7 @@ Foam::porosityModel::porosityModel
     name_(name),
     mesh_(mesh),
     dict_(dict),
-    coeffs_(dict.subDict(modelType + "Coeffs")),
+    coeffs_(dict.optionalSubDict(modelType + "Coeffs")),
     active_(true),
     zoneName_(cellZoneName),
     cellZoneIDs_(),
@@ -105,7 +105,7 @@ Foam::porosityModel::porosityModel
 {
     if (zoneName_ == word::null)
     {
-        dict.lookup("active") >> active_;
+        dict.readIfPresent("active", active_);
         dict_.lookup("cellZone") >> zoneName_;
     }
 
@@ -258,8 +258,10 @@ bool Foam::porosityModel::writeData(Ostream& os) const
 
 bool Foam::porosityModel::read(const dictionary& dict)
 {
-    active_ = readBool(dict.lookup("active"));
-    coeffs_ = dict.subDict(type() + "Coeffs");
+    dict.readIfPresent("active", active_);
+
+    coeffs_ = dict.optionalSubDict(type() + "Coeffs");
+
     dict.lookup("cellZone") >> zoneName_;
     cellZoneIDs_ = mesh_.cellZones().findIndices(zoneName_);
 
diff --git a/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C b/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C
index b60f3f1aaddc2c16fe2d87c20f0f6e44f6830ea5..f0e1adadcae3278cf5b95d4ab4f600a1d41b80f0 100644
--- a/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -112,7 +112,7 @@ Foam::solverPerformance Foam::fvMatrix<Foam::scalar>::fvSolver::solve
     scalarField totalSource(fvMat_.source());
     fvMat_.addBoundarySource(totalSource, false);
 
-    // assign new solver controls
+    // Assign new solver controls
     solver_->read(solverControls);
 
     solverPerformance solverPerf = solver_->solve
diff --git a/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C b/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C
index 78f25810e5ce1b1bcd2921d25394c7ef63abe225..9e0826340a13519d2315a1aac98a03a83510cd94 100644
--- a/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C
+++ b/src/finiteVolume/fvMesh/wallDist/patchDistMethods/advectionDiffusion/advectionDiffusionPatchDistMethod.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::patchDistMethods::advectionDiffusion::advectionDiffusion
 )
 :
     patchDistMethod(mesh, patchIDs),
-    coeffs_(dict.subDict(type() + "Coeffs")),
+    coeffs_(dict.optionalSubDict(type() + "Coeffs")),
     pdmPredictor_
     (
         patchDistMethod::New
diff --git a/src/functionObjects/field/fieldAverage/fieldAverage.H b/src/functionObjects/field/fieldAverage/fieldAverage.H
index 66c7799f6394531658c7f58b54b51d90e4f87c83..e0de5ee6fbcd099acb643e42aa5e6fa7f65fa465 100644
--- a/src/functionObjects/field/fieldAverage/fieldAverage.H
+++ b/src/functionObjects/field/fieldAverage/fieldAverage.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -35,7 +35,7 @@ Description
     Fields are entered as a list of sub-dictionaries, which indicate the type of
     averages to perform, and can be updated during the calculation.  The current
     options include:
-    - \c mean: arithmetic mean:
+    - \c mean: arithmetic mean
         \f[
             \overline{x} = \frac{1}{N}\displaystyle\sum\limits_{i=0}^N x_i
         \f]
@@ -44,14 +44,14 @@ Description
             \overline{x'}^2 = \frac{1}{N}\displaystyle\sum\limits_{i=0}^N
             (x_i - \overline{x})^2
         \f]
-    - base: average over 'time', or 'iteration' (\f$N\f$ in the above)
-    - window: optional averaging window, specified in 'base' units
+    - \c base: average over 'time', or 'iteration' (\f$N\f$ in the above)
+    - \c window: optional averaging window, specified in 'base' units
 
     Average field names are constructed by concatenating the base field with
     the averaging type, e.g. when averaging field 'U', the resultant fields
     are:
-    - arithmetic mean field, UMean
-    - prime-squared field, UPrime2Mean
+    - arithmetic mean field, \c UMean
+    - prime-squared field, \c UPrime2Mean
 
     Information regarding the number of averaging steps, and total averaging
     time are written on a per-field basis to the
@@ -101,12 +101,12 @@ Usage
 
     Where the entries comprise:
     \table
-        Property          | Description           | Required    | Default value
-        type              | type name: fieldAverage | yes |
-        restartOnRestart  | Restart the averaging on restart | no | no
-        restartOnOutput   | Restart the averaging on output | no | no
-        periodicRestart   | Periodically restart the averaging | no | no
-        restartPeriod     | Periodic restart period | conditional |
+        Property          | Description               | Required | Default
+        type              | type name: fieldAverage              | yes |
+        restartOnRestart  | Restart the averaging on restart     | no  | no
+        restartOnOutput   | Restart the averaging on output      | no  | no
+        periodicRestart   | Periodically restart the averaging   | no  | no
+        restartPeriod     | Periodic restart period              | conditional |
         restartTime       | One-shot reset of the averaging | no | great
         fields            | list of fields and averaging options | yes |
         subRegion         | name of a sub-region such as a surface name | no |
diff --git a/src/functionObjects/field/streamLine/streamLine.H b/src/functionObjects/field/streamLine/streamLine.H
index f3639f0124990cbf2dd00a7ff03aac4a3b8fde83..f26af7c800784ef9f976f30195895d761f69712c 100644
--- a/src/functionObjects/field/streamLine/streamLine.H
+++ b/src/functionObjects/field/streamLine/streamLine.H
@@ -57,8 +57,7 @@ Usage
         bounds          (0.2 -10 -10)(0.22 10 10);
         cloudName       particleTracks;
 
-        seedSampleSet   uniform;
-        uniformCoeffs
+        seedSampleSet
         {
             type        uniform;
             axis        x;  //distance;
@@ -84,7 +83,7 @@ Usage
         seedSampleSet| Seeding method (see below)| yes       |
     \endtable
 
-    Where \c seedSampleSet is typically one of
+    Where \c seedSampleSet \c type is typically one of
     \plaintable
         uniform | uniform particle seeding
         cloud   | cloud of points
diff --git a/src/functionObjects/field/streamLine/streamLineBase.C b/src/functionObjects/field/streamLine/streamLineBase.C
index 89605eeb55b7907838a0a385b6c648db656d232b..305ab37636edd1f23aa71d964cc6b89a30cf56f8 100644
--- a/src/functionObjects/field/streamLine/streamLineBase.C
+++ b/src/functionObjects/field/streamLine/streamLineBase.C
@@ -561,18 +561,15 @@ bool Foam::functionObjects::streamLineBase::read(const dictionary& dict)
     //Info<< "    using interpolation " << interpolationScheme_ << endl;
 
     cloudName_ = dict.lookupOrDefault<word>("cloud", type());
-    dict.lookup("seedSampleSet") >> seedSet_;
-
-    const dictionary& coeffsDict = dict.subDict(seedSet_ + "Coeffs");
 
     sampledSetPtr_ = sampledSet::New
     (
-        seedSet_,
+        "seedSampleSet",
         mesh_,
         meshSearchMeshObject::New(mesh_),
-        coeffsDict
+        dict.subDict("seedSampleSet")
     );
-    coeffsDict.lookup("axis") >> sampledSetAxis_;
+    sampledSetAxis_ = sampledSetPtr_->axis();
 
     scalarFormatterPtr_ = writer<scalar>::New(dict.lookup("setFormat"));
     vectorFormatterPtr_ = writer<vector>::New(dict.lookup("setFormat"));
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
index 77dad3fb711df646aa61fece58917b295b64dbce..69d619cafb110329280065851542c719c3343013 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -57,8 +57,7 @@ Usage
         bounds          (0.2 -10 -10)(0.22 10 10);
         cloudName       particleTracks;
 
-        seedSampleSet   patchSeed;
-        patchSeedCoeffs
+        seedSampleSet
         {
             type        patchSeed;
             patches     (wall);
@@ -83,10 +82,10 @@ Usage
         seedSampleSet| Seeding method (see below)| yes       |
     \endtable
 
-    Where \c seedSampleSet is typically one of
+    Where \c seedSampleSet \c type is typically one of
     \plaintable
-        uniform | uniform particle seeding
-        cloud   | cloud of points
+        uniform   | uniform particle seeding
+        cloud     | cloud of points
         patchSeed | seeding via patch faces
         triSurfaceMeshPointSet | points according to a tri-surface mesh
     \endplaintable
diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
index 8d4486fc9eb54b765960ce0e8de8bf8b318993c4..e41c11de1e047a9201ace5a4f15ab2cabda9be55 100644
--- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
+++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -75,11 +75,11 @@ void Foam::functionObjects::wallHeatFlux::calcHeatFlux
         wallHeatFluxBf[patchi] = heatFluxBf[patchi];
     }
 
-    if (foundObject<volScalarField>("Qr"))
+    if (foundObject<volScalarField>("qr"))
     {
-        const volScalarField& Qr = lookupObject<volScalarField>("Qr");
+        const volScalarField& qr = lookupObject<volScalarField>("qr");
 
-        const volScalarField::Boundary& radHeatFluxBf = Qr.boundaryField();
+        const volScalarField::Boundary& radHeatFluxBf = qr.boundaryField();
 
         forAll(wallHeatFluxBf, patchi)
         {
@@ -279,7 +279,7 @@ bool Foam::functionObjects::wallHeatFlux::write()
                 << endl;
         }
 
-        Log << "    min/max(" << pp.name() << ") = "
+        Log << "    min/max/integ(" << pp.name() << ") = "
             << minHfp << ", " << maxHfp << ", " << integralHfp << endl;
     }
 
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C b/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
index bc33e0cc8c16548c88051a086a3739157a17689e..2bed22c26cce395ca3f3199a75e2fd878ec58364 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ Foam::displacementSBRStressFvMotionSolver::displacementSBRStressFvMotionSolver
     const IOdictionary& dict
 )
 :
-    displacementMotionSolver(mesh, dict, dict.lookup("solver")),
+    displacementMotionSolver(mesh, dict, typeName),
     fvMotionSolver(mesh),
     cellDisplacement_
     (
diff --git a/src/fvOptions/cellSetOption/cellSetOption.H b/src/fvOptions/cellSetOption/cellSetOption.H
index 050abd5f0a9d423e16f28fb4f29a3b882a25c672..6dd94847c7bae739fb22bc7f37fee181a3d75805 100644
--- a/src/fvOptions/cellSetOption/cellSetOption.H
+++ b/src/fvOptions/cellSetOption/cellSetOption.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -31,15 +31,12 @@ Description
         type            scalarExplicitSource    // Source type
         active          on;                     // on/off switch
 
-        scalarExplicitSourceCoeffs
-        {
-            timeStart       0.0;        // Start time
-            duration        1000.0;     // Duration
-            selectionMode   cellSet;    // cellSet, points, cellZone
-            .
-            .
-            .
-        }
+        timeStart       0.0;        // Start time
+        duration        1000.0;     // Duration
+        selectionMode   cellSet;    // cellSet, points, cellZone
+        .
+        .
+        .
     \endverbatim
 
 Note
diff --git a/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.H b/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.H
index 84da7ba1c490dedbe832f596f9d040f0115ccbe1..a7c702944bef9f530d18523fd05d08ada446b0dc 100644
--- a/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.H
+++ b/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,16 +37,13 @@ Usage
         type            fixedTemperatureConstraint;
         active          yes;
 
-        fixedTemperatureConstraintCoeffs
-        {
-            mode            uniform;      // uniform or lookup
+        mode            uniform;      // uniform or lookup
 
-            // For uniform option
-            temperature     constant 500; // fixed temperature with time [K]
+        // For uniform option
+        temperature     constant 500; // fixed temperature with time [K]
 
-            // For lookup option
-            // T            <Tname>;      // optional temperature field name
-        }
+        // For lookup option
+        // T            <Tname>;      // optional temperature field name
     }
     \endverbatim
 
diff --git a/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.H b/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.H
index 83e95f57fdc3c565491ea87dd534c6df4df1f85f..c7b5382b7f11681de4b3dfca891d80615518dd9c 100644
--- a/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.H
+++ b/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,15 +38,12 @@ Usage
         type            scalarFixedValueConstraint;
         active          yes;
 
-        scalarFixedValueConstraintCoeffs
+        selectionMode   cellZone;
+        cellZone        porosity;
+        fieldValues
         {
-            selectionMode   cellZone;
-            cellZone        porosity;
-            fieldValues
-            {
-                k           1;
-                epsilon     150;
-            }
+            k           1;
+            epsilon     150;
         }
     }
     \endverbatim
diff --git a/src/fvOptions/corrections/limitTemperature/limitTemperature.H b/src/fvOptions/corrections/limitTemperature/limitTemperature.H
index d81072db4e0138b68f8cb7f8da1b6e370b6f409f..b0657a168d286e621c529b0edf15c7f2e635cf0b 100644
--- a/src/fvOptions/corrections/limitTemperature/limitTemperature.H
+++ b/src/fvOptions/corrections/limitTemperature/limitTemperature.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -39,12 +39,9 @@ Usage
         type            limitTemperature;
         active          yes;
 
-        limitTemperatureCoeffs
-        {
-            selectionMode   all;
-            min             200;
-            max             500;
-        }
+        selectionMode   all;
+        min             200;
+        max             500;
     }
     \endverbatim
 
diff --git a/src/fvOptions/corrections/limitVelocity/limitVelocity.H b/src/fvOptions/corrections/limitVelocity/limitVelocity.H
index b1c3f1b0482a9f3b8513faca8ececa9cb523160e..15ff1a8b6a6f589444a1733c807b763b4fba3614 100644
--- a/src/fvOptions/corrections/limitVelocity/limitVelocity.H
+++ b/src/fvOptions/corrections/limitVelocity/limitVelocity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,11 +35,8 @@ Usage
         type            limitVelocity;
         active          yes;
 
-        limitVelocityCoeffs
-        {
-            selectionMode   all;
-            max             100;
-        }
+        selectionMode   all;
+        max             100;
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
index 845c1a3294be9e489acd0927798068f6a4ded899..c8fb363781f4b9c3cd24c97ebec021dff8f81140 100644
--- a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
+++ b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,15 +50,12 @@ Description
 Usage
     Example usage:
     \verbatim
-    actuationDiskSourceCoeffs
-    {
-        fields          (U);        // names of fields to apply source
-        diskDir         (-1 0 0);   // disk direction
-        Cp              0.1;        // power coefficient
-        Ct              0.5;        // thrust coefficient
-        diskArea        5.0;        // disk area
-        upstreamPoint   (0 0 0);    // upstream point
-    }
+    fields          (U);        // names of fields to apply source
+    diskDir         (-1 0 0);   // disk direction
+    Cp              0.1;        // power coefficient
+    Ct              0.5;        // thrust coefficient
+    diskArea        5.0;        // disk area
+    upstreamPoint   (0 0 0);    // upstream point
     \endverbatim
 
 
diff --git a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
index 7ea680dad8a1f0ac20d2afa2cd3e15cdf9631b46..192290494d51f52f1d38411d534cf301a5718bea 100644
--- a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
+++ b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,10 +34,7 @@ Description
 Usage
     Example usage:
     \verbatim
-    buoyancyEnergyCoeffs
-    {
-        fields          (h);                    // Name of energy field
-    }
+    fields          (h);                    // Name of energy field
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
index 8ddba4676d7e8684c975137d8bdc5bbec7b69f19..6bc681d03451a081da3d61fcd6d0a809d508a007 100644
--- a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
+++ b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,10 +34,7 @@ Description
 Usage
     Example usage:
     \verbatim
-    buoyancyForceCoeffs
-    {
-        fields          (U);                    // Name of velocity field
-    }
+    fields          (U);                    // Name of velocity field
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
index 69cb7bcf1ffdcdd4bb40b8d730e69508b61a9892..8893abb3e57c15324de1d6abae9f8bfb72ac9396 100644
--- a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
+++ b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.H
@@ -70,18 +70,15 @@ Usage
         type            effectivenessHeatExchangerSource;
         active          yes;
 
-        effectivenessHeatExchangerSourceCoeffs
-        {
-            selectionMode   cellZone;
-            cellZone        porosity;
-
-            secondaryMassFlowRate   1.0;
-            secondaryInletT         336;
-            // primaryInletT           293;  // Constrain to this T if present
-            faceZone                facesZoneInletOriented;
-            outOfBounds             clamp;
-            fileName                "effTable";
-        }
+        selectionMode   cellZone;
+        cellZone        porosity;
+
+        secondaryMassFlowRate   1.0;
+        secondaryInletT 336;
+        // primaryInletT 293;  // Constrain to this T if present
+        faceZone        facesZoneInletOriented;
+        outOfBounds     clamp;
+        file            "effTable";
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
index dfa5b96ea74945d06de7a37fbc120feb3f83673c..5f2cb2648cc3972ec51101b567bb6ace0153b5d8 100644
--- a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
+++ b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,13 +36,10 @@ Description
 Usage
     Example usage:
     \verbatim
-    meanVelocityForceCoeffs
-    {
-        selectionMode   all;                    // Apply force to all cells
-        fields          (U);                    // Name of velocity field
-        Ubar            (10.0 0 0);             // Desired mean velocity
-        relaxation      0.2;                    // Optional relaxation factor
-    }
+    selectionMode   all;                    // Apply force to all cells
+    fields          (U);                    // Name of velocity field
+    Ubar            (10.0 0 0);             // Desired mean velocity
+    relaxation      0.2;                    // Optional relaxation factor
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H b/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
index 7413cd497e1e1531750e26161d6aee2961add30b..75b175def6cd011c19c7df36f8e8f3ebc144a0ba 100644
--- a/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
+++ b/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -33,14 +33,11 @@ Description
 Usage
     Example usage:
     \verbatim
-    patchMeanVelocityForceCoeffs
-    {
-        selectionMode   all;                    // Apply force to all cells
-        fields          (U);                    // Name of velocity field
-        patch           inlet;                  // Name of the patch
-        Ubar            (10.0 0 0);             // Desired mean velocity
-        relaxation      0.2;                    // Optional relaxation factor
-    }
+    selectionMode   all;                    // Apply force to all cells
+    fields          (U);                    // Name of velocity field
+    patch           inlet;                  // Name of the patch
+    Ubar            (10.0 0 0);             // Desired mean velocity
+    relaxation      0.2;                    // Optional relaxation factor
     \endverbatim
 
 SourceFiles
diff --git a/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H b/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H
index 8dc38312d679354dbc36883b1ad2ab7cf6089c03..0c0ab8dd9f7079da2354569e1ec40cc4fc0a8f70 100644
--- a/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H
+++ b/src/fvOptions/sources/derived/radialActuationDiskSource/radialActuationDiskSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,16 +56,13 @@ Description
 Usage
     Example usage:
     \verbatim
-    actuationDiskSourceCoeffs
-    {
-        fields          (U);        // names of fields to apply source
-        diskDir         (-1 0 0);   // disk direction
-        Cp              0.1;        // power coefficient
-        Ct              0.5;        // thrust coefficient
-        diskArea        5.0;        // disk area
-        coeffs          (0.1 0.5 0.01); // radial distribution coefficients
-        upstreamPoint   (0 0 0);    // upstream point
-    }
+    fields          (U);        // names of fields to apply source
+    diskDir         (-1 0 0);   // disk direction
+    Cp              0.1;        // power coefficient
+    Ct              0.5;        // thrust coefficient
+    diskArea        5.0;        // disk area
+    coeffs          (0.1 0.5 0.01); // radial distribution coefficients
+    upstreamPoint   (0 0 0);    // upstream point
     \endverbatim
 
 
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
index db6b8db3758a5242a3960044b643abb5646b44e4..2ff034676ad9902e773351ebc92590daaf181f37 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
+++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,8 +36,6 @@ Description
 Usage
     Example usage:
     \verbatim
-    rotorDiskSourceCoeffs
-    {
         fields          (U);    // names of fields on which to apply source
         nBlades         3;      // number of blades
         tipEffect       0.96;   // normalised radius above which lift = 0
@@ -76,7 +74,6 @@ Usage
                 ...
             }
         }
-    }
     \endverbatim
 
     Where:
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.C b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.C
index 9126ee841d42cbad4f85a063a0613d79c58c8fb9..bfd9f3d9352858d9759108e1ceb737f4cc7aec2c 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.C
+++ b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/trimModel/trimModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,7 +60,7 @@ Foam::trimModel::~trimModel()
 
 void Foam::trimModel::read(const dictionary& dict)
 {
-    coeffs_ = dict.subDict(name_ + "Coeffs");
+    coeffs_ = dict.optionalSubDict(name_ + "Coeffs");
 }
 
 
diff --git a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C
index 859ef24a2b1d6366c3faaa59d5da8704bcebe03f..7867633b8dfdf4407efee3bfa442f88a674d601a 100644
--- a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C
+++ b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -243,7 +243,7 @@ Foam::fv::solidificationMeltingSource::solidificationMeltingSource
         }
     }
 
-    applied_.setSize(2, false);
+    applied_.setSize(fieldNames_.size(), false);
 }
 
 
diff --git a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H
index be21eec8ce4bfb16619b7c6efd7cbbbdfeab3c12..d1ea36c07cfa6bdf78cdc5b3bd756a42b9554c31 100644
--- a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H
+++ b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,17 +55,14 @@ Usage
         type            solidificationMeltingSource;
         active          yes;
 
-        solidificationMeltingSourceCoeffs
-        {
-            selectionMode   cellZone;
-            cellZone        iceZone;
-
-            Tmelt           273;
-            L               334000;
-            thermoMode      thermo;
-            beta            50e-6;
-            rhoRef          800;
-        }
+        selectionMode   cellZone;
+        cellZone        iceZone;
+
+        Tmelt           273;
+        L               334000;
+        thermoMode      thermo;
+        beta            50e-6;
+        rhoRef          800;
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H b/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H
index 9c113f59a92242d35dd4b9af203c18a0119ac946..0a9b56195538b74249c0023265e8c5c0d00fb313 100644
--- a/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H
+++ b/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -38,10 +38,7 @@ Usage
         type            tabulatedAccelerationSource;
         active          yes;
 
-        tabulatedAccelerationSourceCoeffs
-        {
-            timeDataFileName "constant/acceleration-terms.dat";
-        }
+        timeDataFileName "constant/acceleration-terms.dat";
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H b/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H
index 73e5f3a56e2b4db7a1ff20f81535477c1c582fca..9b22b05bc62869ac6421a40b8cc87cb0408a32ba 100644
--- a/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H
+++ b/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,14 +45,11 @@ Description
     Example of the source specification:
 
     \verbatim
-    <Type>SemiImplicitSourceCoeffs
+    volumeMode      absolute; // specific
+    injectionRateSuSp
     {
-        volumeMode      absolute; // specific
-        injectionRateSuSp
-        {
-            k           (30.7 0);
-            epsilon     (1.5  0);
-        }
+        k           (30.7 0);
+        epsilon     (1.5  0);
     }
     \endverbatim
 
diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModel.C b/src/lagrangian/distributionModels/distributionModel/distributionModel.C
index 20a5cf82a4aef589f2318d64c309b52ab6c12873..ff5d8599427bb64b5228412fc2d2655f03977704 100644
--- a/src/lagrangian/distributionModels/distributionModel/distributionModel.C
+++ b/src/lagrangian/distributionModels/distributionModel/distributionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,17 +29,14 @@ License
 
 namespace Foam
 {
-    namespace distributionModels
-    {
-        defineTypeNameAndDebug(distributionModel, 0);
-        defineRunTimeSelectionTable(distributionModel, dictionary);
-    }
+    defineTypeNameAndDebug(distributionModel, 0);
+    defineRunTimeSelectionTable(distributionModel, dictionary);
 }
 
 
 // * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
 
-void Foam::distributionModels::distributionModel::check() const
+void Foam::distributionModel::check() const
 {
     if (minValue() < 0)
     {
@@ -62,7 +59,7 @@ void Foam::distributionModels::distributionModel::check() const
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::distributionModels::distributionModel::distributionModel
+Foam::distributionModel::distributionModel
 (
     const word& name,
     const dictionary& dict,
@@ -74,7 +71,7 @@ Foam::distributionModels::distributionModel::distributionModel
 {}
 
 
-Foam::distributionModels::distributionModel::distributionModel
+Foam::distributionModel::distributionModel
 (
     const distributionModel& p
 )
@@ -86,7 +83,7 @@ Foam::distributionModels::distributionModel::distributionModel
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::distributionModels::distributionModel::~distributionModel()
+Foam::distributionModel::~distributionModel()
 {}
 
 
diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModel.H b/src/lagrangian/distributionModels/distributionModel/distributionModel.H
index 5e712e10eca22ea19d97b72b6369ef3641496ca9..04ab693482188824c7db8a24f3e7b63b8260f300 100644
--- a/src/lagrangian/distributionModels/distributionModel/distributionModel.H
+++ b/src/lagrangian/distributionModels/distributionModel/distributionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,8 +61,6 @@ SourceFiles
 
 namespace Foam
 {
-namespace distributionModels
-{
 
 /*---------------------------------------------------------------------------*\
                      Class distributionModel Declaration
@@ -155,7 +153,6 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace distributionModels
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C b/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C
index 3e3f4ba2496c097a593d6de0b6385f34d8eda8ce..49b6126c96e2b19652210d59f3edb64809c71864 100644
--- a/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C
+++ b/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -27,8 +27,7 @@ License
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::distributionModels::distributionModel>
-Foam::distributionModels::distributionModel::New
+Foam::autoPtr<Foam::distributionModel> Foam::distributionModel::New
 (
     const dictionary& dict,
     cachedRandom& rndGen
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C
index ffa8163dffd7b6d63648b8f82cd84d05d36beccc..a1b8efbefce63796b7c22bf463e78b9a8957beeb 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -179,7 +179,7 @@ Foam::CellZoneInjection<CloudType>::CellZoneInjection
     U0_(this->coeffDict().lookup("U0")),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
         )
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H
index 38ac9a0f061f988a43619127a78470b7b2af7b91..0e7b3d401e27a92de6f27a38904717b83431db22 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,7 +92,7 @@ class CellZoneInjection
         const vector U0_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
     // Private Member Functions
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
index 9406a3d9dca749141eb3d040fd256e057bf81e5e..3a50c5bc47ba261a0f5d440c06eb705300b57bf6 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -88,7 +88,7 @@ Foam::ConeInjection<CloudType>::ConeInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
         )
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
index ff2a7ab01d99b20e6f46f2df56ce011230895fbd..1f5ae584338b6acc85b447fcdc3eac34274a4e1c 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -100,7 +100,7 @@ class ConeInjection
         const TimeFunction1<scalar> thetaOuter_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
         //- Number of parcels per injector already injected
         mutable label nInjected_;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
index 208bc3511bb179ec927efae9fb282e4030587ca8..4cedfad5ea326fda91d5ad569e07263219873f58 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C
@@ -146,7 +146,7 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
index 5412745fea8c4ddafd566111b1496dc7599297ab..f84b9fd0b728b718c5b5dd9186905a9d4fe8886f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -152,7 +152,7 @@ private:
         const TimeFunction1<scalar> thetaOuter_;
 
         //- Parcel size PDF model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
         // Tangential vectors to the direction vector
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
index d39184b4734291773b5cb38ec67abab97022bc8e..70daf04625d11a17cafd6210a0004dcced85b84d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -79,7 +79,7 @@ Foam::FieldActivatedInjection<CloudType>::FieldActivatedInjection
     diameters_(positions_.size()),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
index 24740ef063a87adae342e45738e1ddcf3d541fc7..c4ec33c2785e56c1b92d102ef459cc8a384cfd0e 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -115,7 +115,7 @@ class FieldActivatedInjection
             scalarList diameters_;
 
             //- Parcel size distribution model
-            const autoPtr<distributionModels::distributionModel>
+            const autoPtr<distributionModel>
                 sizeDistribution_;
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
index 4fd95be5a6e1e1769aca0c7deebe98b1e26915db..dd33b815bcfb877eba3c08da19f0cc0eeef2607a 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C
@@ -72,7 +72,7 @@ Foam::InflationInjection<CloudType>::InflationInjection
     dSeed_(SMALL),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H
index 2529b3deaa6acbd8535d35c86b8b4d4b0503abdc..13d4843f94bad9f3e148a6e1db8e9c35ec5fda80 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -111,7 +111,7 @@ class InflationInjection
         scalar dSeed_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
 public:
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
index da1ab62839e76e760fc4f51b7b014a58d497fc70..4898bc12da568e1cda7c95f57a8bd707d544dd13 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -59,7 +59,7 @@ Foam::ManualInjection<CloudType>::ManualInjection
     U0_(this->coeffDict().lookup("U0")),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
index e8e2e50a5ce23852be6db5cde0a73776350c5599..ea2d0752dfa7d928faddcd3cd3fb8c13a4b51288 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -90,7 +90,7 @@ class ManualInjection
         const vector U0_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
         //- Flag to suppress errors if particle injection site is out-of-bounds
         Switch ignoreOutOfBounds_;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C
index c1fd0f678e0cb64ecc6c7333ebde0fe4ba3619f0..58d62059a1004df03ffafb02e4121a8068c06e59 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -59,7 +59,7 @@ Foam::PatchFlowRateInjection<CloudType>::PatchFlowRateInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H
index 33adae4528cdd13e107de4163d3cb315275510e2..2e9f1e71a84a191aebb683e44bbdf22aaa67bd1b 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,7 +89,7 @@ class PatchFlowRateInjection
         const scalar parcelConcentration_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
 public:
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C
index 13227e34ef4875770e6848976951da7a7fd3b2c9..ebb1f9cc654c49db2def0bfaec2fc4c49ed1167c 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::PatchInjection<CloudType>::PatchInjection
     ),
     sizeDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             this->coeffDict().subDict("sizeDistribution"),
             owner.rndGen()
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H
index 7eec81c2b415e6a1caf51c82b8ba7b0be2d261b1..12267aef30b999990af7dc73a2f47c2ca21fdbbd 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -87,7 +87,7 @@ class PatchInjection
         const TimeFunction1<scalar> flowRateProfile_;
 
         //- Parcel size distribution model
-        const autoPtr<distributionModels::distributionModel> sizeDistribution_;
+        const autoPtr<distributionModel> sizeDistribution_;
 
 
 public:
diff --git a/src/mesh/blockMesh/Make/files b/src/mesh/blockMesh/Make/files
index 5831633613d88cf5e29a50861feeb48cad4aff5b..7d567453f887fd53f1b77e2bb2192f5e723e7aaf 100644
--- a/src/mesh/blockMesh/Make/files
+++ b/src/mesh/blockMesh/Make/files
@@ -39,6 +39,4 @@ blockMesh/blockMeshMergeFast.C
 
 blockMeshTools/blockMeshTools.C
 
-searchableExtrudedCircle/searchableExtrudedCircle.C
-
 LIB = $(FOAM_LIBBIN)/libblockMesh
diff --git a/src/mesh/blockMesh/Make/options b/src/mesh/blockMesh/Make/options
index 5467dc3ce38635ce1b666c5263855f795f66e302..bf6ca71abfb4c715b09e5ed1679f365702c55784 100644
--- a/src/mesh/blockMesh/Make/options
+++ b/src/mesh/blockMesh/Make/options
@@ -1,11 +1,9 @@
 EXE_INC = \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude
 
 LIB_LIBS = \
     -lmeshTools \
     -lfileFormats \
-    -ledgeMesh \
     -lsurfMesh
diff --git a/src/mesh/extrudeModel/extrudeModel/extrudeModel.C b/src/mesh/extrudeModel/extrudeModel/extrudeModel.C
index f6a2a132892fe6b346c45ac6a3f8a84f4be87baf..cb041871f6226377111d617c226cdddc42aa1d25 100644
--- a/src/mesh/extrudeModel/extrudeModel/extrudeModel.C
+++ b/src/mesh/extrudeModel/extrudeModel/extrudeModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ Foam::extrudeModel::extrudeModel
     nLayers_(dict.lookupOrDefault<label>("nLayers", 1)),
     expansionRatio_(dict.lookupOrDefault<scalar>("expansionRatio", 1)),
     dict_(dict),
-    coeffDict_(dict.subDict(modelType + "Coeffs"))
+    coeffDict_(dict.optionalSubDict(modelType + "Coeffs"))
 {}
 
 
diff --git a/src/mesh/snappyHexMesh/Make/options b/src/mesh/snappyHexMesh/Make/options
index 42f1b1d19f93c5f28deb5eccfe2a9f8e52840185..d3db7112b5b2cccc99909f31551d7871b8bf8354 100644
--- a/src/mesh/snappyHexMesh/Make/options
+++ b/src/mesh/snappyHexMesh/Make/options
@@ -5,7 +5,6 @@ EXE_INC = \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/edgeMesh/lnInclude \
     -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude
 
@@ -14,7 +13,6 @@ LIB_LIBS = \
     -lfiniteVolume \
     -llagrangian \
     -lmeshTools \
-    -ledgeMesh \
     -lsurfMesh \
     -ltriSurface \
     -lfvMotionSolvers \
diff --git a/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C b/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C
index 55284b36081d77cd839a93415275076557e30156..267ba41c122cc7afcce2d44923533924a4e7245f 100644
--- a/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C
+++ b/src/mesh/snappyHexMesh/externalDisplacementMeshMover/displacementMeshMoverMotionSolver.C
@@ -74,7 +74,7 @@ Foam::displacementMeshMoverMotionSolver::meshMover() const
         meshMoverPtr_ = externalDisplacementMeshMover::New
         (
             moverType,
-            coeffDict().subDict(moverType + "Coeffs"),
+            coeffDict().optionalSubDict(moverType + "Coeffs"),
             localPointRegion::findDuplicateFacePairs(mesh()),
             pointDisplacement_
         );
@@ -105,7 +105,7 @@ void Foam::displacementMeshMoverMotionSolver::solve()
     labelList checkFaces(identity(mesh().nFaces()));
     meshMover().move
     (
-        coeffDict().subDict(meshMover().type() + "Coeffs"),
+        coeffDict().optionalSubDict(meshMover().type() + "Coeffs"),
         nAllowableErrors,
         checkFaces
     );
diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files
index bb5e356a0ea53a9adc8d0072cf670f8f75b01c73..4bc572916a9ba9f8beff2f7880728b59ed074c4c 100644
--- a/src/meshTools/Make/files
+++ b/src/meshTools/Make/files
@@ -1,3 +1,44 @@
+em = edgeMesh
+
+$(em)/edgeMesh.C
+$(em)/edgeMeshIO.C
+$(em)/edgeMeshNew.C
+
+edgeMeshFormats = $(em)/edgeMeshFormats
+$(edgeMeshFormats)/edgeMeshFormatsCore.C
+
+$(edgeMeshFormats)/edgeMesh/edgeMeshFormat.C
+$(edgeMeshFormats)/edgeMesh/edgeMeshFormatRunTime.C
+
+$(edgeMeshFormats)/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
+$(edgeMeshFormats)/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
+
+$(edgeMeshFormats)/nas/NASedgeFormat.C
+$(edgeMeshFormats)/nas/NASedgeFormatRunTime.C
+
+$(edgeMeshFormats)/obj/OBJedgeFormat.C
+$(edgeMeshFormats)/obj/OBJedgeFormatRunTime.C
+
+$(edgeMeshFormats)/starcd/STARCDedgeFormat.C
+$(edgeMeshFormats)/starcd/STARCDedgeFormatRunTime.C
+
+$(edgeMeshFormats)/vtk/VTKedgeFormat.C
+$(edgeMeshFormats)/vtk/VTKedgeFormatRunTime.C
+
+$(em)/featureEdgeMesh/featureEdgeMesh.C
+
+eem = $(em)/extendedEdgeMesh
+
+$(eem)/extendedEdgeMesh.C
+$(eem)/extendedEdgeMeshNew.C
+
+$(eem)/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
+$(eem)/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
+
+efm = $(eem)/extendedFeatureEdgeMesh
+
+$(efm)/extendedFeatureEdgeMesh.C
+
 cellClassification/cellClassification.C
 cellClassification/cellInfo.C
 
@@ -63,23 +104,24 @@ indexedOctree/treeDataPoint.C
 indexedOctree/treeDataPrimitivePatchName.C
 indexedOctree/treeDataTriSurface.C
 
-searchableSurface = searchableSurface
-$(searchableSurface)/searchableBox.C
-$(searchableSurface)/searchableRotatedBox.C
-$(searchableSurface)/searchableCylinder.C
-$(searchableSurface)/searchableCone.C
-$(searchableSurface)/searchableDisk.C
-$(searchableSurface)/searchablePlane.C
-$(searchableSurface)/searchablePlate.C
-$(searchableSurface)/searchableSphere.C
-$(searchableSurface)/searchableSurface.C
-$(searchableSurface)/searchableSurfaceCollection.C
-$(searchableSurface)/searchableSurfaces.C
-$(searchableSurface)/searchableSurfacesQueries.C
-$(searchableSurface)/searchableSurfaceWithGaps.C
-$(searchableSurface)/triSurfaceMesh.C
-$(searchableSurface)/closedTriSurfaceMesh.C
-$(searchableSurface)/subTriSurfaceMesh.C
+
+searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
+searchableSurfaces/searchableBox/searchableBox.C
+searchableSurfaces/searchableCone/searchableCone.C
+searchableSurfaces/searchableCylinder/searchableCylinder.C
+searchableSurfaces/searchableDisk/searchableDisk.C
+searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
+searchableSurfaces/searchablePlane/searchablePlane.C
+searchableSurfaces/searchablePlate/searchablePlate.C
+searchableSurfaces/searchableRotatedBox/searchableRotatedBox.C
+searchableSurfaces/searchableSphere/searchableSphere.C
+searchableSurfaces/searchableSurface/searchableSurface.C
+searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
+searchableSurfaces/searchableSurfaces/searchableSurfaces.C
+searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
+searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
+searchableSurfaces/subTriSurfaceMesh/subTriSurfaceMesh.C
+searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
 
 topoSets = sets/topoSets
 $(topoSets)/cellSet.C
diff --git a/src/edgeMesh/Make/files b/src/meshTools/edgeMesh/Make/files
similarity index 94%
rename from src/edgeMesh/Make/files
rename to src/meshTools/edgeMesh/Make/files
index 0438dd204ecc140496f78f4c18a567406a645bd4..648ffed01ac921d4f3637dab1f193735c6b0680c 100644
--- a/src/edgeMesh/Make/files
+++ b/src/meshTools/edgeMesh/Make/files
@@ -42,6 +42,6 @@ efm = $(eem)/extendedFeatureEdgeMesh
 
 $(efm)/extendedFeatureEdgeMesh.C
 
-
+searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
 
 LIB = $(FOAM_LIBBIN)/libedgeMesh
diff --git a/src/edgeMesh/Make/options b/src/meshTools/edgeMesh/Make/options
similarity index 100%
rename from src/edgeMesh/Make/options
rename to src/meshTools/edgeMesh/Make/options
diff --git a/src/edgeMesh/edgeMesh.C b/src/meshTools/edgeMesh/edgeMesh.C
similarity index 99%
rename from src/edgeMesh/edgeMesh.C
rename to src/meshTools/edgeMesh/edgeMesh.C
index 3ce4bcc91bc371aa0304fed9a4d69aaed2ce1151..66ac58cf0c3171c79a04732a603289f03f1efa21 100644
--- a/src/edgeMesh/edgeMesh.C
+++ b/src/meshTools/edgeMesh/edgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMesh.H b/src/meshTools/edgeMesh/edgeMesh.H
similarity index 99%
rename from src/edgeMesh/edgeMesh.H
rename to src/meshTools/edgeMesh/edgeMesh.H
index e1739d91112ba395c8b90764d5fb188cc09d04bb..7d78ff4f2cd0cbfb68530815eda64c6127bd16ef 100644
--- a/src/edgeMesh/edgeMesh.H
+++ b/src/meshTools/edgeMesh/edgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,6 +82,7 @@ class edgeMesh
         //- From point to edges
         mutable autoPtr<labelListList> pointEdgesPtr_;
 
+
     // Private Member Functions
 
         //- Calculate point-edge addressing (inverse of edges)
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
index 4206a3477458f966b7585f8adc497573592d91f5..59771b4d7065cf8dc28099ca91ba66861e2668c8 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
index 99ea8c5434c3a3716d002ac4c9dfb57e1714150d..8f9d1a6bf6c9d218ccd7499a7e1aea403cf6e624 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
index 2f191be35eafaeec5a63480c0168445939e68ebb..b552638ae8321c8ab69e6d8815b98b9d00541597 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormatRunTime.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
index 9cd5e35fda2cdaae80c1eddb04204f834b791643..45ea4229c70e5137dcb19a52a297ea5b0e17928c 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
index 0f5bbb83ce83b185a35dc5e6b215452e640a9bb4..fa68510084f56a017d0f7a860b482521e4ef1f82 100644
--- a/src/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/edgeMeshFormatsCore.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
index 3c72541702ca3408b1bd9a851a4dbdc83fa50c08..a25999ecb90ea763004df61e12423ea14d17c63c 100644
--- a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
similarity index 97%
rename from src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
index cabc9beec0cbdeec8da2294f03f57b1e715f8510..3582b2f59f193147ea8050954935a27283a9d5e2 100644
--- a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormat.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
similarity index 95%
rename from src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
index 958f99facb7a08bf71748b188d76c1beb4b9b922..5d64582de66c091c3289657a6a3fa2e616ddb26a 100644
--- a/src/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshFormatRunTime.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
similarity index 99%
rename from src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
index 643c161cb1726ee65c12bff2a7cd55932731c586..6eaab1996586221889342dc7532cf90fd9c4dc0d 100644
--- a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
similarity index 97%
rename from src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
index 4ed631bc427a1101f88676fed70f8aba62b8292d..03f403f8abf0122091a82af9bdebd93bebd85b28 100644
--- a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormat.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
index c2932e179d39e32361b57b331090beb07703f764..018934d33d3fbd541d67501e9df2cb42ecdb7f4a 100644
--- a/src/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/nas/NASedgeFormatRunTime.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
similarity index 99%
rename from src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
index 9f423b0e6b296ce638bd048445fe3404c98fa8dd..e7441e160ae8693958ba1f3a3ac86405787f2cd7 100644
--- a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
index 11affeddb0e0b5e8077ef21cb7fa8e0e2b5be24c..baa87877315e4d4f1ebc37d6d6899cbba73402b7 100644
--- a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
index 5bda1bb6b42e556bd81938feb4aa1277b125c8d2..ef56e7525d55e94e8b30ee0321ae1aac198324ce 100644
--- a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/obj/OBJedgeFormatRunTime.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
similarity index 99%
rename from src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
index f575a60a2a4f08a6bdb3e04e47239725d44728d6..39b16d7ccb4abf02b07becb8355e11031ad4686d 100644
--- a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
index 295cbebfbc354cd7cb047dbb27693021ad0fd7d4..a6b0bbfb2f67849b26ee327740cd71bfba3663d0 100644
--- a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormat.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
index 63f690609ba6b0e756b59e50042cd32e6fe17961..c03bb42293caf0626aef163280351953211054dc 100644
--- a/src/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/starcd/STARCDedgeFormatRunTime.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
index fe18c897f497378d3d3efac1895ca2087295f3dd..4accc8044eed87fa49d011d9b09416077af382fc 100644
--- a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
similarity index 98%
rename from src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
rename to src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
index 2285cf61a0f7a4006d6520383df7658c5f69f5c7..b85e134d757714f4a1cbef7c237a9ce8a831cffb 100644
--- a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.H
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormat.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
similarity index 96%
rename from src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
rename to src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
index 35720040266859ad8593019cd512000d1eb68edb..891804b4eeb1a37dcb00fa22119fbd7daa012899 100644
--- a/src/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.C
+++ b/src/meshTools/edgeMesh/edgeMeshFormats/vtk/VTKedgeFormatRunTime.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshI.H b/src/meshTools/edgeMesh/edgeMeshI.H
similarity index 97%
rename from src/edgeMesh/edgeMeshI.H
rename to src/meshTools/edgeMesh/edgeMeshI.H
index 5ccff22321492bc97d18f82c77e527954bbebadd..b5034362de1957e71769f06f18b5de381ae89ffc 100644
--- a/src/edgeMesh/edgeMeshI.H
+++ b/src/meshTools/edgeMesh/edgeMeshI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshIO.C b/src/meshTools/edgeMesh/edgeMeshIO.C
similarity index 98%
rename from src/edgeMesh/edgeMeshIO.C
rename to src/meshTools/edgeMesh/edgeMeshIO.C
index 6b4dd6f3820c2613eb31a37174a520a19687b7a2..0ae4b9b46943c7925cd2040492e6b83d0f4da75b 100644
--- a/src/edgeMesh/edgeMeshIO.C
+++ b/src/meshTools/edgeMesh/edgeMeshIO.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/edgeMeshNew.C b/src/meshTools/edgeMesh/edgeMeshNew.C
similarity index 97%
rename from src/edgeMesh/edgeMeshNew.C
rename to src/meshTools/edgeMesh/edgeMeshNew.C
index 8258da4b57b153b5fe88a60c83c8002b18e3f09c..3ceb973f4474ee1e4380b8f0c30ad9c7bf005f93 100644
--- a/src/edgeMesh/edgeMeshNew.C
+++ b/src/meshTools/edgeMesh/edgeMeshNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
index 49e240abdfe253a14d4cba5e510beeb12eb50b62..bbcf6ab080b3c840a265187b939876b77f50c2bc 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
index c25fd4e215f158d4761763daa38659c09b20dddd..1f9feaf627df95d74f318b090df10c96b8ed2d94 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
similarity index 97%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
index ecdf7128dcf91c4b645c53a04505d0c2ed9352d9..ca3ffa8521f09ea2bbe4009632c9b01f5be95d71 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
similarity index 97%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
index 0bd618e07319b980cb4ca475307ab84af79a4bc6..8c3e2d95bc491fbcba954ecb966fcbe1f47cf39f 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
similarity index 95%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
index a98e8ecbe176d62d86b110af02393fb2bac3d0a7..e35744a557ac6fdd9a7d69653e281b13ea25daca 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormatRunTime.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
similarity index 98%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
index 098f7e399e7acc5d435fd700b05b286c1501f230..8067971c039bba4abbefeaa32ddbae061cba0d2b 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
similarity index 97%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
index ad0c52966ec3503285e19a33c4efc8350c59dce2..3f0732a559cd0f9c88cac3fdf66fadc01a6464e0 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
index 1f2051a3365bd7a81e60808797eba93f080871d7..3cb86ec3a62e1d88bc077835c62f0b763aa8a215 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedEdgeMeshTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
index 5e686fae148a169451b688125bbf07eb76c32725..08a688bfa55dd8623902850587d84f0b60c6f558 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
similarity index 100%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
similarity index 98%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
index 55cc8ffa6275c613a9ab3b18984411e046bef23d..6eead24de3600b68701da753a10ec87463e1ca44 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
similarity index 99%
rename from src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
rename to src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
index 8aba7d0b595af4d042dcbf85688f126889c34c3e..5b7eec3c5af0d282558fea23791e50344000690f 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
+++ b/src/meshTools/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMeshTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
similarity index 97%
rename from src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
rename to src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
index f34c29745f3f1c4e24adf8e6b563804c35bcae19..c1e013eaf858069ca2262e2cb8a839ab547359f3 100644
--- a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
+++ b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
similarity index 98%
rename from src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
rename to src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
index ed275ff8f8b85b4887b96b9f6147944109c2ca37..95552422247a15a0a90d3b7df93235183845854c 100644
--- a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
+++ b/src/meshTools/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/closedTriSurfaceMesh.C b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
similarity index 96%
rename from src/meshTools/searchableSurface/closedTriSurfaceMesh.C
rename to src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.C
index 04e07f0af46af1d4e79784931037c24ec520fc70..b5ea3d9ec72b8bfe8c83dfbdd7b5ffa306a47748 100644
--- a/src/meshTools/searchableSurface/closedTriSurfaceMesh.C
+++ b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.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) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/closedTriSurfaceMesh.H b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.H
similarity index 97%
rename from src/meshTools/searchableSurface/closedTriSurfaceMesh.H
rename to src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.H
index 845d6fa6ccee3395e9f3d647e925b3c1c92f32c1..8212f906c4b0476f9a044f7078603d991d333ce0 100644
--- a/src/meshTools/searchableSurface/closedTriSurfaceMesh.H
+++ b/src/meshTools/searchableSurfaces/closedTriSurfaceMesh/closedTriSurfaceMesh.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableBox.C b/src/meshTools/searchableSurfaces/searchableBox/searchableBox.C
similarity index 100%
rename from src/meshTools/searchableSurface/searchableBox.C
rename to src/meshTools/searchableSurfaces/searchableBox/searchableBox.C
diff --git a/src/meshTools/searchableSurface/searchableBox.H b/src/meshTools/searchableSurfaces/searchableBox/searchableBox.H
similarity index 100%
rename from src/meshTools/searchableSurface/searchableBox.H
rename to src/meshTools/searchableSurfaces/searchableBox/searchableBox.H
diff --git a/src/meshTools/searchableSurface/searchableCone.C b/src/meshTools/searchableSurfaces/searchableCone/searchableCone.C
similarity index 100%
rename from src/meshTools/searchableSurface/searchableCone.C
rename to src/meshTools/searchableSurfaces/searchableCone/searchableCone.C
diff --git a/src/meshTools/searchableSurface/searchableCone.H b/src/meshTools/searchableSurfaces/searchableCone/searchableCone.H
similarity index 100%
rename from src/meshTools/searchableSurface/searchableCone.H
rename to src/meshTools/searchableSurfaces/searchableCone/searchableCone.H
diff --git a/src/meshTools/searchableSurface/searchableCylinder.C b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableCylinder.C
rename to src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.C
index c158e32b85ce8778a84a5a01f57d145c29d3a941..6ffd74f8ca073c5d4939b95f65c22fb33a162d1c 100644
--- a/src/meshTools/searchableSurface/searchableCylinder.C
+++ b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableCylinder.H b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableCylinder.H
rename to src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.H
index c120ae174b45815e870e983b6f8c60718f98aa34..df46a18c48151375635bbf97249a04bacc1f033a 100644
--- a/src/meshTools/searchableSurface/searchableCylinder.H
+++ b/src/meshTools/searchableSurfaces/searchableCylinder/searchableCylinder.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableDisk.C b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableDisk.C
rename to src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.C
index a62604c25941f91679f90b7d666f1b8f42d66779..0ed845d2e5dcb362b99cf70d558593ed9560d379 100644
--- a/src/meshTools/searchableSurface/searchableDisk.C
+++ b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableDisk.H b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableDisk.H
rename to src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.H
index 8e6bee01b2b2f18989319e321a2bd00c362d518b..5cebb1cede55a7cac16ca449d747fa940f97e2c4 100644
--- a/src/meshTools/searchableSurface/searchableDisk.H
+++ b/src/meshTools/searchableSurfaces/searchableDisk/searchableDisk.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.C b/src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
similarity index 98%
rename from src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.C
rename to src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
index 9656656b77b726405f0b19bfe9ba227d7b100872..3d1b3f76c26459264dfbf586f01dca1430db255f 100644
--- a/src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.C
+++ b/src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,7 +63,7 @@ Foam::searchableExtrudedCircle::searchableExtrudedCircle
             (
                 dict.lookup("file"),                // name
                 io.time().constant(),               // instance
-                "triSurface",                       // local
+                "geometry",                         // local
                 io.time(),                          // registry
                 IOobject::MUST_READ,
                 IOobject::NO_WRITE,
diff --git a/src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.H b/src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
similarity index 98%
rename from src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.H
rename to src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
index 864638dbc171ebc42ffa0d62de561525876b5dc9..83f537ab65980fae099035e8c52231cba466ef2e 100644
--- a/src/mesh/blockMesh/searchableExtrudedCircle/searchableExtrudedCircle.H
+++ b/src/meshTools/searchableSurfaces/searchableExtrudedCircle/searchableExtrudedCircle.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlane.C b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.C
similarity index 98%
rename from src/meshTools/searchableSurface/searchablePlane.C
rename to src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.C
index 81cf1f98cd49c322293ab93fa032f80cc94bdaf9..a5e7b0430d1c2bc02000f66e4d714a4ba6b60fed 100644
--- a/src/meshTools/searchableSurface/searchablePlane.C
+++ b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlane.H b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.H
similarity index 98%
rename from src/meshTools/searchableSurface/searchablePlane.H
rename to src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.H
index 3e15a8e34c1619fbb44242fb980e203c2e8249fd..0e782a0198d8a4f6a7a6c6fa036d23143d7fbece 100644
--- a/src/meshTools/searchableSurface/searchablePlane.H
+++ b/src/meshTools/searchableSurfaces/searchablePlane/searchablePlane.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlate.C b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchablePlate.C
rename to src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.C
index 6ae652d1b45c35edab550101d760fe1c95bf8653..650bb1f3e82b49db53389747471d367700276ccb 100644
--- a/src/meshTools/searchableSurface/searchablePlate.C
+++ b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchablePlate.H b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchablePlate.H
rename to src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.H
index 48d270987ff49e2d49e76521965c6f17d731e977..944179e0cb901006a16764bec5009afd839d7ca7 100644
--- a/src/meshTools/searchableSurface/searchablePlate.H
+++ b/src/meshTools/searchableSurfaces/searchablePlate/searchablePlate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableRotatedBox.C b/src/meshTools/searchableSurfaces/searchableRotatedBox/searchableRotatedBox.C
similarity index 100%
rename from src/meshTools/searchableSurface/searchableRotatedBox.C
rename to src/meshTools/searchableSurfaces/searchableRotatedBox/searchableRotatedBox.C
diff --git a/src/meshTools/searchableSurface/searchableRotatedBox.H b/src/meshTools/searchableSurfaces/searchableRotatedBox/searchableRotatedBox.H
similarity index 100%
rename from src/meshTools/searchableSurface/searchableRotatedBox.H
rename to src/meshTools/searchableSurfaces/searchableRotatedBox/searchableRotatedBox.H
diff --git a/src/meshTools/searchableSurface/searchableSphere.C b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSphere.C
rename to src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.C
index 3db3e7c80a43c2ed6279ed13a95c5085812b9286..512edb074027c57220efae7a4b19f69e963ee6de 100644
--- a/src/meshTools/searchableSurface/searchableSphere.C
+++ b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSphere.H b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSphere.H
rename to src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.H
index 4096d2f4606ad33af78c2f723eb783071a526542..1346df359b6ce7b02490bebb4b59618959a4f042 100644
--- a/src/meshTools/searchableSurface/searchableSphere.H
+++ b/src/meshTools/searchableSurfaces/searchableSphere/searchableSphere.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurface.C b/src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.C
similarity index 100%
rename from src/meshTools/searchableSurface/searchableSurface.C
rename to src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.C
diff --git a/src/meshTools/searchableSurface/searchableSurface.H b/src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurface.H
rename to src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.H
index cc23e56666c9937d0952800fe76fce723a69557e..63fd160ad25dce331f9ab4ef1613ced88058fa9b 100644
--- a/src/meshTools/searchableSurface/searchableSurface.H
+++ b/src/meshTools/searchableSurfaces/searchableSurface/searchableSurface.H
@@ -61,7 +61,7 @@ class mapDistribute;
 class treeBoundBox;
 
 /*---------------------------------------------------------------------------*\
-                           Class searchableSurface Declaration
+                      Class searchableSurface Declaration
 \*---------------------------------------------------------------------------*/
 
 class searchableSurface
@@ -74,6 +74,7 @@ class searchableSurface
 
         boundBox bounds_;
 
+
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
diff --git a/src/meshTools/searchableSurface/searchableSurfaceCollection.C b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceCollection.C
rename to src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
index e61b690e9e2c4d25a86f0e7597178295467ee237..53ee84a76df4b07446882634b0622afb29a222cb 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceCollection.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceCollection.H b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceCollection.H
rename to src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.H
index 0c274c7ad551424bc6b5cd8139532119314a095b..79456389073b4e1638a4d96df41612dd82c304d4 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceCollection.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceCollection/searchableSurfaceCollection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.C b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceWithGaps.C
rename to src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
index 9371c32757b5929eafa301081d4a9e4480f38dab..7af6d6c8e8f47ccd915549b5b60a62906fd717bb 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.H b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaceWithGaps.H
rename to src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.H
index ad56aee199cef7eb6a0f90c933bd05a5f68f3561..8faf3308786b60a42fb4ea7e461f446029071c2e 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceWithGaps.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfaceWithGaps/searchableSurfaceWithGaps.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaces.C b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaces.C
rename to src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.C
index 0bb5a89d1c2ed0c1f3f6c2fb1caba6b5b646af24..9686901cec1774045d79d49738b76fe7a29b1341 100644
--- a/src/meshTools/searchableSurface/searchableSurfaces.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaces.H b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfaces.H
rename to src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.H
index 2c544b5d56c9b4b4caea9a756e355d94764caed5..4fb964266bf3a43a35a573e2331f92d751d37d17 100644
--- a/src/meshTools/searchableSurface/searchableSurfaces.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfaces/searchableSurfaces.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfacesQueries.C b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfacesQueries.C
rename to src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
index 9b8788c1a48f29462c9a4900695262bb65aa2e12..ec083c1c14545ed02db95efac484e23dd6e0f5b8 100644
--- a/src/meshTools/searchableSurface/searchableSurfacesQueries.C
+++ b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfacesQueries.H b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.H
similarity index 99%
rename from src/meshTools/searchableSurface/searchableSurfacesQueries.H
rename to src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.H
index 52dfa040b1c2934921458ab3ce6e8c36bf6097c1..404bb857759bb93645380acdd005e8cce27e5f3d 100644
--- a/src/meshTools/searchableSurface/searchableSurfacesQueries.H
+++ b/src/meshTools/searchableSurfaces/searchableSurfacesQueries/searchableSurfacesQueries.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/subTriSurfaceMesh.C b/src/meshTools/searchableSurfaces/subTriSurfaceMesh/subTriSurfaceMesh.C
similarity index 100%
rename from src/meshTools/searchableSurface/subTriSurfaceMesh.C
rename to src/meshTools/searchableSurfaces/subTriSurfaceMesh/subTriSurfaceMesh.C
diff --git a/src/meshTools/searchableSurface/subTriSurfaceMesh.H b/src/meshTools/searchableSurfaces/subTriSurfaceMesh/subTriSurfaceMesh.H
similarity index 100%
rename from src/meshTools/searchableSurface/subTriSurfaceMesh.H
rename to src/meshTools/searchableSurfaces/subTriSurfaceMesh/subTriSurfaceMesh.H
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.C b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
similarity index 100%
rename from src/meshTools/searchableSurface/triSurfaceMesh.C
rename to src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.H b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H
similarity index 100%
rename from src/meshTools/searchableSurface/triSurfaceMesh.H
rename to src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H
diff --git a/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C b/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C
index 1a4e31de0b06cc7e5ebd51c6ede4e27bc5b79be5..b2bde3b1552881a8e7ef9c8ead53b9e160b6f273 100644
--- a/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C
+++ b/src/parallel/decompose/decompositionMethods/decompositionConstraints/decompositionConstraint/decompositionConstraint.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -29,8 +29,8 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(decompositionConstraint, 1);
-defineRunTimeSelectionTable(decompositionConstraint, dictionary);
+    defineTypeNameAndDebug(decompositionConstraint, 1);
+    defineRunTimeSelectionTable(decompositionConstraint, dictionary);
 }
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
@@ -41,7 +41,6 @@ Foam::decompositionConstraint::decompositionConstraint
     const word& type
 )
 :
-    //coeffDict_(constraintsDict.subOrEmptyDict(type + "Coeffs"))
     coeffDict_(constraintsDict)
 {}
 
diff --git a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C
index a416d0dc30440f1ef93cae66d639eb4ea5301a72..6f741b09598b7415b01320cd0ad58b351f2d06dd 100644
--- a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,7 +34,7 @@ Foam::geomDecomp::geomDecomp
 )
 :
     decompositionMethod(decompositionDict),
-    geomDecomDict_(decompositionDict.subDict(derivedType + "Coeffs")),
+    geomDecomDict_(decompositionDict.optionalSubDict(derivedType + "Coeffs")),
     n_(geomDecomDict_.lookup("n")),
     delta_(readScalar(geomDecomDict_.lookup("delta"))),
     rotDelta_(I)
diff --git a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C
index 8af9083bc1fb1765a7d5c6ed8f52d2c306200e6b..0c42d691f6c4e33b8f8f9385aeb582d10861aae8 100644
--- a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,8 +53,10 @@ Foam::manualDecomp::manualDecomp(const dictionary& decompositionDict)
     decompositionMethod(decompositionDict),
     decompDataFile_
     (
-        decompositionDict.subDict(word(decompositionDict.lookup("method"))
-      + "Coeffs").lookup("dataFile")
+        decompositionDict.optionalSubDict
+        (
+            word(decompositionDict.lookup("method")) + "Coeffs"
+        ).lookup("dataFile")
     )
 {}
 
diff --git a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
index 219365e0e4392facb3aa34699070dd31198d19f2..3ab449d3d3ffae022c3622b8cfdfb64b54f436ea 100644
--- a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -243,7 +243,7 @@ void Foam::multiLevelDecomp::decompose
 
             // Retrieve original level0 dictionary and modify number of domains
             dictionary::const_iterator iter =
-                decompositionDict_.subDict(typeName + "Coeffs").begin();
+                decompositionDict_.optionalSubDict(typeName + "Coeffs").begin();
             dictionary myDict = iter().dict();
             myDict.set("numberOfSubdomains", nTotal);
 
@@ -330,7 +330,7 @@ void Foam::multiLevelDecomp::decompose
 Foam::multiLevelDecomp::multiLevelDecomp(const dictionary& decompositionDict)
 :
     decompositionMethod(decompositionDict),
-    methodsDict_(decompositionDict_.subDict(typeName + "Coeffs"))
+    methodsDict_(decompositionDict_.optionalSubDict(typeName + "Coeffs"))
 {
     methods_.setSize(methodsDict_.size());
     label i = 0;
diff --git a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
index dd6f9e9236c3ca496fcccbe0543aa36569f8277a..2d9dbeff3fa6829be5bc8217877ba40c0f44f2d0 100644
--- a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,7 @@ namespace Foam
 Foam::structuredDecomp::structuredDecomp(const dictionary& decompositionDict)
 :
     decompositionMethod(decompositionDict),
-    methodDict_(decompositionDict_.subDict(typeName + "Coeffs")),
+    methodDict_(decompositionDict_.optionalSubDict(typeName + "Coeffs")),
     patches_(methodDict_.lookup("patches"))
 {
     methodDict_.set("numberOfSubdomains", nDomains());
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
index a734eec005313bdcd12a0f0a1540d8c59b16b08a..2403be771ae77ca04074b05ec547bf56038af97a 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
@@ -54,13 +54,9 @@ void reactingOneDim::readReactingOneDimControls()
     const dictionary& solution = this->solution().subDict("SIMPLE");
     solution.lookup("nNonOrthCorr") >> nNonOrthCorr_;
     time().controlDict().lookup("maxDi") >> maxDiff_;
-
     coeffs().lookup("minimumDelta") >> minimumDelta_;
-
     gasHSource_ = coeffs().lookupOrDefault<bool>("gasHSource", false);
-
-    coeffs().lookup("QrHSource") >> QrHSource_;
-
+    coeffs().lookup("qrHSource") >> qrHSource_;
     useChemistrySolvers_ =
         coeffs().lookupOrDefault<bool>("useChemistrySolvers", true);
 }
@@ -94,41 +90,41 @@ bool reactingOneDim::read(const dictionary& dict)
 }
 
 
-void reactingOneDim::updateQr()
+void reactingOneDim::updateqr()
 {
-    // Update local Qr from coupled Qr field
-    Qr_ == dimensionedScalar("zero", Qr_.dimensions(), 0.0);
+    // Update local qr from coupled qr field
+    qr_ == dimensionedScalar("zero", qr_.dimensions(), 0.0);
 
     // Retrieve field from coupled region using mapped boundary conditions
-    Qr_.correctBoundaryConditions();
+    qr_.correctBoundaryConditions();
 
-    volScalarField::Boundary& QrBf = Qr_.boundaryFieldRef();
+    volScalarField::Boundary& qrBf = qr_.boundaryFieldRef();
 
     forAll(intCoupledPatchIDs_, i)
     {
         const label patchi = intCoupledPatchIDs_[i];
 
-        // Qr is positive going in the solid
+        // qr is positive going in the solid
         // If the surface is emitting the radiative flux is set to zero
-        QrBf[patchi] = max(QrBf[patchi], scalar(0.0));
+        qrBf[patchi] = max(qrBf[patchi], scalar(0.0));
     }
 
     const vectorField& cellC = regionMesh().cellCentres();
 
     tmp<volScalarField> kappa = kappaRad();
 
-    // Propagate Qr through 1-D regions
+    // Propagate qr through 1-D regions
     label localPyrolysisFacei = 0;
     forAll(intCoupledPatchIDs_, i)
     {
         const label patchi = intCoupledPatchIDs_[i];
 
-        const scalarField& Qrp = Qr_.boundaryField()[patchi];
+        const scalarField& qrp = qr_.boundaryField()[patchi];
         const vectorField& Cf = regionMesh().Cf().boundaryField()[patchi];
 
-        forAll(Qrp, facei)
+        forAll(qrp, facei)
         {
-            const scalar Qr0 = Qrp[facei];
+            const scalar qr0 = qrp[facei];
             point Cf0 = Cf[facei];
             const labelList& cells = boundaryFaceCells_[localPyrolysisFacei++];
             scalar kappaInt = 0.0;
@@ -138,7 +134,7 @@ void reactingOneDim::updateQr()
                 const point& Cf1 = cellC[celli];
                 const scalar delta = mag(Cf1 - Cf0);
                 kappaInt += kappa()[celli]*delta;
-                Qr_[celli] = Qr0*exp(-kappaInt);
+                qr_[celli] = qr0*exp(-kappaInt);
                 Cf0 = Cf1;
             }
         }
@@ -202,9 +198,9 @@ void reactingOneDim::updatePhiGas()
 
 void reactingOneDim::updateFields()
 {
-    if (QrHSource_)
+    if (qrHSource_)
     {
-        updateQr();
+        updateqr();
     }
 
     //Note: Commented out as the sensible gas energy is included in energy eq.
@@ -327,10 +323,10 @@ void reactingOneDim::solveEnergy()
     }
 */
 
-    if (QrHSource_)
+    if (qrHSource_)
     {
-        const surfaceScalarField phiQr(fvc::interpolate(Qr_)*nMagSf());
-        hEqn += fvc::div(phiQr);
+        const surfaceScalarField phiqr(fvc::interpolate(qr_)*nMagSf());
+        hEqn += fvc::div(phiqr);
     }
 
 /*
@@ -449,11 +445,11 @@ reactingOneDim::reactingOneDim
         dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
     ),
 
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             time().timeName(),
             regionMesh(),
             IOobject::MUST_READ,
@@ -467,7 +463,7 @@ reactingOneDim::reactingOneDim
     totalGasMassFlux_(0.0),
     totalHeatRR_(dimensionedScalar("zero", dimEnergy/dimTime, 0.0)),
     gasHSource_(false),
-    QrHSource_(false),
+    qrHSource_(false),
     useChemistrySolvers_(true)
 {
     if (active_)
@@ -549,11 +545,11 @@ reactingOneDim::reactingOneDim
         dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0)
     ),
 
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             time().timeName(),
             regionMesh(),
             IOobject::MUST_READ,
@@ -567,7 +563,7 @@ reactingOneDim::reactingOneDim
     totalGasMassFlux_(0.0),
     totalHeatRR_(dimensionedScalar("zero", dimEnergy/dimTime, 0.0)),
     gasHSource_(false),
-    QrHSource_(false),
+    qrHSource_(false),
     useChemistrySolvers_(true)
 {
     if (active_)
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
index 17a87abf30c11f5e876b9b021b42e6b75ed82da6..5a6afe07eb7168d307d9c104774e0bcb90fcc2a1 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -127,10 +127,10 @@ protected:
 
             //- Coupled region radiative heat flux [W/m2]
             //  Requires user to input mapping info for coupled patches
-            //volScalarField QrCoupled_;
+            //volScalarField qrCoupled_;
 
             //- In depth radiative heat flux [W/m2]
-            volScalarField Qr_;
+            volScalarField qr_;
 
 
         // Checks
@@ -154,7 +154,7 @@ protected:
             bool  gasHSource_;
 
             //- Add in depth radiation source term
-            bool  QrHSource_;
+            bool  qrHSource_;
 
             //- Use chemistry solvers (ode or sequential)
             bool useChemistrySolvers_;
@@ -175,7 +175,7 @@ protected:
         void updateMesh(const scalarField& mass0);
 
         //- Update radiative flux in pyrolysis region
-        void updateQr();
+        void updateqr();
 
         //- Update enthalpy flux for pyrolysis gases
         void updatePhiGas();
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
index e5152f43c4dfeeadce6c01314bc54f94342d4980..dac63860b81a145b358556159c3197f0d0c28135 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -110,7 +110,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_("surfaceFilmProperties"),
     pyrolysisRegionName_("pyrolysisProperties"),
     TnbrName_("undefined-Tnbr"),
-    QrName_("undefined-Qr"),
+    qrName_("undefined-qr"),
     convectiveScaling_(1.0),
     filmDeltaDry_(0.0),
     filmDeltaWet_(0.0)
@@ -135,7 +135,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_(psf.filmRegionName_),
     pyrolysisRegionName_(psf.pyrolysisRegionName_),
     TnbrName_(psf.TnbrName_),
-    QrName_(psf.QrName_),
+    qrName_(psf.qrName_),
     convectiveScaling_(psf.convectiveScaling_),
     filmDeltaDry_(psf.filmDeltaDry_),
     filmDeltaWet_(psf.filmDeltaWet_)
@@ -161,7 +161,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
         dict.lookupOrDefault<word>("pyrolysisRegion", "pyrolysisProperties")
     ),
     TnbrName_(dict.lookup("Tnbr")),
-    QrName_(dict.lookup("Qr")),
+    qrName_(dict.lookup("qr")),
     convectiveScaling_(dict.lookupOrDefault<scalar>("convectiveScaling", 1.0)),
     filmDeltaDry_(readScalar(dict.lookup("filmDeltaDry"))),
     filmDeltaWet_(readScalar(dict.lookup("filmDeltaWet")))
@@ -207,7 +207,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_(psf.filmRegionName_),
     pyrolysisRegionName_(psf.pyrolysisRegionName_),
     TnbrName_(psf.TnbrName_),
-    QrName_(psf.QrName_),
+    qrName_(psf.qrName_),
     convectiveScaling_(psf.convectiveScaling_),
     filmDeltaDry_(psf.filmDeltaDry_),
     filmDeltaWet_(psf.filmDeltaWet_)
@@ -268,25 +268,25 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
     const pyrolysisModelType& pyrolysis = pyrModel();
     const filmModelType& film = filmModel();
 
-    // Obtain Rad heat (Qr)
-    scalarField Qr(patch().size(), 0.0);
+    // Obtain Rad heat (qr)
+    scalarField qr(patch().size(), 0.0);
 
     label coupledPatchi = -1;
     if (pyrolysisRegionName_ == mesh.name())
     {
         coupledPatchi = patchi;
-        if (QrName_ != "none")
+        if (qrName_ != "none")
         {
-            Qr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrName_);
-            mpp.distribute(Qr);
+            qr = nbrPatch.lookupPatchField<volScalarField, scalar>(qrName_);
+            mpp.distribute(qr);
         }
     }
     else if (pyrolysis.primaryMesh().name() == mesh.name())
     {
         coupledPatchi = nbrPatch.index();
-        if (QrName_ != "none")
+        if (qrName_ != "none")
         {
-            Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+            qr = patch().lookupPatchField<volScalarField, scalar>(qrName_);
         }
     }
     else
@@ -344,7 +344,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
 
     scalarField qConv(ratio*htcwfilm*(Tfilm - Tp)*convectiveScaling_);
 
-    scalarField qRad((1.0 - ratio)*Qr);
+    scalarField qRad((1.0 - ratio)*qr);
 
     scalarField alpha(KDeltaNbr - (qRad + qConv)/Tp);
 
@@ -357,7 +357,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
     if (debug)
     {
         scalar Qc = gSum(qConv*patch().magSf());
-        scalar Qr = gSum(qRad*patch().magSf());
+        scalar qr = gSum(qRad*patch().magSf());
         scalar Qt = gSum((qConv + qRad)*patch().magSf());
 
         Info<< mesh.name() << ':'
@@ -367,7 +367,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
             << nbrPatch.name() << ':'
             << this->internalField().name() << " :" << nl
             << "     convective heat[W] : " << Qc << nl
-            << "     radiative heat [W] : " << Qr << nl
+            << "     radiative heat [W] : " << qr << nl
             << "     total heat     [W] : " << Qt << nl
             << "     wall temperature "
             << " min:" << gMin(*this)
@@ -399,7 +399,7 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::write
         pyrolysisRegionName_
     );
     os.writeKeyword("Tnbr")<< TnbrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
     os.writeKeyword("convectiveScaling") << convectiveScaling_
         << token::END_STATEMENT << nl;
     os.writeKeyword("filmDeltaDry") << filmDeltaDry_
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
index abdd47b6b8084a996382b14975cd29a25dae43d4..697f8c879cd0bbb136e76a85e7915e69a802e853 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,7 +36,7 @@ Description
         Tnbr            T;
         kappaMethod     fluidThermo;
         kappa           none;
-        Qr              Qr;
+        qr              qr;
         filmDeltaDry    0.0;
         filmDeltaWet    3e-4;
         value           $internalField;
@@ -58,16 +58,15 @@ Description
 
     \verbatim
         qConv = ratio*htcwfilm*(Tfilm - *this);
-        qRad = (1.0 - ratio)*Qr;
+        qRad = (1.0 - ratio)*qr;
     \endverbatim
 
     Then the solid can gain or loose energy through radiation or conduction
     towards the film.
 
     Notes:
-
     - \c kappaMethod and \c kappa are inherited from temperatureCoupledBase.
-    - Qr is the radiative flux defined in the radiation model.
+    - qr is the radiative flux defined in the radiation model.
 
 
 See also
@@ -124,7 +123,7 @@ private:
         const word TnbrName_;
 
         //- Name of the radiative heat flux
-        const word QrName_;
+        const word qrName_;
 
         //- Convective Scaling Factor (as determined by Prateep's tests)
         const scalar convectiveScaling_;
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
index 9aa69fc37bffae2c7a0ff10285759e142185c24b..474ef1f9eabb50695b9685dc058a701ea02b9381 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.C
@@ -41,11 +41,11 @@ namespace regionModels
 
 Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 (
-    regionModel& owner
+    regionModel& region
 )
 :
     dict_(dictionary::null),
-    owner_(owner),
+    regionModel_(region),
     modelType_("modelType")
 {}
 
@@ -53,12 +53,12 @@ Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 (
     const dictionary& dict,
-    regionModel& owner,
+    regionModel& region,
     const word& type
 )
 :
     dict_(dict),
-    owner_(owner),
+    regionModel_(region),
     modelType_(type)
 {}
 
@@ -69,7 +69,7 @@ Foam::regionModels::regionModelFunctionObject::regionModelFunctionObject
 )
 :
     dict_(rmfo.dict_),
-    owner_(rmfo.owner_),
+    regionModel_(rmfo.regionModel_),
     modelType_(rmfo.modelType_)
 {}
 
@@ -88,7 +88,7 @@ void Foam::regionModels::regionModelFunctionObject::preEvolveRegion()
 
 void Foam::regionModels::regionModelFunctionObject::postEvolveRegion()
 {
-    if (owner_.regionMesh().time().writeTime())
+    if (regionModel_.regionMesh().time().writeTime())
     {
         write();
     }
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
index 77e56b14d19b329dd880ff0c3425ee7432392545..2f96d310ca2a741a6f9acde344a21c39c41e989a 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObject.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) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ protected:
         dictionary dict_;
 
         //- Reference to the region model
-        regionModel& owner_;
+        regionModel& regionModel_;
 
         //- Model type name
         word modelType_;
@@ -83,22 +83,22 @@ public:
         dictionary,
         (
             const dictionary& dict,
-            regionModel& owner
+            regionModel& region
         ),
-        (dict, owner)
+        (dict, region)
     );
 
 
     // Constructors
 
-        //- Construct null from owner
-        regionModelFunctionObject(regionModel& owner);
+        //- Construct null from region
+        regionModelFunctionObject(regionModel& region);
 
         //- Construct from dictionary
         regionModelFunctionObject
         (
             const dictionary& dict,
-            regionModel& owner,
+            regionModel& region,
             const word& modelType
         );
 
@@ -123,7 +123,7 @@ public:
     static autoPtr<regionModelFunctionObject> New
     (
         const dictionary& dict,
-        regionModel& owner,
+        regionModel& region,
         const word& modelType
     );
 
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.C b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.C
index 366ec496badd36fd3371b245115346e6b0129e3b..d3b6bf0c4cd12d8517eb2375493721e2d922ff91 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.C
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.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) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,24 +29,24 @@ License
 
 Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
 (
-    regionModel& owner
+    regionModel& region
 )
 :
     PtrList<regionModelFunctionObject>(),
-    owner_(owner),
+    regionModel_(region),
     dict_(dictionary::null)
 {}
 
 
 Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
 (
-    regionModel& owner,
+    regionModel& region,
     const dictionary& dict,
     const bool readFields
 )
 :
     PtrList<regionModelFunctionObject>(),
-    owner_(owner),
+    regionModel_(region),
     dict_(dict)
 {
     if (readFields)
@@ -69,7 +69,7 @@ Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
                     regionModelFunctionObject::New
                     (
                         dict,
-                        owner,
+                        region,
                         modelName
                     )
                 );
@@ -89,7 +89,7 @@ Foam::regionModels::regionModelFunctionObjectList::regionModelFunctionObjectList
 )
 :
     PtrList<regionModelFunctionObject>(cfol),
-    owner_(cfol.owner_),
+    regionModel_(cfol.regionModel_),
     dict_(cfol.dict_)
 {}
 
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
index 22488f18c8f4527a0c883c9c78a00ffe6a08a332..159ee4714d9f63b767b45d0dd2a0016eada17e94 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectList.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) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,8 +60,8 @@ protected:
 
     // Protected Data
 
-        //- Reference to the owner region model
-        regionModel& owner_;
+        //- Reference to the region region model
+        regionModel& regionModel_;
 
         //- Dictionary
         const dictionary dict_;
@@ -72,12 +72,12 @@ public:
     // Constructors
 
         //- Null constructor
-        regionModelFunctionObjectList(regionModel& owner);
+        regionModelFunctionObjectList(regionModel& region);
 
         //- Construct from mesh
         regionModelFunctionObjectList
         (
-            regionModel& owner,
+            regionModel& region,
             const dictionary& dict,
             const bool readFields = true
         );
@@ -97,11 +97,11 @@ public:
 
         // Access
 
-            //- Return const access to the cloud owner
-            inline const regionModel& owner() const;
+            //- Return const access to the cloud region
+            inline const regionModel& region() const;
 
-            //- Return refernce to the cloud owner
-            inline regionModel& owner();
+            //- Return refernce to the cloud region
+            inline regionModel& region();
 
             //- Return the forces dictionary
             inline const dictionary& dict() const;
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.H b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.H
index a0a90d0f67535a0852fef3cc7a8675d1034b2782..d65d19cc255c0fd8cfa3296cf8143e1f7ce9936d 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.H
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectListI.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) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,16 +24,16 @@ License
 \*---------------------------------------------------------------------------*/
 
 inline const Foam::regionModels::regionModel&
-Foam::regionModels::regionModelFunctionObjectList::owner() const
+Foam::regionModels::regionModelFunctionObjectList::region() const
 {
-    return owner_;
+    return regionModel_;
 }
 
 
 inline Foam::regionModels::regionModel&
-Foam::regionModels::regionModelFunctionObjectList::owner()
+Foam::regionModels::regionModelFunctionObjectList::region()
 {
-    return owner_;
+    return regionModel_;
 }
 
 
diff --git a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C
index 3b41bc8d3bc1305d37ef4cb7e3e0f3b92d372ea6..a1122125c3064912888c7ad1a4b419b97d5a9f0d 100644
--- a/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C
+++ b/src/regionModels/regionModel/regionModelFunctionObject/regionModelFunctionObject/regionModelFunctionObjectNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,7 @@ Foam::autoPtr<Foam::regionModels::regionModelFunctionObject>
 Foam::regionModels::regionModelFunctionObject::New
 (
     const dictionary& dict,
-    regionModel& owner,
+    regionModel& region,
     const word& modelName
 )
 {
@@ -58,7 +58,7 @@ Foam::regionModels::regionModelFunctionObject::New
             cstrIter()
             (
                 dict.subDict(modelName),
-                owner
+                region
             )
         );
 }
diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files
index 236a1c2d958c9a226df9c2e9a62a12a9ecdb98a6..f53e0a03898560af9ced82d66546439622206f01 100644
--- a/src/regionModels/surfaceFilmModels/Make/files
+++ b/src/regionModels/surfaceFilmModels/Make/files
@@ -16,6 +16,7 @@ $(KINEMATICMODELS)/force/forceList/forceList.C
 $(KINEMATICMODELS)/force/contactAngleForces/contactAngleForce/contactAngleForce.C
 $(KINEMATICMODELS)/force/contactAngleForces/distribution/distributionContactAngleForce.C
 $(KINEMATICMODELS)/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
+$(KINEMATICMODELS)/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
 $(KINEMATICMODELS)/force/thermocapillaryForce/thermocapillaryForce.C
 
 $(KINEMATICMODELS)/injectionModel/injectionModel/injectionModel.C
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
index 88bef475a6dab06439d72d890f78393e3e4f314b..479836a93a6be6b3ffef8557774e340ee2480a15 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,16 +36,16 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmSubModelBase::filmSubModelBase(surfaceFilmModel& owner)
+filmSubModelBase::filmSubModelBase(surfaceFilmModel& film)
 :
-    subModelBase(owner.outputProperties()),
-    owner_(owner)
+    subModelBase(film.outputProperties()),
+    filmModel_(film)
 {}
 
 
 filmSubModelBase::filmSubModelBase
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     const word& baseName,
     const word& modelType,
@@ -54,20 +54,20 @@ filmSubModelBase::filmSubModelBase
 :
     subModelBase
     (
-        owner.outputProperties(),
+        film.outputProperties(),
         dict,
         baseName,
         modelType,
         dictExt
     ),
-    owner_(owner)
+    filmModel_(film)
 {}
 
 
 filmSubModelBase::filmSubModelBase
 (
     const word& modelName,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     const word& baseName,
     const word& modelType
@@ -76,12 +76,12 @@ filmSubModelBase::filmSubModelBase
     subModelBase
     (
         modelName,
-        owner.outputProperties(),
+        film.outputProperties(),
         dict,
         baseName,
         modelType
     ),
-    owner_(owner)
+    filmModel_(film)
 {}
 
 
@@ -95,7 +95,7 @@ filmSubModelBase::~filmSubModelBase()
 
 bool filmSubModelBase::writeTime() const
 {
-    return active() && owner_.time().writeTime();
+    return active() && filmModel_.time().writeTime();
 }
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
index cc4e3c090bc3563f01a1c8f90f72e856758f3758..9160fa24696fb41a7ed32fc3f8aa524d6cdd4d06 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,8 +60,8 @@ protected:
 
     // Protected data
 
-        //- Reference to the owner surface film model
-        surfaceFilmModel& owner_;
+        //- Reference to the film surface film model
+        surfaceFilmModel& filmModel_;
 
 
 public:
@@ -69,23 +69,23 @@ public:
     // Constructors
 
         //- Construct null
-        filmSubModelBase(surfaceFilmModel& owner);
+        filmSubModelBase(surfaceFilmModel& film);
 
-        //- Construct from owner film wihout name
+        //- Construct from film film wihout name
         filmSubModelBase
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& baseName,
             const word& modelType,
             const word& dictExt = "Coeffs"
         );
 
-        //- Construct from owner film with name
+        //- Construct from film film with name
         filmSubModelBase
         (
             const word& modelName,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& baseName,
             const word& modelType
@@ -103,11 +103,11 @@ public:
             //- Flag to indicate when to write a property
             virtual bool writeTime() const;
 
-            //- Return const access to the owner surface film model
-            inline const surfaceFilmModel& owner() const;
+            //- Return const access to the film surface film model
+            inline const surfaceFilmModel& film() const;
 
-            //- Return the reference to the owner surface film model
-            inline surfaceFilmModel& owner();
+            //- Return the reference to the film surface film model
+            inline surfaceFilmModel& film();
 
             template<class FilmType>
             inline const FilmType& filmType() const;
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
index c9149735cd8c7baac777553b9b070a313b00d238..2dced7e4f504ccd7a9a84df7e5c28aad82d293fe 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -34,15 +34,15 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-inline const surfaceFilmModel& filmSubModelBase::owner() const
+inline const surfaceFilmModel& filmSubModelBase::film() const
 {
-    return owner_;
+    return filmModel_;
 }
 
 
-inline surfaceFilmModel& filmSubModelBase::owner()
+inline surfaceFilmModel& filmSubModelBase::film()
 {
-    return owner_;
+    return filmModel_;
 }
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
index c9e8aa719bdd2eb9da99190bbba903a398127dab..28011a63e3f2b57894504755c4d9772d78c21e23 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -35,15 +35,15 @@ namespace surfaceFilmModels
 template<class FilmType>
 const FilmType& filmSubModelBase::filmType() const
 {
-    if (!isA<FilmType>(owner_))
+    if (!isA<FilmType>(filmModel_))
     {
         FatalErrorInFunction
             << "Model " << this->modelType() << " requested film type "
-            << FilmType::typeName << " but film is type " << owner_.type()
+            << FilmType::typeName << " but film is type " << filmModel_.type()
             << abort(FatalError);
     }
 
-    return refCast<const FilmType>(owner_);
+    return refCast<const FilmType>(filmModel_);
 }
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
index 9c3845102ff2042de0f9973e553c33e078f58597..bae1439ce3384acad5d7d1a14037506c704c04d9 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,11 +61,11 @@ void constantFilmThermo::init(thermoData& td)
 
 constantFilmThermo::constantFilmThermo
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmThermoModel(typeName, owner, dict),
+    filmThermoModel(typeName, film, dict),
     name_(coeffDict_.lookup("specie")),
     rho0_("rho0"),
     mu0_("mu0"),
@@ -264,12 +264,12 @@ tmp<volScalarField> constantFilmThermo::rho() const
             IOobject
             (
                 type() + ':' + rho0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimDensity, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -291,12 +291,12 @@ tmp<volScalarField> constantFilmThermo::mu() const
             IOobject
             (
                 type() + ':' + mu0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPressure*dimTime, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -318,12 +318,12 @@ tmp<volScalarField> constantFilmThermo::sigma() const
             IOobject
             (
                 type() + ':' + sigma0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimMass/sqr(dimTime), 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -345,12 +345,12 @@ tmp<volScalarField> constantFilmThermo::Cp() const
             IOobject
             (
                 type() + ':' + Cp0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimEnergy/dimMass/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -372,12 +372,12 @@ tmp<volScalarField> constantFilmThermo::kappa() const
             IOobject
             (
                 type() + ':' + kappa0_.name_,
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPower/dimLength/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
index 10822db6e995766dd350f7fe6b1fd927881d4112..e5ef5baf90b33edbc8eb8ec95e9d66566b0ea6b7 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -140,7 +140,7 @@ public:
         //- Construct from surface film model and dictionary
         constantFilmThermo
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C
index 173e512bfa2ede7434f44aa66220c3c724df8f53..f11b3399aa871b6bd3040c551f51bd52411e792a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,21 +43,21 @@ defineRunTimeSelectionTable(filmThermoModel, dictionary);
 
 filmThermoModel::filmThermoModel
 (
-    surfaceFilmModel& owner
+    surfaceFilmModel& film
 )
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 filmThermoModel::filmThermoModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
index 86ce265ee3301f6c0c2b8ca4d941fea02a2d3e56..d6a4c296a18b2999c00ccbf0e7c5ae68316f634d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,22 +81,22 @@ public:
              filmThermoModel,
              dictionary,
              (
-                 surfaceFilmModel& owner,
+                 surfaceFilmModel& film,
                  const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        filmThermoModel(surfaceFilmModel& owner);
+        filmThermoModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmThermoModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmThermoModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
index 4832456af974f5494dc2dc087a96f409e2332f8a..af11a6986837d81e47b91076b3781ad1ab9fedec 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
@@ -55,17 +55,17 @@ addToRunTimeSelectionTable
 
 const thermoSingleLayer& liquidFilmThermo::thermoFilm() const
 {
-    if (!isA<thermoSingleLayer>(owner_))
+    if (!isA<thermoSingleLayer>(filmModel_))
     {
         FatalErrorInFunction
             << "Thermo model requires a " << thermoSingleLayer::typeName
             << " film to supply the pressure and temperature, but "
-            << owner_.type() << " film model selected.  "
+            << filmModel_.type() << " film model selected.  "
             << "Use the 'useReferenceValues' flag to employ reference "
             << "pressure and temperature" << exit(FatalError);
     }
 
-    return refCast<const thermoSingleLayer>(owner_);
+    return refCast<const thermoSingleLayer>(filmModel_);
 }
 
 
@@ -78,13 +78,13 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
 
     dict.lookup("liquid") >> name_;
 
-    if (owner_.primaryMesh().foundObject<SLGThermo>("SLGThermo"))
+    if (filmModel_.primaryMesh().foundObject<SLGThermo>("SLGThermo"))
     {
         // retrieve from film thermo
         ownLiquid_ = false;
 
         const SLGThermo& thermo =
-            owner_.primaryMesh().lookupObject<SLGThermo>("SLGThermo");
+            filmModel_.primaryMesh().lookupObject<SLGThermo>("SLGThermo");
         label id = thermo.liquidId(name_);
         liquidPtr_ = &thermo.liquids().properties()[id];
     }
@@ -94,7 +94,7 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
         ownLiquid_ = true;
 
         liquidPtr_ =
-            liquidProperties::New(dict.subDict(name_ + "Coeffs")).ptr();
+            liquidProperties::New(dict.optionalSubDict(name_ + "Coeffs")).ptr();
     }
 }
 
@@ -103,11 +103,11 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
 
 liquidFilmThermo::liquidFilmThermo
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmThermoModel(typeName, owner, dict),
+    filmThermoModel(typeName, film, dict),
     name_("unknown_liquid"),
     liquidPtr_(nullptr),
     ownLiquid_(false),
@@ -245,12 +245,12 @@ tmp<volScalarField> liquidFilmThermo::rho() const
             IOobject
             (
                 type() + ":rho",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimDensity, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -290,12 +290,12 @@ tmp<volScalarField> liquidFilmThermo::mu() const
             IOobject
             (
                 type() + ":mu",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPressure*dimTime, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -335,12 +335,12 @@ tmp<volScalarField> liquidFilmThermo::sigma() const
             IOobject
             (
                 type() + ":sigma",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimMass/sqr(dimTime), 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -380,12 +380,12 @@ tmp<volScalarField> liquidFilmThermo::Cp() const
             IOobject
             (
                 type() + ":Cp",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimEnergy/dimMass/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
@@ -425,12 +425,12 @@ tmp<volScalarField> liquidFilmThermo::kappa() const
             IOobject
             (
                 type() + ":kappa",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("0", dimPower/dimLength/dimTemperature, 0.0),
             extrapolatedCalculatedFvPatchScalarField::typeName
         )
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
index 6c952e435952d27eb623ea5d85f3262c12876c0e..20863e6fdaac3890a961f1ad2a9662b5995e5603 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -107,7 +107,7 @@ public:
         //- Construct from surface film model and dictionary
         liquidFilmThermo
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C
index 1d17112954efe585034d7219f1171f30864fa69c..90e1df57803373fd9b70b83887e76c3b9fc3dac6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,20 +41,20 @@ defineRunTimeSelectionTable(filmTurbulenceModel, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& owner)
+filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 filmTurbulenceModel::filmTurbulenceModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
index 31928cd85f9189ce2c41c290a9b2091ae83d07fb..cb35b71f90d91fdce31f48941d66941799132b13 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,22 +83,22 @@ public:
              filmTurbulenceModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        filmTurbulenceModel(surfaceFilmModel& owner);
+        filmTurbulenceModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmTurbulenceModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -108,7 +108,7 @@ public:
         //- Return a reference to the selected injection model
         static autoPtr<filmTurbulenceModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
index 188c12d06b9aff006166169d5227b6a38ebd19e9..44046a183a63bf04d82f4c2a4967729419c200e5 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable(filmTurbulenceModel, laminar, dictionary);
 
 laminar::laminar
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmTurbulenceModel(type(), owner, dict),
+    filmTurbulenceModel(type(), film, dict),
     Cf_(readScalar(coeffDict_.lookup("Cf")))
 {}
 
@@ -77,19 +77,19 @@ tmp<volVectorField> laminar::Us() const
             IOobject
             (
                 typeName + ":Us",
-                owner_.regionMesh().time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.regionMesh().time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedVector("zero", dimVelocity, Zero),
             extrapolatedCalculatedFvPatchVectorField::typeName
         )
     );
 
     // apply quadratic profile
-    tUs.ref() = Foam::sqrt(2.0)*owner_.U();
+    tUs.ref() = Foam::sqrt(2.0)*filmModel_.U();
     tUs.ref().correctBoundaryConditions();
 
     return tUs;
@@ -105,12 +105,12 @@ tmp<volScalarField> laminar::mut() const
             IOobject
             (
                 typeName + ":mut",
-                owner_.regionMesh().time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.regionMesh().time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("zero", dimMass/dimLength/dimTime, 0.0)
         )
     );
@@ -125,7 +125,7 @@ tmp<fvVectorMatrix> laminar::Su(volVectorField& U) const
 {
     // local reference to film model
     const kinematicSingleLayer& film =
-        static_cast<const kinematicSingleLayer&>(owner_);
+        static_cast<const kinematicSingleLayer&>(filmModel_);
 
     // local references to film fields
     const volScalarField& mu = film.mu();
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
index 5ff3b877658e0cd8592fd9cdd3154a8a2cc64d8a..71aa54c1e970dd5e9a403791f7c837827c685bfe 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        laminar(surfaceFilmModel& owner, const dictionary& dict);
+        laminar(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
index 2271fde826a7cb446da3f4faea208ef1c60ca07e..957b571e495046d9a3431868a64f7f3d9165c574 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
@@ -27,7 +27,6 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "fvcGrad.H"
 #include "unitConversion.H"
-#include "fvPatchField.H"
 #include "meshWavePatchDistMethod.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -47,11 +46,14 @@ defineTypeNameAndDebug(contactAngleForce, 0);
 
 void contactAngleForce::initialise()
 {
-    const wordReList zeroForcePatches(coeffDict_.lookup("zeroForcePatches"));
+    const wordReList zeroForcePatches
+    (
+        coeffDict_.lookupOrDefault<wordReList>("zeroForcePatches", wordReList())
+    );
 
     if (zeroForcePatches.size())
     {
-        const polyBoundaryMesh& pbm = owner_.regionMesh().boundaryMesh();
+        const polyBoundaryMesh& pbm = filmModel_.regionMesh().boundaryMesh();
         scalar dLim = readScalar(coeffDict_.lookup("zeroForceDistance"));
 
         Info<< "        Assigning zero contact force within " << dLim
@@ -66,19 +68,19 @@ void contactAngleForce::initialise()
         }
 
         // Temporary implementation until run-time selection covers this case
-        patchDistMethods::meshWave dist(owner_.regionMesh(), patchIDs);
+        patchDistMethods::meshWave dist(filmModel_.regionMesh(), patchIDs);
         volScalarField y
         (
             IOobject
             (
                 "y",
-                owner_.regionMesh().time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.regionMesh().time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("y", dimLength, GREAT)
         );
         dist.correct(y);
@@ -93,23 +95,23 @@ void contactAngleForce::initialise()
 contactAngleForce::contactAngleForce
 (
     const word& typeName,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    force(typeName, owner, dict),
+    force(typeName, film, dict),
     Ccf_(readScalar(coeffDict_.lookup("Ccf"))),
     mask_
     (
         IOobject
         (
             typeName + ":contactForceMask",
-            owner_.time().timeName(),
-            owner_.regionMesh(),
+            filmModel_.time().timeName(),
+            filmModel_.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner_.regionMesh(),
+        filmModel_.regionMesh(),
         dimensionedScalar("mask", dimless, 1.0)
     )
 {
@@ -134,25 +136,25 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
             IOobject
             (
                 typeName + ":contactForce",
-                owner_.time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedVector("zero", dimForce/dimArea, Zero)
         )
     );
 
     vectorField& force = tForce.ref().primitiveFieldRef();
 
-    const labelUList& own = owner_.regionMesh().owner();
-    const labelUList& nbr = owner_.regionMesh().neighbour();
+    const labelUList& own = filmModel_.regionMesh().owner();
+    const labelUList& nbr = filmModel_.regionMesh().neighbour();
 
-    const scalarField& magSf = owner_.magSf();
+    const scalarField& magSf = filmModel_.magSf();
 
-    const volScalarField& alpha = owner_.alpha();
-    const volScalarField& sigma = owner_.sigma();
+    const volScalarField& alpha = filmModel_.alpha();
+    const volScalarField& sigma = filmModel_.sigma();
 
     const tmp<volScalarField> ttheta = theta();
     const volScalarField& theta = ttheta();
@@ -176,7 +178,7 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
 
         if (celli != -1 && mask_[celli] > 0.5)
         {
-            const scalar invDx = owner_.regionMesh().deltaCoeffs()[facei];
+            const scalar invDx = filmModel_.regionMesh().deltaCoeffs()[facei];
             const vector n =
                 gradAlpha[celli]/(mag(gradAlpha[celli]) + ROOTVSMALL);
             const scalar cosTheta = cos(degToRad(theta[celli]));
@@ -186,27 +188,29 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
 
     forAll(alpha.boundaryField(), patchi)
     {
-        if (!owner_.isCoupledPatch(patchi))
+        if (!filmModel_.isCoupledPatch(patchi))
         {
-            const fvPatchField<scalar>& alphaf = alpha.boundaryField()[patchi];
-            const fvPatchField<scalar>& maskf = mask_.boundaryField()[patchi];
-            const scalarField& invDx = alphaf.patch().deltaCoeffs();
-            const labelUList& faceCells = alphaf.patch().faceCells();
-
-            forAll(alphaf, facei)
+            const fvPatchField<scalar>& alphaPf = alpha.boundaryField()[patchi];
+            const fvPatchField<scalar>& maskPf = mask_.boundaryField()[patchi];
+            const fvPatchField<scalar>& sigmaPf = sigma.boundaryField()[patchi];
+            const fvPatchField<scalar>& thetaPf = theta.boundaryField()[patchi];
+            const scalarField& invDx = alphaPf.patch().deltaCoeffs();
+            const labelUList& faceCells = alphaPf.patch().faceCells();
+
+            forAll(alphaPf, facei)
             {
-                if (maskf[facei] > 0.5)
+                if (maskPf[facei] > 0.5)
                 {
                     label cellO = faceCells[facei];
 
-                    if ((alpha[cellO] > 0.5) && (alphaf[facei] < 0.5))
+                    if ((alpha[cellO] > 0.5) && (alphaPf[facei] < 0.5))
                     {
                         const vector n =
                             gradAlpha[cellO]
                            /(mag(gradAlpha[cellO]) + ROOTVSMALL);
-                        const scalar cosTheta = cos(degToRad(theta[cellO]));
+                        const scalar cosTheta = cos(degToRad(thetaPf[facei]));
                         force[cellO] +=
-                            Ccf_*n*sigma[cellO]*(1 - cosTheta)/invDx[facei];
+                            Ccf_*n*sigmaPf[facei]*(1 - cosTheta)/invDx[facei];
                     }
                 }
             }
@@ -215,13 +219,15 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
 
     force /= magSf;
 
-    if (owner_.regionMesh().time().writeTime())
+    if (filmModel_.regionMesh().time().writeTime())
     {
         tForce().write();
     }
 
-    tmp<fvVectorMatrix>
-        tfvm(new fvVectorMatrix(U, dimForce/dimArea*dimVolume));
+    tmp<fvVectorMatrix> tfvm
+    (
+        new fvVectorMatrix(U, dimForce/dimArea*dimVolume)
+    );
 
     tfvm.ref() += tForce;
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
index 4d46cb6b013b15baeb3371c4c7cdbecd2d57dd60..4d2e86e174f4887837f95532c749adec90e9fd7d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.H
@@ -96,7 +96,7 @@ public:
         contactAngleForce
         (
             const word& typeName,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
index c245bb238424a82eed24c014d3ca74cafba59303..85333cc828e8960a94b17ace5c5265e5e41af220 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
@@ -45,15 +45,15 @@ addToRunTimeSelectionTable(force, distributionContactAngleForce, dictionary);
 
 distributionContactAngleForce::distributionContactAngleForce
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    contactAngleForce(typeName, owner, dict),
+    contactAngleForce(typeName, film, dict),
     rndGen_(label(0), -1),
     distribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             coeffDict_.subDict("distribution"),
             rndGen_
@@ -79,10 +79,10 @@ tmp<volScalarField> distributionContactAngleForce::theta() const
             IOobject
             (
                 typeName + ":theta",
-                owner_.time().timeName(),
-                owner_.regionMesh()
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh()
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("0", dimless, 0)
         )
     );
@@ -97,7 +97,7 @@ tmp<volScalarField> distributionContactAngleForce::theta() const
 
     forAll(theta.boundaryField(), patchi)
     {
-        if (!owner_.isCoupledPatch(patchi))
+        if (!filmModel_.isCoupledPatch(patchi))
         {
             fvPatchField<scalar>& thetaf = theta.boundaryFieldRef()[patchi];
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
index 7ad68e5b387f4dff0de68bb74cec930fcea78b4d..2a0ace4303efe58a540613c2f8921bbc8b565c1a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
@@ -29,7 +29,7 @@ Description
 
 See also
     Foam::regionModels::surfaceFilmModels::contactAngleForce
-    Foam::distributionModels::distributionModel
+    Foam::distributionModel
 
 SourceFiles
     distributionContactAngleForce.C
@@ -53,7 +53,7 @@ namespace surfaceFilmModels
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class distributionContactAngleForce Declaration
+                Class distributionContactAngleForce Declaration
 \*---------------------------------------------------------------------------*/
 
 class distributionContactAngleForce
@@ -66,7 +66,7 @@ class distributionContactAngleForce
         cachedRandom rndGen_;
 
         //- Parcel size PDF model
-        const autoPtr<distributionModels::distributionModel> distribution_;
+        const autoPtr<distributionModel> distribution_;
 
 
     // Private member functions
@@ -95,7 +95,7 @@ public:
         //- Construct from surface film model
         distributionContactAngleForce
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
new file mode 100644
index 0000000000000000000000000000000000000000..62ffeba4f93a5da6f2930c56a4384c4b8d8fd432
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
@@ -0,0 +1,139 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "perturbedTemperatureDependentContactAngleForce.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(perturbedTemperatureDependentContactAngleForce, 0);
+addToRunTimeSelectionTable
+(
+    force,
+    perturbedTemperatureDependentContactAngleForce,
+    dictionary
+);
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+perturbedTemperatureDependentContactAngleForce::
+perturbedTemperatureDependentContactAngleForce
+(
+    surfaceFilmModel& film,
+    const dictionary& dict
+)
+:
+    contactAngleForce(typeName, film, dict),
+    thetaPtr_(Function1<scalar>::New("theta", coeffDict_)),
+    rndGen_(label(0), -1),
+    distribution_
+    (
+        distributionModel::New
+        (
+            coeffDict_.subDict("distribution"),
+            rndGen_
+        )
+    )
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+perturbedTemperatureDependentContactAngleForce::
+~perturbedTemperatureDependentContactAngleForce()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+tmp<volScalarField>
+perturbedTemperatureDependentContactAngleForce::theta() const
+{
+    tmp<volScalarField> ttheta
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                typeName + ":theta",
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh()
+            ),
+            filmModel_.regionMesh(),
+            dimensionedScalar("0", dimless, 0)
+        )
+    );
+
+    volScalarField& theta = ttheta.ref();
+    volScalarField::Internal& thetai = theta.ref();
+
+    const volScalarField& T = filmModel_.T();
+
+    // Initialize with the function of temperature
+    thetai.field() = thetaPtr_->value(T());
+
+    // Add the stochastic perturbation
+    forAll(thetai, celli)
+    {
+        thetai[celli] += distribution_->sample();
+    }
+
+    forAll(theta.boundaryField(), patchi)
+    {
+        if (!filmModel_.isCoupledPatch(patchi))
+        {
+            fvPatchField<scalar>& thetaf = theta.boundaryFieldRef()[patchi];
+
+            // Initialize with the function of temperature
+            thetaf = thetaPtr_->value(T.boundaryField()[patchi]);
+
+            // Add the stochastic perturbation
+            forAll(thetaf, facei)
+            {
+                thetaf[facei] += distribution_->sample();
+            }
+        }
+    }
+
+    return ttheta;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H
new file mode 100644
index 0000000000000000000000000000000000000000..00dddb2577706148a3c847e384dbc9363d0f1c49
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H
@@ -0,0 +1,134 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::regionModels::surfaceFilmModels::
+        perturbedTemperatureDependentContactAngleForce
+
+Description
+    Temperature dependent contact angle force with a stochastic perturbation
+
+    The contact angle in degrees is specified as a Foam::Function1 type, to
+    enable the use of, e.g.  contant, polynomial, table values and the
+    stochastic perturbation obtained from a
+    Foam::distributionModels::distributionModel
+
+See also
+    Foam::regionModels::surfaceFilmModels::contactAngleForce
+    Foam::regionModels::surfaceFilmModels::temperatureDependentContactAngleForce
+    Foam::regionModels::surfaceFilmModels::distributionContactAngleForce
+    Foam::Function1Types
+    Foam::distributionModel
+
+SourceFiles
+    perturbedTemperatureDependentContactAngleForce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef perturbedTemperatureDependentContactAngleForce_H
+#define perturbedTemperatureDependentContactAngleForce_H
+
+#include "contactAngleForce.H"
+#include "Function1.H"
+#include "distributionModel.H"
+#include "cachedRandom.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+       Class perturbedTemperatureDependentContactAngleForce Declaration
+\*---------------------------------------------------------------------------*/
+
+class perturbedTemperatureDependentContactAngleForce
+:
+    public contactAngleForce
+{
+    // Private Data
+
+        //- Contact angle function
+        autoPtr<Function1<scalar>> thetaPtr_;
+
+        //- Random number generator
+        cachedRandom rndGen_;
+
+        //- Parcel size PDF model
+        const autoPtr<distributionModel> distribution_;
+
+
+    // Private member functions
+
+        //- Disallow default bitwise copy construct
+        perturbedTemperatureDependentContactAngleForce
+        (
+            const perturbedTemperatureDependentContactAngleForce&
+        );
+
+        //- Disallow default bitwise assignment
+        void operator=(const perturbedTemperatureDependentContactAngleForce&);
+
+
+protected:
+
+        //- Return the contact angle field
+        virtual tmp<volScalarField> theta() const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("perturbedTemperatureDependentContactAngle");
+
+
+    // Constructors
+
+        //- Construct from surface film model
+        perturbedTemperatureDependentContactAngleForce
+        (
+            surfaceFilmModel& film,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~perturbedTemperatureDependentContactAngleForce();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
index 9164fd64d5a3a58e538019a93906da1907d9c959..1c7a51ad08ad4e0a73b8ce68841ed358e9f2485c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
@@ -50,11 +50,11 @@ addToRunTimeSelectionTable
 
 temperatureDependentContactAngleForce::temperatureDependentContactAngleForce
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    contactAngleForce(typeName, owner, dict),
+    contactAngleForce(typeName, film, dict),
     thetaPtr_(Function1<scalar>::New("theta", coeffDict_))
 {}
 
@@ -76,23 +76,23 @@ tmp<volScalarField> temperatureDependentContactAngleForce::theta() const
             IOobject
             (
                 typeName + ":theta",
-                owner_.time().timeName(),
-                owner_.regionMesh()
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh()
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar("0", dimless, 0)
         )
     );
 
     volScalarField& theta = ttheta.ref();
 
-    const volScalarField& T = owner_.T();
+    const volScalarField& T = filmModel_.T();
 
     theta.ref().field() = thetaPtr_->value(T());
 
     forAll(theta.boundaryField(), patchi)
     {
-        if (!owner_.isCoupledPatch(patchi))
+        if (!filmModel_.isCoupledPatch(patchi))
         {
             theta.boundaryFieldRef()[patchi] =
                 thetaPtr_->value(T.boundaryField()[patchi]);
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
index 2c79e1b79b6dbcd2615e093358ec157abb9258f1..ca15ec0c6ab21d138dac40311d1abf82e8c841a5 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
@@ -27,7 +27,7 @@ Class
 Description
     Temperature dependent contact angle force
 
-    The contact angle in degrees is specified as a \c Function1 type, to
+    The contact angle in degrees is specified as a Foam::Function1 type, to
     enable the use of, e.g.  contant, polynomial, table values.
 
 See also
@@ -55,7 +55,7 @@ namespace surfaceFilmModels
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class temperatureDependentContactAngleForce Declaration
+            Class temperatureDependentContactAngleForce Declaration
 \*---------------------------------------------------------------------------*/
 
 class temperatureDependentContactAngleForce
@@ -97,7 +97,7 @@ public:
         //- Construct from surface film model
         temperatureDependentContactAngleForce
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C
index 976a04913a3629bbeaa0ea61f80e9b645b714c6a..472c8b21c057092f4001e2e61dd9c47313059636 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,20 +41,20 @@ defineRunTimeSelectionTable(force, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-force::force(surfaceFilmModel& owner)
+force::force(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 force::force
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
index 9ca13614acedffae90377a9ddbd99779e190850a..000b7d9c41f5b8da9dc82263afa121310d4f387e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,22 +82,22 @@ public:
              force,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        force(surfaceFilmModel& owner);
+        force(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         force
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -107,7 +107,7 @@ public:
         //- Return a reference to the selected force model
         static autoPtr<force> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& modelType
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
index 56a1454c46b35e48fdb6c2fc09a80d4ad6e4cddc..ea63cc2334c740a8c12a9a550dd438eea2434814 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,7 +36,7 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-forceList::forceList(surfaceFilmModel& owner)
+forceList::forceList(surfaceFilmModel& film)
 :
     PtrList<force>()
 {}
@@ -44,7 +44,7 @@ forceList::forceList(surfaceFilmModel& owner)
 
 forceList::forceList
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
@@ -59,7 +59,7 @@ forceList::forceList
 
         forAll(models, i)
         {
-            set(i, force::New(owner, dict, models[i]));
+            set(i, force::New(film, dict, models[i]));
         }
     }
     else
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
index e09dc14d7104db1d986854248607273508752099..bc6c28c1e2fff90f51279884ef9e37d18891bbfd 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -60,12 +60,12 @@ public:
     // Constructors
 
         //- Construct null
-        forceList(surfaceFilmModel& owner);
+        forceList(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         forceList
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
index e33127c352ad38246a837380ee4a1a91074bceb9..be30e2c274775b3c8f0c6deed4e2308f83ee5f29 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,11 +45,11 @@ addToRunTimeSelectionTable(force, thermocapillaryForce, dictionary);
 
 thermocapillaryForce::thermocapillaryForce
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    force(owner)
+    force(film)
 {}
 
 
@@ -63,8 +63,8 @@ thermocapillaryForce::~thermocapillaryForce()
 
 tmp<fvVectorMatrix> thermocapillaryForce::correct(volVectorField& U)
 {
-    const volScalarField& alpha = owner_.alpha();
-    const volScalarField& sigma = owner_.sigma();
+    const volScalarField& alpha = filmModel_.alpha();
+    const volScalarField& sigma = filmModel_.sigma();
 
     tmp<fvVectorMatrix>
         tfvm(new fvVectorMatrix(U, dimForce/dimArea*dimVolume));
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
index 85e404f4b2fa346cdee560b168b4095b9b01f088..ee2f1a0b548c1fa30a05dc12dd344f9cfad1b02a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,7 +76,7 @@ public:
         //- Construct from surface film model
         thermocapillaryForce
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
index 611849316e4100bb71f00c765e49cd9bddf343c0..fd7fd0cc81b516fe333273deed219b11dc966baf 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,15 +45,15 @@ addToRunTimeSelectionTable(injectionModel, BrunDrippingInjection, dictionary);
 
 BrunDrippingInjection::BrunDrippingInjection
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
+    injectionModel(type(), film, dict),
     ubarStar_(coeffDict_.lookupOrDefault("ubarStar", 1.62208)),
     dCoeff_(coeffDict_.lookupOrDefault("dCoeff", 3.3)),
     deltaStable_(coeffDict_.lookupOrDefault("deltaStable", scalar(0))),
-    diameter_(owner.regionMesh().nCells(), -1.0)
+    diameter_(film.regionMesh().nCells(), -1.0)
 {}
 
 
@@ -73,7 +73,7 @@ void BrunDrippingInjection::correct
 )
 {
     const kinematicSingleLayer& film =
-        refCast<const kinematicSingleLayer>(this->owner());
+        refCast<const kinematicSingleLayer>(this->film());
 
     // Calculate available dripping mass
     tmp<volScalarField> tsinAlpha(film.gNorm()/mag(film.g()));
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
index 00f23444123610b29043e6631bb1ec3aea9a9227..91ba6a84ec592a7e1d9d99fdade915f019200a59 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,7 +118,7 @@ public:
         //- Construct from surface film model
         BrunDrippingInjection
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
index bedaa4a9e5181bf72b7b87efdf9d1930169ec456..9c97df0880f94fc4eb33a1bf8afd9f2f33d13920 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ tmp<volScalarField> curvatureSeparation::calcInvR1
 /*
     tmp<volScalarField> tinvR1
     (
-        new volScalarField("invR1", fvc::div(owner().nHat()))
+        new volScalarField("invR1", fvc::div(film().nHat()))
     );
 */
 
@@ -82,7 +82,7 @@ tmp<volScalarField> curvatureSeparation::calcInvR1
 
     // apply defined patch radii
     const scalar rMin = 1e-6;
-    const fvMesh& mesh = owner().regionMesh();
+    const fvMesh& mesh = film().regionMesh();
     const polyBoundaryMesh& pbm = mesh.boundaryMesh();
     forAll(definedPatchRadii_, i)
     {
@@ -115,7 +115,7 @@ tmp<scalarField> curvatureSeparation::calcCosAngle
     const surfaceScalarField& phi
 ) const
 {
-    const fvMesh& mesh = owner().regionMesh();
+    const fvMesh& mesh = film().regionMesh();
     const vectorField nf(mesh.Sf()/mesh.magSf());
     const labelUList& own = mesh.owner();
     const labelUList& nbr = mesh.neighbour();
@@ -220,15 +220,15 @@ tmp<scalarField> curvatureSeparation::calcCosAngle
 
 curvatureSeparation::curvatureSeparation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
-    gradNHat_(fvc::grad(owner.nHat())),
+    injectionModel(type(), film, dict),
+    gradNHat_(fvc::grad(film.nHat())),
     deltaByR1Min_(coeffDict_.lookupOrDefault<scalar>("deltaByR1Min", 0.0)),
     definedPatchRadii_(),
-    magG_(mag(owner.g().value())),
+    magG_(mag(film.g().value())),
     gHat_(Zero)
 {
     if (magG_ < ROOTVSMALL)
@@ -238,10 +238,10 @@ curvatureSeparation::curvatureSeparation
             << exit(FatalError);
     }
 
-    gHat_ = owner.g().value()/magG_;
+    gHat_ = film.g().value()/magG_;
 
     List<Tuple2<word, scalar>> prIn(coeffDict_.lookup("definedPatchRadii"));
-    const wordList& allPatchNames = owner.regionMesh().boundaryMesh().names();
+    const wordList& allPatchNames = film.regionMesh().boundaryMesh().names();
 
     DynamicList<Tuple2<label, scalar>> prData(allPatchNames.size());
 
@@ -284,7 +284,7 @@ void curvatureSeparation::correct
 )
 {
     const kinematicSingleLayer& film =
-        refCast<const kinematicSingleLayer>(this->owner());
+        refCast<const kinematicSingleLayer>(this->film());
     const fvMesh& mesh = film.regionMesh();
 
     const volScalarField& delta = film.delta();
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
index 26d8fa57a0ef6b80e9368f9bf21d75f859685e30..8d788ede24c8795d0cdee0748d660f801835b6a0 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -121,7 +121,7 @@ public:
         //- Construct from surface film model
         curvatureSeparation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
index a429af6bec6e2bcc3f947cff521044b5b6cf291c..cfd6d408f01e465d9f02377637c367c11c7c5582 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,23 +50,23 @@ addToRunTimeSelectionTable(injectionModel, drippingInjection, dictionary);
 
 drippingInjection::drippingInjection
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
+    injectionModel(type(), film, dict),
     deltaStable_(readScalar(coeffDict_.lookup("deltaStable"))),
     particlesPerParcel_(readScalar(coeffDict_.lookup("particlesPerParcel"))),
     rndGen_(label(0), -1),
     parcelDistribution_
     (
-        distributionModels::distributionModel::New
+        distributionModel::New
         (
             coeffDict_.subDict("parcelDistribution"),
             rndGen_
         )
     ),
-    diameter_(owner.regionMesh().nCells(), -1.0)
+    diameter_(film.regionMesh().nCells(), -1.0)
 {}
 
 
@@ -86,7 +86,7 @@ void drippingInjection::correct
 )
 {
     const kinematicSingleLayer& film =
-        refCast<const kinematicSingleLayer>(this->owner());
+        refCast<const kinematicSingleLayer>(this->film());
 
     const scalar pi = constant::mathematical::pi;
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
index e2e2d607e75d027b6ea968acb13fcf8bd7ed1f3a..af9583bf22ab2cce545bade7259532872c94c636 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -87,7 +87,7 @@ protected:
         cachedRandom rndGen_;
 
         //- Parcel size PDF model
-        const autoPtr<distributionModels::distributionModel>
+        const autoPtr<distributionModel>
             parcelDistribution_;
 
         //- Diameters of particles to inject into the dripping
@@ -105,7 +105,7 @@ public:
         //- Construct from surface film model
         drippingInjection
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
index 12656a7300da33e1f41e938e1fca606a42944c8d..585ed54ddc4d35a0278ab50b093a84f6c888bea6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,9 +49,9 @@ void injectionModel::addToInjectedMass(const scalar dMass)
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-injectionModel::injectionModel(surfaceFilmModel& owner)
+injectionModel::injectionModel(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner),
+    filmSubModelBase(film),
     injectedMass_(0.0)
 {}
 
@@ -59,11 +59,11 @@ injectionModel::injectionModel(surfaceFilmModel& owner)
 injectionModel::injectionModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType),
+    filmSubModelBase(film, dict, typeName, modelType),
     injectedMass_(0.0)
 {}
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
index b365ff737c3fb9edfe501311ee93ca53f484e9aa..36d7a8bfd3b8426f5fa2a9b4cacc1dbbc126d225 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -98,23 +98,23 @@ public:
              injectionModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
 
     // Constructors
 
         //- Construct null
-        injectionModel(surfaceFilmModel& owner);
+        injectionModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         injectionModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -124,7 +124,7 @@ public:
         //- Return a reference to the selected injection model
         static autoPtr<injectionModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             const word& mdoelType
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
index f860276b7af326546bc558a72fe026cce799960c..e33a5262a697f3824f9ffeac1374145957f3f112 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,16 +36,16 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-injectionModelList::injectionModelList(surfaceFilmModel& owner)
+injectionModelList::injectionModelList(surfaceFilmModel& film)
 :
     PtrList<injectionModel>(),
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 injectionModelList::injectionModelList
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
@@ -53,12 +53,12 @@ injectionModelList::injectionModelList
     filmSubModelBase
     (
         "injectionModelList",
-        owner,
+        film,
         dict,
         "injectionModelList",
         "injectionModelList"
     ),
-    massInjected_(owner.intCoupledPatchIDs().size(), 0.0)
+    massInjected_(film.intCoupledPatchIDs().size(), 0.0)
 {
     const wordList activeModels(dict.lookup("injectionModels"));
 
@@ -77,7 +77,7 @@ injectionModelList::injectionModelList
         forAllConstIter(wordHashSet, models, iter)
         {
             const word& model = iter.key();
-            set(i, injectionModel::New(owner, dict, model));
+            set(i, injectionModel::New(film, dict, model));
             i++;
         }
     }
@@ -114,7 +114,7 @@ void injectionModelList::correct
     massToInject.correctBoundaryConditions();
     diameterToInject.correctBoundaryConditions();
 
-    const labelList& patchIDs = owner().intCoupledPatchIDs();
+    const labelList& patchIDs = film().intCoupledPatchIDs();
 
     forAll(patchIDs, i)
     {
@@ -127,7 +127,7 @@ void injectionModelList::correct
 
 void injectionModelList::info(Ostream& os)
 {
-    const polyBoundaryMesh& pbm = owner().regionMesh().boundaryMesh();
+    const polyBoundaryMesh& pbm = film().regionMesh().boundaryMesh();
 
     scalar injectedMass = 0;
     scalarField patchInjectedMasses(pbm.size(), 0);
@@ -157,7 +157,7 @@ void injectionModelList::info(Ostream& os)
     Pstream::listCombineGather(mass, plusEqOp<scalar>());
     mass += mass0;
 
-    const labelList& patchIDs = owner().intCoupledPatchIDs();
+    const labelList& patchIDs = film().intCoupledPatchIDs();
 
     forAll(patchIDs, i)
     {
@@ -166,7 +166,7 @@ void injectionModelList::info(Ostream& os)
             << mass[i] << endl;
     }
 
-    if (owner().time().writeTime())
+    if (film().time().writeTime())
     {
         setBaseProperty("massInjected", mass);
         massInjected_ = 0.0;
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
index 0feb88aeefd6918ff6d9aa0d78aa51c780adebec..ce98fac5c2e5a8ef1bd09eb3900ce2d88bbfedea 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -79,12 +79,12 @@ public:
     // Constructors
 
         //- Construct null
-        injectionModelList(surfaceFilmModel& owner);
+        injectionModelList(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         injectionModelList
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
index cd0e6a2fb85e1725948eb70bc519d69cf633e272..edd58b40045fe8728c0c49316d6f88522cd1439d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,14 +44,14 @@ addToRunTimeSelectionTable(injectionModel, patchInjection, dictionary);
 
 patchInjection::patchInjection
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    injectionModel(type(), owner, dict),
+    injectionModel(type(), film, dict),
     deltaStable_(coeffDict_.lookupOrDefault<scalar>("deltaStable", 0.0))
 {
-    const polyBoundaryMesh& pbm = owner.regionMesh().boundaryMesh();
+    const polyBoundaryMesh& pbm = film.regionMesh().boundaryMesh();
     patchIDs_.setSize(pbm.size());
 
     if (coeffDict_.found("patches"))
@@ -110,11 +110,11 @@ void patchInjection::correct
     // Do not correct if no patches selected
     if (!patchIDs_.size()) return;
 
-    const scalarField& delta = owner().delta();
-    const scalarField& rho = owner().rho();
-    const scalarField& magSf = owner().magSf();
+    const scalarField& delta = film().delta();
+    const scalarField& rho = film().rho();
+    const scalarField& magSf = film().magSf();
 
-    const polyBoundaryMesh& pbm = owner().regionMesh().boundaryMesh();
+    const polyBoundaryMesh& pbm = film().regionMesh().boundaryMesh();
 
     forAll(patchIDs_, pidi)
     {
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
index 1e1bc813f8ed25872081981af4c81485eb23fa20..d0880c071193a648d89f5c6a1ecc5cc8e359d4f4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,7 +86,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        patchInjection(surfaceFilmModel& owner, const dictionary& dict);
+        patchInjection(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
index 807ca3ad9111b04d59dee6e5522d6d4b537e3745..64c6be61185044466ef2786766c6e25feb34839d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,34 +51,34 @@ addToRunTimeSelectionTable
 
 constantRadiation::constantRadiation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(typeName, owner, dict),
-    QrConst_
+    filmRadiationModel(typeName, film, dict),
+    qrConst_
     (
         IOobject
         (
-            typeName + ":QrConst",
-            owner.time().timeName(),
-            owner.regionMesh(),
+            typeName + ":qrConst",
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh()
+        film.regionMesh()
     ),
     mask_
     (
         IOobject
         (
             typeName + ":mask",
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("one", dimless, 1.0)
     ),
     absorptivity_(readScalar(coeffDict_.lookup("absorptivity"))),
@@ -110,25 +110,25 @@ tmp<volScalarField> constantRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
 
-    const scalar time = owner().time().value();
+    const scalar time = film().time().value();
 
     if ((time >= timeStart_) && (time <= timeStart_ + duration_))
     {
         scalarField& Shs = tShs.ref();
-        const scalarField& Qr = QrConst_;
-        const scalarField& alpha = owner_.alpha();
+        const scalarField& qr = qrConst_;
+        const scalarField& alpha = filmModel_.alpha();
 
-        Shs = mask_*Qr*alpha*absorptivity_;
+        Shs = mask_*qr*alpha*absorptivity_;
     }
 
     return tShs;
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
index b1e3b536ebfc60e67de9a86abe4710d2984f2a08..f33dc1dbe8ff9ea81e4bf6ecb0d5387485c116bc 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,7 +63,7 @@ private:
     // Private data
 
         //- Constant radiative flux [kg/s3]
-        volScalarField QrConst_;
+        volScalarField qrConst_;
 
         //- Radiation mask
         volScalarField mask_;
@@ -98,7 +98,7 @@ public:
         //- Construct from surface film model and dictionary
         constantRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -115,7 +115,7 @@ public:
             virtual void correct();
 
             //- Return the radiation sensible enthalpy source
-            //  Also updates QrNet
+            //  Also updates qrNet
             virtual tmp<volScalarField> Shs();
 };
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
index 34c8ffff1d050ae8d5ec10e951c07e49d4628dda..3b0dabe7d1c5e1ffdad2a58c470211f42157e2a7 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,20 +41,20 @@ defineRunTimeSelectionTable(filmRadiationModel, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmRadiationModel::filmRadiationModel(surfaceFilmModel& owner)
+filmRadiationModel::filmRadiationModel(surfaceFilmModel& film)
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 filmRadiationModel::filmRadiationModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
index b53dc65921410b35ba026844ab34d7500214b84a..b73e91cf23d12d886ea2007660b5bf5b4319b76e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,22 +81,22 @@ public:
              filmRadiationModel,
              dictionary,
              (
-                 surfaceFilmModel& owner,
+                 surfaceFilmModel& film,
                  const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        filmRadiationModel(surfaceFilmModel& owner);
+        filmRadiationModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmRadiationModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmRadiationModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
index 1adcf93ae0e8eb98842d821e365467e31d7d3a7e..5dd84d7f6ec2a4150bdd22d1c446a36234c4de62 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable
 
 noRadiation::noRadiation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(owner)
+    filmRadiationModel(film)
 {}
 
 
@@ -80,12 +80,12 @@ tmp<volScalarField> noRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
index 5e6b373f0f65032603a70b13d016d0ccf3767c85..fa24e18c251c8035d2dbb1be439ed7199d0f257e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -77,7 +77,7 @@ public:
         //- Construct from surface film model and dictionary
         noRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
index 55ea60d3224cf3455e7020ce0e0b4459e093edb0..ec9236d802e5487659a49a08ca0a2691954cf500 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,24 +51,24 @@ addToRunTimeSelectionTable
 
 primaryRadiation::primaryRadiation
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(typeName, owner, dict),
+    filmRadiationModel(typeName, film, dict),
     QinPrimary_
     (
         IOobject
         (
             "Qin", // same name as Qin on primary region to enable mapping
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
-        owner.mappedPushedFieldPatchTypes<scalar>()
+        film.mappedPushedFieldPatchTypes<scalar>()
     )
 {}
 
@@ -97,19 +97,19 @@ tmp<volScalarField> primaryRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
 
     scalarField& Shs = tShs.ref();
     const scalarField& QinP = QinPrimary_;
-    const scalarField& alpha = owner_.alpha();
+    const scalarField& alpha = filmModel_.alpha();
 
     Shs = QinP*alpha;
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
index b6568c5c21880e0d886acbe0af116d1f45a38de5..d2b9da585cf3c8decdb8b63f7bc28eec76164aab 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,7 +84,7 @@ public:
         //- Construct from surface film model and dictionary
         primaryRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -101,7 +101,7 @@ public:
             virtual void correct();
 
             //- Return the radiation sensible enthalpy source
-            //  Also updates QrNet
+            //  Also updates qrNet
             virtual tmp<volScalarField> Shs();
 };
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
index d8525ce4a03ff367a3badc468ef1ccbf848057a7..f333752847f435abf238e5af01eea0e2c0c97156 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,36 +52,36 @@ addToRunTimeSelectionTable
 
 standardRadiation::standardRadiation
 (
-     surfaceFilmModel& owner,
+     surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmRadiationModel(typeName, owner, dict),
+    filmRadiationModel(typeName, film, dict),
     QinPrimary_
     (
         IOobject
         (
             "Qin", // same name as Qin on primary region to enable mapping
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
-        owner.mappedPushedFieldPatchTypes<scalar>()
+        film.mappedPushedFieldPatchTypes<scalar>()
     ),
-    QrNet_
+    qrNet_
     (
         IOobject
         (
-            "QrNet",
-            owner.time().timeName(),
-            owner.regionMesh(),
+            "qrNet",
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
         zeroGradientFvPatchScalarField::typeName
     ),
@@ -100,7 +100,7 @@ standardRadiation::~standardRadiation()
 
 void standardRadiation::correct()
 {
-    // Transfer Qr from primary region
+    // Transfer qr from primary region
     QinPrimary_.correctBoundaryConditions();
 }
 
@@ -114,26 +114,26 @@ tmp<volScalarField> standardRadiation::Shs()
             IOobject
             (
                 typeName + ":Shs",
-                owner().time().timeName(),
-                owner().regionMesh(),
+                film().time().timeName(),
+                film().regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            owner().regionMesh(),
+            film().regionMesh(),
             dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
         )
     );
 
     scalarField& Shs = tShs.ref();
     const scalarField& QinP = QinPrimary_;
-    const scalarField& delta = owner_.delta();
-    const scalarField& alpha = owner_.alpha();
+    const scalarField& delta = filmModel_.delta();
+    const scalarField& alpha = filmModel_.alpha();
 
     Shs = beta_*QinP*alpha*(1.0 - exp(-kappaBar_*delta));
 
-    // Update net Qr on local region
-    QrNet_.primitiveFieldRef() = QinP - Shs;
-    QrNet_.correctBoundaryConditions();
+    // Update net qr on local region
+    qrNet_.primitiveFieldRef() = QinP - Shs;
+    qrNet_.correctBoundaryConditions();
 
     return tShs;
 }
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
index b5b60facc93bf9e422ec1d8f118d7417cc17e3c0..191f1dab9d8aefb9a44e4eca2b40fd7e1c8a0fce 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,7 +63,7 @@ private:
         volScalarField QinPrimary_;
 
         //- Remaining radiative flux after removing local contribution
-        volScalarField QrNet_;
+        volScalarField qrNet_;
 
 
         // Model coefficients
@@ -95,7 +95,7 @@ public:
         //- Construct from surface film model and dictionary
         standardRadiation
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -112,7 +112,7 @@ public:
             virtual void correct();
 
             //- Return the radiation sensible enthalpy source
-            //  Also updates QrNet
+            //  Also updates qrNet
             virtual tmp<volScalarField> Shs();
 };
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
index 22598e0140c29104b5399a304918d45ed25917ab..76abe99b2397bb1358dfaae1f99c1e4ed5f91d1e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,13 +51,13 @@ addToRunTimeSelectionTable
 
 ArrheniusViscosity::ArrheniusViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu),
-    viscosity_(filmViscosityModel::New(owner, coeffDict_, mu)),
+    filmViscosityModel(typeName, film, dict, mu),
+    viscosity_(filmViscosityModel::New(film, coeffDict_, mu)),
     k1_("k1", dimTemperature, coeffDict_),
     k2_("k2", dimTemperature, coeffDict_),
     Tref_("Tref", dimTemperature, coeffDict_)
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
index ddeed31c451e4c163b7aad71050cf3522fe24c4f..94d726c314e615c1cb5e0637f9bafd868e7a8194 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -100,7 +100,7 @@ public:
         //- Construct from surface film model
         ArrheniusViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
index d1f47f17c535ecb0e355b690700ecf5cb0908eab..b3b489c42ae2ebb1bcc4d8b738a3a781844198bb 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,12 +50,12 @@ addToRunTimeSelectionTable
 
 constantViscosity::constantViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu),
+    filmViscosityModel(typeName, film, dict, mu),
     mu0_("mu0", dimDynamicViscosity, coeffDict_)
 {
     mu_ == mu0_;
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
index bca2c195d6de053a57e5feabd7778e9e7e2154a0..4b9f1aad40bff25a7dca5ff24b1b4471f336ffb9 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,7 +83,7 @@ public:
         //- Construct from surface film model
         constantViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C
index d2f861ab96c480fb45fa4de7ab630412bcce7d94..6167655809856f67bb1d0f6c852ba48c002ddd78 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,12 +44,12 @@ defineRunTimeSelectionTable(filmViscosityModel, dictionary);
 filmViscosityModel::filmViscosityModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType),
+    filmSubModelBase(film, dict, typeName, modelType),
     mu_(mu)
 {}
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
index 38a7272e074847f7c6de1036a4844da51b21a579..e7bf66ea0a46c56a639a4429da8d373f2f217b1c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -90,11 +90,11 @@ public:
              filmViscosityModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict,
                 volScalarField& mu
              ),
-             (owner, dict, mu)
+             (film, dict, mu)
          );
 
     // Constructors
@@ -103,7 +103,7 @@ public:
         filmViscosityModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
@@ -114,7 +114,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmViscosityModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C
index 2aaad94c48879d81a8d5f01ac5e6e8bc14df36ea..de00fbee45850a3036622323254788db51df945f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,12 +51,12 @@ addToRunTimeSelectionTable
 
 liquidViscosity::liquidViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu)
+    filmViscosityModel(typeName, film, dict, mu)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
index 8004c541fb5ba2650e9139064b99a8ce4e1d7ceb..5b9e5d3ab0e2b8b4dc27b2be9ac2ee39e9516fcd 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
@@ -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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -82,7 +82,7 @@ public:
         //- Construct from surface film model
         liquidViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
index 33a124b0f1f18dbc96d2910af1719d3d9dbe46f0..7a09b686ab4770a6cc55b149f36a947c5fdb8c82 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -57,12 +57,12 @@ addToRunTimeSelectionTable
 
 thixotropicViscosity::thixotropicViscosity
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
 :
-    filmViscosityModel(typeName, owner, dict, mu),
+    filmViscosityModel(typeName, film, dict, mu),
     a_("a", dimless/dimTime, coeffDict_),
     b_("b", dimless, coeffDict_),
     d_("d", dimless, coeffDict_),
@@ -75,12 +75,12 @@ thixotropicViscosity::thixotropicViscosity
         IOobject
         (
             typeName + ":lambda",
-            owner.regionMesh().time().timeName(),
-            owner.regionMesh(),
+            film.regionMesh().time().timeName(),
+            film.regionMesh(),
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh()
+        film.regionMesh()
     )
 {
     lambda_.min(1.0);
@@ -115,7 +115,7 @@ void thixotropicViscosity::correct
     const volScalarField& deltaRho = film.deltaRho();
     const surfaceScalarField& phi = film.phi();
     const volScalarField& alpha = film.alpha();
-    const Time& runTime = this->owner().regionMesh().time();
+    const Time& runTime = this->film().regionMesh().time();
 
     // Shear rate
     volScalarField gDot("gDot", alpha*mag(U - Uw)/(delta + film.deltaSmall()));
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
index 78661661a6aa43a172bc3da43098a848be5647c5..a25f75f8b587727b03b6e0c407168dd2303aa302 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -140,7 +140,7 @@ public:
         //- Construct from surface film model
         thixotropicViscosity
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
index fb569694d8518b0bb54da6bf572e505ff2deea9b..605d126b002fa54d6fb7d64b496b9e230339916e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable
 
 constantHeatTransfer::constantHeatTransfer
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    heatTransferModel(typeName, owner, dict),
+    heatTransferModel(typeName, film, dict),
     c0_(readScalar(coeffDict_.lookup("c0")))
 {}
 
@@ -81,13 +81,13 @@ tmp<volScalarField> constantHeatTransfer::h() const
             IOobject
             (
                 "htc",
-                owner_.time().timeName(),
-                owner_.regionMesh(),
+                filmModel_.time().timeName(),
+                filmModel_.regionMesh(),
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
             ),
-            owner_.regionMesh(),
+            filmModel_.regionMesh(),
             dimensionedScalar
             (
                 "c0",
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
index f8b1c60a2637e57459cbced00a3fd970aa2f9931..b36eeb9a670862065c33e83d9c04539be7166a13 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,7 +83,7 @@ public:
         //- Construct from surface film model and dictionary
         constantHeatTransfer
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C
index 6ec53f76cde21debac91dbc8e4e9fb6bd349b5e4..8fcff6baee24330f899a7510c46ed576ffd8f913 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,21 +43,21 @@ defineRunTimeSelectionTable(heatTransferModel, dictionary);
 
 heatTransferModel::heatTransferModel
 (
-    surfaceFilmModel& owner
+    surfaceFilmModel& film
 )
 :
-    filmSubModelBase(owner)
+    filmSubModelBase(film)
 {}
 
 
 heatTransferModel::heatTransferModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType)
+    filmSubModelBase(film, dict, typeName, modelType)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
index 646c2d734fdb348951c3534d199bf7ecaecbab4e..31bf1207dbf917fcffe26e13eb15a3c86eba49e0 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,22 +81,22 @@ public:
              heatTransferModel,
              dictionary,
              (
-                 surfaceFilmModel& owner,
+                 surfaceFilmModel& film,
                  const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        heatTransferModel(surfaceFilmModel& owner);
+        heatTransferModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         heatTransferModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<heatTransferModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C
index 3a9da6d01cf92d2d09a278756897dcc5eb590d8f..47795db101a39a53f9e3b53eb64466e6888abcd8 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,36 +52,36 @@ addToRunTimeSelectionTable
 
 mappedConvectiveHeatTransfer::mappedConvectiveHeatTransfer
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    heatTransferModel(owner),
+    heatTransferModel(film),
     htcConvPrimary_
     (
         IOobject
         (
             "htcConv",
-            owner.time().timeName(),
-            owner.primaryMesh(),
+            film.time().timeName(),
+            film.primaryMesh(),
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.primaryMesh()
+        film.primaryMesh()
     ),
     htcConvFilm_
     (
         IOobject
         (
             htcConvPrimary_.name(), // must have same name as above for mapping
-            owner.time().timeName(),
-            owner.regionMesh(),
+            film.time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass/pow3(dimTime)/dimTemperature, 0.0),
-        owner.mappedPushedFieldPatchTypes<scalar>()
+        film.mappedPushedFieldPatchTypes<scalar>()
     )
 {
     // Update the primary-side convective heat transfer coefficient
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
index 6de4b004efeb73e8184d63563eaaa089cecb474a..caf980bdf22ac528c8e081159906a7d951cdde9a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -89,7 +89,7 @@ public:
         //- Construct from surface film model and dictionary
         mappedConvectiveHeatTransfer
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
index 28122810d47262e077a844ca78984340efd18c1f..e21ce35c31bbeffd1b5aa047f8b0dba8990c8d1c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
@@ -44,11 +44,11 @@ addToRunTimeSelectionTable(phaseChangeModel, noPhaseChange, dictionary);
 
 noPhaseChange::noPhaseChange
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary&
 )
 :
-    phaseChangeModel(owner)
+    phaseChangeModel(film)
 {}
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
index 65a3a566369f702c8fa89130aa7b75e314d6eabf..cbcd3d65e12a1df1a6bda5e6d1f5aa6765c21cc0 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -74,7 +74,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        noPhaseChange(surfaceFilmModel& owner, const dictionary& dict);
+        noPhaseChange(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
index 44325cc0b2aaae9dc8eb3dfbea263793a4c8838e..f7ddc884dfd7faca1b3807e4afd7346870059d67 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,10 +43,10 @@ defineRunTimeSelectionTable(phaseChangeModel, dictionary);
 
 phaseChangeModel::phaseChangeModel
 (
-    surfaceFilmModel& owner
+    surfaceFilmModel& film
 )
 :
-    filmSubModelBase(owner),
+    filmSubModelBase(film),
     latestMassPC_(0.0),
     totalMassPC_(0.0)
 {}
@@ -55,11 +55,11 @@ phaseChangeModel::phaseChangeModel
 phaseChangeModel::phaseChangeModel
 (
     const word& modelType,
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    filmSubModelBase(owner, dict, typeName, modelType),
+    filmSubModelBase(film, dict, typeName, modelType),
     latestMassPC_(0.0),
     totalMassPC_(0.0)
 {}
@@ -114,7 +114,7 @@ void phaseChangeModel::info(Ostream& os) const
 {
     const scalar massPCRate =
         returnReduce(latestMassPC_, sumOp<scalar>())
-       /owner_.time().deltaTValue();
+       /filmModel_.time().deltaTValue();
 
     scalar phaseChangeMass = getModelProperty<scalar>("phaseChangeMass");
     phaseChangeMass += returnReduce(totalMassPC_, sumOp<scalar>());
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
index 5ab77edcf53afba265a9062f1234f9d95fb9bf8d..bf87c332811a9f13c3e18ae1b09a179827a65250 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -93,22 +93,22 @@ public:
              phaseChangeModel,
              dictionary,
              (
-                surfaceFilmModel& owner,
+                surfaceFilmModel& film,
                 const dictionary& dict
              ),
-             (owner, dict)
+             (film, dict)
          );
 
     // Constructors
 
         //- Construct null
-        phaseChangeModel(surfaceFilmModel& owner);
+        phaseChangeModel(surfaceFilmModel& film);
 
         //- Construct from type name, dictionary and surface film model
         phaseChangeModel
         (
             const word& modelType,
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
@@ -118,7 +118,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<phaseChangeModel> New
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
index f5b5b36f59983888af9e3caa2ad8ffe499fa271d..93239be248e1435b846e0951792a11d27f1a1560 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,11 +51,11 @@ addToRunTimeSelectionTable
 
 solidification::solidification
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    phaseChangeModel(typeName, owner, dict),
+    phaseChangeModel(typeName, film, dict),
     T0_(readScalar(coeffDict_.lookup("T0"))),
     maxSolidificationFrac_
     (
@@ -76,12 +76,12 @@ solidification::solidification
         IOobject
         (
             typeName + ":mass",
-            owner.regionMesh().time().timeName(),
-            owner.regionMesh(),
+            film.regionMesh().time().timeName(),
+            film.regionMesh(),
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimMass, 0.0),
         zeroGradientFvPatchScalarField::typeName
     ),
@@ -90,12 +90,12 @@ solidification::solidification
         IOobject
         (
             typeName + ":thickness",
-            owner.regionMesh().time().timeName(),
-            owner.regionMesh(),
+            film.regionMesh().time().timeName(),
+            film.regionMesh(),
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        owner.regionMesh(),
+        film.regionMesh(),
         dimensionedScalar("zero", dimLength, 0.0),
         zeroGradientFvPatchScalarField::typeName
     )
@@ -128,7 +128,7 @@ void solidification::correctModel
         maxSolidificationFrac_,
         (
             maxSolidificationRate_
-           *owner_.regionMesh().time().deltaTValue()
+           *filmModel_.regionMesh().time().deltaTValue()
         ).value()
     );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
index 1854feac28c487d675509ed423183a7e0822413e..6ceeba82f4f7402b7493040de61298b3604e19b1 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -96,7 +96,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        solidification(surfaceFilmModel& owner, const dictionary& dict);
+        solidification(surfaceFilmModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
index 125cf104b265ebbdf89b82db481daef5249c51f1..110333fd564b992f8c86dd65f3b2bda8bbc2a344 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,11 +70,11 @@ scalar standardPhaseChange::Sh
 
 standardPhaseChange::standardPhaseChange
 (
-    surfaceFilmModel& owner,
+    surfaceFilmModel& film,
     const dictionary& dict
 )
 :
-    phaseChangeModel(typeName, owner, dict),
+    phaseChangeModel(typeName, film, dict),
     deltaMin_(readScalar(coeffDict_.lookup("deltaMin"))),
     L_(readScalar(coeffDict_.lookup("L"))),
     TbFactor_(coeffDict_.lookupOrDefault<scalar>("TbFactor", 1.1))
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
index 82a8120bdefe1c61b7fdfbce460a9b3b4de748be..ae28ae4b50bc063ef1e97b3c45db2f59d37e64d8 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,7 +97,7 @@ public:
         //- Construct from surface film model
         standardPhaseChange
         (
-            surfaceFilmModel& owner,
+            surfaceFilmModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H b/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
index ddffd5a490da5f4452b871d97b3eb242da2f8c37..d45b9541361a5c53982252067914fca721c18055 100644
--- a/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
+++ b/src/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBaffle/thermalBaffleFvPatchScalarField.H
@@ -54,8 +54,8 @@ Usage
         Tnbr               T;
         kappaMethod        fluidThermo; // or solidThermo
         kappa              none;
-        QrNbr              Qr;//or none.Name of Qr field on neighbourregion
-        Qr                 none;// or none.Name of Qr field on localregion
+        qrNbr              qr;//or none.Name of qr field on neighbourregion
+        qr                 none;// or none.Name of qr field on localregion
         value              uniform 300;
 
         // Baffle region name
diff --git a/src/renumber/SloanRenumber/SloanRenumber.C b/src/renumber/SloanRenumber/SloanRenumber.C
index ff1a123ee577bfe4d10d694cc2daf720fa7895c9..7de9bd9bb5e9becc012e56835e1d0539109f77c5 100644
--- a/src/renumber/SloanRenumber/SloanRenumber.C
+++ b/src/renumber/SloanRenumber/SloanRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,9 +92,10 @@ Foam::SloanRenumber::SloanRenumber(const dictionary& renumberDict)
     renumberMethod(renumberDict),
     reverse_
     (
-        renumberDict.found(typeName + "Coeffs")
-      ? Switch(renumberDict.subDict(typeName + "Coeffs").lookup("reverse"))
-      : Switch(false)
+        renumberDict.optionalSubDict
+        (
+            typeName + "Coeffs"
+        ).lookupOrDefault<Switch>("reverse", false)
     )
 {}
 
diff --git a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
index fae937cb39e141a556b4d7ef3ffde0fced5b4bd0..1d375d69edaebdcbd4d60e4a566000baad816607 100644
--- a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
+++ b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.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-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,9 +50,10 @@ Foam::CuthillMcKeeRenumber::CuthillMcKeeRenumber(const dictionary& renumberDict)
     renumberMethod(renumberDict),
     reverse_
     (
-        renumberDict.found(typeName + "Coeffs")
-      ? Switch(renumberDict.subDict(typeName + "Coeffs").lookup("reverse"))
-      : Switch(false)
+        renumberDict.optionalSubDict
+        (
+            typeName + "Coeffs"
+        ).lookupOrDefault<Switch>("reverse", false)
     )
 {}
 
diff --git a/src/renumber/renumberMethods/manualRenumber/manualRenumber.C b/src/renumber/renumberMethods/manualRenumber/manualRenumber.C
index 5db43311640b4b162bafaef7095bf14ca1ee1584..0b960137b716a51faf0df391374647cf7cc76760 100644
--- a/src/renumber/renumberMethods/manualRenumber/manualRenumber.C
+++ b/src/renumber/renumberMethods/manualRenumber/manualRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,7 +50,7 @@ Foam::manualRenumber::manualRenumber(const dictionary& renumberDict)
     renumberMethod(renumberDict),
     dataFile_
     (
-        renumberDict.subDict(typeName+"Coeffs").lookup("dataFile")
+        renumberDict.optionalSubDict(typeName+"Coeffs").lookup("dataFile")
     )
 {}
 
diff --git a/src/renumber/renumberMethods/springRenumber/springRenumber.C b/src/renumber/renumberMethods/springRenumber/springRenumber.C
index dc45768139c186f176fdd5b7397311fb251fb0e7..eb31b53b0a5b00f6f442b39ca2c91ad232338ecb 100644
--- a/src/renumber/renumberMethods/springRenumber/springRenumber.C
+++ b/src/renumber/renumberMethods/springRenumber/springRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -47,7 +47,7 @@ namespace Foam
 Foam::springRenumber::springRenumber(const dictionary& renumberDict)
 :
     renumberMethod(renumberDict),
-    dict_(renumberDict.subDict(typeName+"Coeffs")),
+    dict_(renumberDict.optionalSubDict(typeName+"Coeffs")),
     maxCo_(readScalar(dict_.lookup("maxCo"))),
     maxIter_(readLabel(dict_.lookup("maxIter"))),
     freezeFraction_(readScalar(dict_.lookup("freezeFraction")))
diff --git a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
index e227f2861fb6efe200d22fc4d75ab261884752fc..f56a6476e39689747eeb90ccec51e73cc7897678 100644
--- a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
+++ b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,7 +52,7 @@ Foam::structuredRenumber::structuredRenumber
 )
 :
     renumberMethod(renumberDict),
-    methodDict_(renumberDict.subDict(typeName + "Coeffs")),
+    methodDict_(renumberDict.optionalSubDict(typeName + "Coeffs")),
     patches_(methodDict_.lookup("patches")),
     nLayers_(methodDict_.lookupOrDefault<label>("nLayers", labelMax)),
     depthFirst_(methodDict_.lookup("depthFirst")),
diff --git a/src/renumber/zoltanRenumber/zoltanRenumber.C b/src/renumber/zoltanRenumber/zoltanRenumber.C
index 2d7a744debb90f875dceacfdd5e4f6f5fabeb066..472089da450047c8fb8dd7198a25db761e743f82 100644
--- a/src/renumber/zoltanRenumber/zoltanRenumber.C
+++ b/src/renumber/zoltanRenumber/zoltanRenumber.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -262,7 +262,7 @@ static void get_geom_list
 Foam::zoltanRenumber::zoltanRenumber(const dictionary& renumberDict)
 :
     renumberMethod(renumberDict),
-    coeffsDict_(renumberDict.subDict(typeName+"Coeffs"))
+    coeffsDict_(renumberDict.optionalSubDict(typeName+"Coeffs"))
 {}
 
 
diff --git a/src/sampling/sampledSet/face/faceOnlySet.C b/src/sampling/sampledSet/face/faceOnlySet.C
index 4971a27787acba2eca969b4e3f5fea070ef46b97..b7d217a35c5b94a7d0c6eb5f613df5002f64d204 100644
--- a/src/sampling/sampledSet/face/faceOnlySet.C
+++ b/src/sampling/sampledSet/face/faceOnlySet.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -166,6 +166,7 @@ void Foam::faceOnlySet::calcSamples
         //    << endl;
         const_cast<polyMesh&>(mesh()).moving(oldMoving);
 
+        const_cast<polyMesh&>(mesh()).moving(oldMoving);
         return;
     }
 
diff --git a/src/sampling/sampledSet/sampledSet/sampledSet.C b/src/sampling/sampledSet/sampledSet/sampledSet.C
index f583aaea86d7685eb423b16a50bedecbf0e64601..cefc4214c2d53cb582808dc7cc759b49ae856ccb 100644
--- a/src/sampling/sampledSet/sampledSet/sampledSet.C
+++ b/src/sampling/sampledSet/sampledSet/sampledSet.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -468,7 +468,7 @@ Foam::autoPtr<Foam::sampledSet> Foam::sampledSet::New
             name,
             mesh,
             searchEngine,
-            dict
+            dict.optionalSubDict(sampleType + "Coeffs")
         )
     );
 }
diff --git a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
index d49aa797ff73b20bd387f4a530adf9fecd0b524b..f7f213f10a9781eccb0983f21c7f7fb4e53b3875 100644
--- a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
+++ b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,6 +73,11 @@ public:
 
     // Member functions
 
+        const ThermoType& mixture() const
+        {
+            return mixture_;
+        }
+
         const ThermoType& cellMixture(const label) const
         {
             return mixture_;
diff --git a/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
index c023c506838c94851da381c0a38a6c28aea2449b..de4a576b10cb4dac64be11b207ade5f918274865 100644
--- a/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
+++ b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.C
@@ -23,16 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "rhoThermo.H"
-#include "heRhoThermo.H"
-#include "pureMixture.H"
-#include "thermo.H"
-#include "sensibleEnthalpy.H"
-#include "sensibleInternalEnergy.H"
-
-#include "thermophysicalPropertiesSelector.H"
-#include "liquidProperties.H"
-
+#include "liquidThermo.H"
 #include "addToRunTimeSelectionTable.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -42,19 +33,6 @@ namespace Foam
 
 /* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
 
-typedef heRhoThermo
-<
-    rhoThermo,
-    pureMixture
-    <
-        species::thermo
-        <
-            thermophysicalPropertiesSelector<liquidProperties>,
-            sensibleInternalEnergy
-        >
-    >
-> heRhoThermopureMixtureliquidProperties;
-
 defineTemplateTypeNameAndDebugWithName
 (
     heRhoThermopureMixtureliquidProperties,
diff --git a/src/thermophysicalModels/basic/rhoThermo/liquidThermo.H b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.H
new file mode 100644
index 0000000000000000000000000000000000000000..de5aed514337bbfe834b9514d2a7407217f4653c
--- /dev/null
+++ b/src/thermophysicalModels/basic/rhoThermo/liquidThermo.H
@@ -0,0 +1,59 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "rhoThermo.H"
+#include "heRhoThermo.H"
+#include "pureMixture.H"
+#include "thermo.H"
+#include "sensibleInternalEnergy.H"
+#include "thermophysicalPropertiesSelector.H"
+#include "liquidProperties.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
+
+typedef heRhoThermo
+<
+    rhoThermo,
+    pureMixture
+    <
+        species::thermo
+        <
+            thermophysicalPropertiesSelector<liquidProperties>,
+            sensibleInternalEnergy
+        >
+    >
+> heRhoThermopureMixtureliquidProperties;
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C b/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C
index 2b52c0a7cf1b4e9fdf5998f4ae082bd31215202b..70db6c7564e318504d3f16869fb845d643b15d6c 100644
--- a/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C
+++ b/src/thermophysicalModels/chemistryModel/chemistrySolver/EulerImplicit/EulerImplicit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -72,16 +72,16 @@ void Foam::EulerImplicit<ChemistryModel>::updateRRInReactionI
 
     forAll(R.lhs(), s)
     {
-        label si = R.lhs()[s].index;
-        scalar sl = R.lhs()[s].stoichCoeff;
+        const label si = R.lhs()[s].index;
+        const scalar sl = R.lhs()[s].stoichCoeff;
         RR[si][rRef] -= sl*pr*corr;
         RR[si][lRef] += sl*pf*corr;
     }
 
     forAll(R.rhs(), s)
     {
-        label si = R.rhs()[s].index;
-        scalar sr = R.rhs()[s].stoichCoeff;
+        const label si = R.rhs()[s].index;
+        const scalar sr = R.rhs()[s].stoichCoeff;
         RR[si][lRef] -= sr*pf*corr;
         RR[si][rRef] += sr*pr*corr;
     }
@@ -103,40 +103,40 @@ void Foam::EulerImplicit<ChemistryModel>::solve
 
     for (label i=0; i<nSpecie; i++)
     {
-        c[i] = max(0.0, c[i]);
+        c[i] = max(0, c[i]);
     }
 
     // Calculate the absolute enthalpy
-    scalar cTot = sum(c);
+    const scalar cTot = sum(c);
     typename ChemistryModel::thermoType mixture
     (
-        (c[0]/cTot)*this->specieThermo_[0]
+        (this->specieThermo_[0].W()*c[0])*this->specieThermo_[0]
     );
     for (label i=1; i<nSpecie; i++)
     {
-        mixture += (c[i]/cTot)*this->specieThermo_[i];
+        mixture += (this->specieThermo_[i].W()*c[i])*this->specieThermo_[i];
     }
-    scalar ha = mixture.Ha(p, T);
-
-    scalar deltaTEst = min(deltaT, subDeltaT);
+    const scalar ha = mixture.Ha(p, T);
+    const scalar deltaTEst = min(deltaT, subDeltaT);
 
     forAll(this->reactions(), i)
     {
         scalar pf, cf, pr, cr;
         label lRef, rRef;
 
-        scalar omegai = this->omegaI(i, c, T, p, pf, cf, lRef, pr, cr, rRef);
+        const scalar omegai =
+            this->omegaI(i, c, T, p, pf, cf, lRef, pr, cr, rRef);
 
-        scalar corr = 1.0;
+        scalar corr = 1;
         if (eqRateLimiter_)
         {
-            if (omegai < 0.0)
+            if (omegai < 0)
             {
-                corr = 1.0/(1.0 + pr*deltaTEst);
+                corr = 1/(1 + pr*deltaTEst);
             }
             else
             {
-                corr = 1.0/(1.0 + pf*deltaTEst);
+                corr = 1/(1 + pf*deltaTEst);
             }
         }
 
@@ -161,7 +161,7 @@ void Foam::EulerImplicit<ChemistryModel>::solve
         else
         {
             d = max(d, SMALL);
-            scalar cm = max(cTot - c[i], 1.0e-5);
+            const scalar cm = max(cTot - c[i], 1e-5);
             tMin = min(tMin, cm/d);
         }
     }
@@ -172,7 +172,7 @@ void Foam::EulerImplicit<ChemistryModel>::solve
     // Add the diagonal and source contributions from the time-derivative
     for (label i=0; i<nSpecie; i++)
     {
-        RR(i, i) += 1.0/deltaT;
+        RR(i, i) += 1/deltaT;
         RR.source()[i] = c[i]/deltaT;
     }
 
@@ -182,26 +182,16 @@ void Foam::EulerImplicit<ChemistryModel>::solve
     // Limit the composition
     for (label i=0; i<nSpecie; i++)
     {
-        c[i] = max(0.0, c[i]);
+        c[i] = max(0, c[i]);
     }
 
     // Update the temperature
-    cTot = sum(c);
-    mixture = (c[0]/cTot)*this->specieThermo_[0];
+    mixture = (this->specieThermo_[0].W()*c[0])*this->specieThermo_[0];
     for (label i=1; i<nSpecie; i++)
     {
-        mixture += (c[i]/cTot)*this->specieThermo_[i];
+        mixture += (this->specieThermo_[i].W()*c[i])*this->specieThermo_[i];
     }
     T = mixture.THa(ha, p, T);
-
-    /*
-    for (label i=0; i<nSpecie; i++)
-    {
-        cTp_[i] = c[i];
-    }
-    cTp_[nSpecie] = T;
-    cTp_[nSpecie+1] = p;
-    */
 }
 
 
diff --git a/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C b/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C
index 9fc5bbdf26e57d17034e7faf3c701b248c704a24..eb4c2c04a0e1fa6c57435ee86542fb375acb4b73 100644
--- a/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C
+++ b/src/thermophysicalModels/laminarFlameSpeed/Gulders/Gulders.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,7 @@ Foam::laminarFlameSpeedModels::Gulders::Gulders
 :
     laminarFlameSpeed(dict, ct),
 
-    coeffsDict_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
     W_(readScalar(coeffsDict_.lookup("W"))),
     eta_(readScalar(coeffsDict_.lookup("eta"))),
     xi_(readScalar(coeffsDict_.lookup("xi"))),
diff --git a/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C b/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C
index 3bf3251323274c358140ef2e62e7f5a89d766e73..befd4d0973f6b208bd766bdecfafb6f6c8b6928f 100644
--- a/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C
+++ b/src/thermophysicalModels/laminarFlameSpeed/GuldersEGR/GuldersEGR.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::laminarFlameSpeedModels::GuldersEGR::GuldersEGR
 :
     laminarFlameSpeed(dict, ct),
 
-    coeffsDict_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
     W_(readScalar(coeffsDict_.lookup("W"))),
     eta_(readScalar(coeffsDict_.lookup("eta"))),
     xi_(readScalar(coeffsDict_.lookup("xi"))),
diff --git a/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C b/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C
index faaccea7484a7b057be59774882bec4e2f5ac086..1fff569d9cb929faa02a2a03a82edc975d04ce3e 100644
--- a/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C
+++ b/src/thermophysicalModels/laminarFlameSpeed/RaviPetersen/RaviPetersen.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::laminarFlameSpeedModels::RaviPetersen::RaviPetersen
 )
 :
     laminarFlameSpeed(dict, ct),
-    coeffsDict_(dict.subDict(typeName + "Coeffs").subDict(fuel_)),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs").subDict(fuel_)),
     pPoints_(coeffsDict_.lookup("pPoints")),
     EqRPoints_(coeffsDict_.lookup("EqRPoints")),
     alpha_(coeffsDict_.lookup("alpha")),
diff --git a/src/thermophysicalModels/radiation/Make/files b/src/thermophysicalModels/radiation/Make/files
index 2e9d71e8fb58e0137de63deefaa57d1ef8987d1e..bd4e985783ff0de2fcba9309607ce69d17314714 100644
--- a/src/thermophysicalModels/radiation/Make/files
+++ b/src/thermophysicalModels/radiation/Make/files
@@ -54,4 +54,7 @@ derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchSc
 derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
 derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
 
+/* fvOptions */
+fvOptions/radiation/radiation.C
+
 LIB = $(FOAM_LIBBIN)/libradiationModels
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
index a518336a0c60394f2d805b011dd552998b352e10..72b0803f1c281b6d37ce50e869daf5647fde1ccd 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -172,7 +172,7 @@ updateCoeffs()
 
     const scalarField nAve(n & ray.dAve());
 
-    ray.Qr().boundaryFieldRef()[patchi] += Iw*nAve;
+    ray.qr().boundaryFieldRef()[patchi] += Iw*nAve;
 
     const boundaryRadiationProperties& boundaryRadiation =
         boundaryRadiationProperties::New(internalField().mesh());
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
index c8f0e9376d0b1d331e394b60a7e2430208aa852f..44e347f28c94cf2143376623e7e9079fee15dbc3 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd
 -------------------------------------------------------------------------------
 License
@@ -39,7 +39,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    Qro_(),
+    qro_(),
     solarLoad_(false)
 {}
 
@@ -54,7 +54,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
-    Qro_(ptf.Qro_, mapper),
+    qro_(ptf.qro_, mapper),
     solarLoad_(ptf.solarLoad_)
 {}
 
@@ -68,7 +68,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF, dict, false),
-    Qro_("Qro", dict, p.size()),
+    qro_("qro", dict, p.size()),
     solarLoad_(dict.lookupOrDefault<bool>("solarLoad", false))
 {
     if (dict.found("value"))
@@ -93,7 +93,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf),
-    Qro_(ptf.Qro_),
+    qro_(ptf.qro_),
     solarLoad_(ptf.solarLoad_)
 {}
 
@@ -106,7 +106,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, iF),
-    Qro_(ptf.Qro_),
+    qro_(ptf.qro_),
     solarLoad_(ptf.solarLoad_)
 {}
 
@@ -120,7 +120,7 @@ autoMap
 )
 {
     fixedValueFvPatchScalarField::autoMap(m);
-    Qro_.autoMap(m);
+    qro_.autoMap(m);
 }
 
 
@@ -135,7 +135,7 @@ void Foam::radiation::greyDiffusiveViewFactorFixedValueFvPatchScalarField::rmap
     const greyDiffusiveViewFactorFixedValueFvPatchScalarField& mrptf =
         refCast<const greyDiffusiveViewFactorFixedValueFvPatchScalarField>(ptf);
 
-    Qro_.rmap(mrptf.Qro_, addr);
+    qro_.rmap(mrptf.qro_, addr);
 }
 
 
@@ -147,7 +147,6 @@ updateCoeffs()
         return;
     }
 
-
     if (debug)
     {
         scalar Q = gSum((*this)*patch().magSf());
@@ -166,22 +165,22 @@ updateCoeffs()
 
 
 Foam::tmp<Foam::scalarField> Foam::radiation::
-greyDiffusiveViewFactorFixedValueFvPatchScalarField::Qro() const
+greyDiffusiveViewFactorFixedValueFvPatchScalarField::qro() const
 {
-    tmp<scalarField> tQrt(new scalarField(Qro_));
+    tmp<scalarField> tqrt(new scalarField(qro_));
 
     if (solarLoad_)
     {
         const radiationModel& radiation =
             db().lookupObject<radiationModel>("radiationProperties");
 
-        tQrt.ref() += patch().lookupPatchField<volScalarField,scalar>
+        tqrt.ref() += patch().lookupPatchField<volScalarField, scalar>
         (
             radiation.externalRadHeatFieldName_
         );
     }
 
-    return tQrt;
+    return tqrt;
 }
 
 
@@ -192,7 +191,7 @@ write
 ) const
 {
     fixedValueFvPatchScalarField::write(os);
-    Qro_.writeEntry("Qro", os);
+    qro_.writeEntry("qro", os);
     os.writeKeyword("solarLoad") << solarLoad_ << token::END_STATEMENT << nl;
 }
 
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
index 88cd34ccd9573a2eea44f87b9dc6e226930c6326..c509c15a3a2560df5a549fa63bdeaa1272ffc425 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd
 -------------------------------------------------------------------------------
 License
@@ -29,12 +29,13 @@ Group
 
 Description
     This boundary condition provides a grey-diffuse condition for radiative
-    heat flux, \c Qr, for use with the view factor model
+    heat flux, \c qr, for use with the view factor model
 
 Usage
     \table
         Property     | Description             | Required    | Default value
-        Qro          | external radiative heat flux | yes    |
+        qro          | external radiative heat flux | yes    |
+        emissivityMode | emissivity mode: solidRadiation or lookup | yes |
     \endtable
 
     Example of the boundary condition specification:
@@ -42,7 +43,8 @@ Usage
     <patchName>
     {
         type            greyDiffusiveRadiationViewFactor;
-        Qro             uniform 0;
+        qro             uniform 0;
+        emissivityMode  solidRadiation;
         value           uniform 0;
     }
     \endverbatim
@@ -69,6 +71,7 @@ namespace Foam
 {
 namespace radiation
 {
+
 /*---------------------------------------------------------------------------*\
       Class greyDiffusiveViewFactorFixedValueFvPatchScalarField declaration
 \*---------------------------------------------------------------------------*/
@@ -80,7 +83,7 @@ class greyDiffusiveViewFactorFixedValueFvPatchScalarField
     // Private data
 
         //- External radiative heat flux
-        scalarField Qro_;
+        scalarField qro_;
 
         //- Activate solar load
         bool solarLoad_;
@@ -163,7 +166,7 @@ public:
         // Access
 
             //- Return external + solar load radiative heat flux
-            tmp<scalarField> Qro() const;
+            tmp<scalarField> qro() const;
 
 
         // Evaluation functions
@@ -197,8 +200,8 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace radiation
 } // End namespace Foam
-}
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
index b37192b6e081dfd9e8237fdf01f579137a42c6b6..102a8f87c5a9218fc625ea4a9805c5fdb4167166 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -159,7 +159,7 @@ updateCoeffs()
 
     const scalarField nAve(n & ray.dAve());
 
-    ray.Qr().boundaryFieldRef()[patchi] += Iw*nAve;
+    ray.qr().boundaryFieldRef()[patchi] += Iw*nAve;
 
     const scalarField Eb
     (
diff --git a/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C
new file mode 100644
index 0000000000000000000000000000000000000000..2a817e4e6c208663352c75446184ba8298623185
--- /dev/null
+++ b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C
@@ -0,0 +1,96 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "radiation.H"
+#include "fluidThermo.H"
+#include "fvMatrices.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace fv
+{
+    defineTypeNameAndDebug(radiation, 0);
+
+    addToRunTimeSelectionTable
+    (
+        option,
+        radiation,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::fv::radiation::radiation
+(
+    const word& sourceName,
+    const word& modelType,
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    option(sourceName, modelType, dict, mesh)
+{
+    const basicThermo& thermo =
+        mesh_.lookupObject<basicThermo>(basicThermo::dictName);
+
+    fieldNames_.setSize(1);
+    fieldNames_[0] = thermo.he().name();
+    applied_.setSize(fieldNames_.size(), false);
+
+    radiation_ = Foam::radiation::radiationModel::New(thermo.T());
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::fv::radiation::read(const dictionary& dict)
+{
+    return option::read(dict);
+}
+
+
+void Foam::fv::radiation::addSup
+(
+    const volScalarField& rho,
+    fvMatrix<scalar>& eqn,
+    const label fieldi
+)
+{
+    const basicThermo& thermo =
+        mesh_.lookupObject<basicThermo>(basicThermo::dictName);
+
+    radiation_->correct();
+
+    eqn += radiation_->Sh(thermo, eqn.psi());
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.H b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.H
new file mode 100644
index 0000000000000000000000000000000000000000..57927a28f7dedd0c5ddd9ae33edd652004625857
--- /dev/null
+++ b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.H
@@ -0,0 +1,129 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::fv::radiation
+
+Description
+    Calculates and applies the buoyancy energy source rho*(U&g) to the energy
+    equation.
+
+Usage
+    Example usage:
+    \verbatim
+    radiationCoeffs
+    {
+        fields          (h);                    // Name of energy field
+    }
+    \endverbatim
+
+SourceFiles
+    radiation.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef radiation_H
+#define radiation_H
+
+#include "fvOption.H"
+#include "uniformDimensionedFields.H"
+#include "radiationModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace fv
+{
+
+/*---------------------------------------------------------------------------*\
+               Class radiation Declaration
+\*---------------------------------------------------------------------------*/
+
+class radiation
+:
+    public option
+{
+    // Private data
+
+        //- The radiation model pointer
+        autoPtr<Foam::radiation::radiationModel> radiation_;
+
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        radiation(const radiation&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const radiation&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("radiation");
+
+
+    // Constructors
+
+        //- Construct from explicit source name and mesh
+        radiation
+        (
+            const word& sourceName,
+            const word& modelType,
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    // Member Functions
+
+        // Evaluate
+
+            //- Add explicit contribution to compressible momentum equation
+            virtual void addSup
+            (
+                const volScalarField& rho,
+                fvMatrix<scalar>& eqn,
+                const label fieldi
+            );
+
+
+        // IO
+
+            //- Read source dictionary
+            virtual bool read(const dictionary& dict);
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace fv
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/radiation/radiationModels/P1/P1.C b/src/thermophysicalModels/radiation/radiationModels/P1/P1.C
index 3032cca499e240a51f7783fea1c197a082eb5d8e..edb306e321ac509cb2bf372f4efd6454b8e9086d 100644
--- a/src/thermophysicalModels/radiation/radiationModels/P1/P1.C
+++ b/src/thermophysicalModels/radiation/radiationModels/P1/P1.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,18 +62,18 @@ Foam::radiation::P1::P1(const volScalarField& T)
         ),
         mesh_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     a_
     (
@@ -132,18 +132,18 @@ Foam::radiation::P1::P1(const dictionary& dict, const volScalarField& T)
         ),
         mesh_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     a_
     (
@@ -242,14 +242,14 @@ void Foam::radiation::P1::calculate()
       - 4.0*(e_*physicoChemical::sigma*pow4(T_) ) - E_
     );
 
-    volScalarField::Boundary& QrBf = Qr_.boundaryFieldRef();
+    volScalarField::Boundary& qrBf = qr_.boundaryFieldRef();
 
     // Calculate radiative heat flux on boundaries.
     forAll(mesh_.boundaryMesh(), patchi)
     {
         if (!G_.boundaryField()[patchi].coupled())
         {
-            QrBf[patchi] =
+            qrBf[patchi] =
                 -gamma.boundaryField()[patchi]
                 *G_.boundaryField()[patchi].snGrad();
         }
diff --git a/src/thermophysicalModels/radiation/radiationModels/P1/P1.H b/src/thermophysicalModels/radiation/radiationModels/P1/P1.H
index 0a97b1cb2aaa76b72eb2ff1aec2ed738e5006e98..e52733e3eae4978c107f123b66ccfbf20922917d 100644
--- a/src/thermophysicalModels/radiation/radiationModels/P1/P1.H
+++ b/src/thermophysicalModels/radiation/radiationModels/P1/P1.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,7 +68,7 @@ class P1
         volScalarField G_;
 
         //- Total radiative heat flux [W/m2]
-        volScalarField Qr_;
+        volScalarField qr_;
 
         //- Absorption coefficient
         volScalarField a_;
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
index 24454efb3dc6b06672bba4f4f43d6ecf199e2245..71cca246dc21c930b51910215ef50ecb413bce79 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -230,18 +230,18 @@ Foam::radiation::fvDOM::fvDOM(const volScalarField& T)
         mesh_,
         dimensionedScalar("G", dimMass/pow3(dimTime), 0.0)
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     Qem_
     (
@@ -323,18 +323,18 @@ Foam::radiation::fvDOM::fvDOM
         mesh_,
         dimensionedScalar("G", dimMass/pow3(dimTime), 0.0)
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     Qem_
     (
@@ -508,7 +508,7 @@ void Foam::radiation::fvDOM::updateBlackBodyEmission()
 void Foam::radiation::fvDOM::updateG()
 {
     G_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
-    Qr_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
+    qr_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
     Qem_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
     Qin_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
 
@@ -516,7 +516,7 @@ void Foam::radiation::fvDOM::updateG()
     {
         IRay_[rayI].addIntensity();
         G_ += IRay_[rayI].I()*IRay_[rayI].omega();
-        Qr_.boundaryFieldRef() += IRay_[rayI].Qr().boundaryField();
+        qr_.boundaryFieldRef() += IRay_[rayI].qr().boundaryField();
         Qem_.boundaryFieldRef() += IRay_[rayI].Qem().boundaryField();
         Qin_.boundaryFieldRef() += IRay_[rayI].Qin().boundaryField();
     }
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H
index 59346b60299b6c96de8c370a9e5f6286220ea171..84d12a057e8a587cfc441be7f4eb738109f71fbf 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -104,7 +104,7 @@ class fvDOM
         volScalarField G_;
 
         //- Total radiative heat flux [W/m2]
-        volScalarField Qr_;
+        volScalarField qr_;
 
          //- Emmited radiative heat flux [W/m2]
         volScalarField Qem_;
@@ -252,7 +252,7 @@ public:
             inline const volScalarField& G() const;
 
             //- Const access to total radiative heat flux field
-            inline const volScalarField& Qr() const;
+            inline const volScalarField& qr() const;
 
             //- Const access to incident radiative heat flux field
             inline const volScalarField& Qin() const;
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H
index 3281f6c389e9e01434a50fe85008261593ae6fd0..dc64c7b76c218cf53883dff3d9910f3fc7eeafb0 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOMI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -86,9 +86,9 @@ inline const Foam::volScalarField& Foam::radiation::fvDOM::G() const
 }
 
 
-inline const Foam::volScalarField& Foam::radiation::fvDOM::Qr() const
+inline const Foam::volScalarField& Foam::radiation::fvDOM::qr() const
 {
-    return Qr_;
+    return qr_;
 }
 
 inline const Foam::volScalarField& Foam::radiation::fvDOM::Qin() const
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
index b1a4d9c57ed78d6307615766c7825aa0fa5721aa..adf5f54912b675c5c089e340c038562a3fd118bb 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,18 +67,18 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
         mesh_,
         dimensionedScalar("I", dimMass/pow3(dimTime), 0.0)
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr" + name(rayId),
+            "qr" + name(rayId),
             mesh_.time().timeName(),
             mesh_,
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
         mesh_,
-        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+        dimensionedScalar("qr", dimMass/pow3(dimTime), 0.0)
     ),
     Qin_
     (
@@ -251,7 +251,7 @@ Foam::radiation::radiativeIntensityRay::~radiativeIntensityRay()
 Foam::scalar Foam::radiation::radiativeIntensityRay::correct()
 {
     // Reset boundary heat flux to zero
-    Qr_.boundaryFieldRef() = 0.0;
+    qr_.boundaryFieldRef() = 0.0;
 
     scalar maxResidual = -GREAT;
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H
index e98081378e6bcbad5795e04c8cd0063d47f89562..2dc4eb411346fb521432c4941994f196f2cffa9f 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,7 +80,7 @@ private:
         volScalarField I_;
 
         //- Total radiative heat flux on boundary
-        volScalarField Qr_;
+        volScalarField qr_;
 
         //- Incident radiative heat flux on boundary
         volScalarField Qin_;
@@ -176,10 +176,10 @@ public:
             inline const volScalarField& I() const;
 
             //- Return const access to the boundary heat flux
-            inline const volScalarField& Qr() const;
+            inline const volScalarField& qr() const;
 
             //- Return non-const access to the boundary heat flux
-            inline volScalarField& Qr();
+            inline volScalarField& qr();
 
             //- Return non-const access to the boundary incident heat flux
             inline volScalarField& Qin();
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H
index 8761f900b4fc57055cdf31b6615d329a6e624caf..d307d890bc0233154148a7c670fc60a4921dffc9 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,15 +31,15 @@ Foam::radiation::radiativeIntensityRay::I() const
 
 
 inline const Foam::volScalarField&
-Foam::radiation::radiativeIntensityRay::Qr() const
+Foam::radiation::radiativeIntensityRay::qr() const
 {
-    return Qr_;
+    return qr_;
 }
 
 
-inline Foam::volScalarField& Foam::radiation::radiativeIntensityRay::Qr()
+inline Foam::volScalarField& Foam::radiation::radiativeIntensityRay::qr()
 {
-    return Qr_;
+    return qr_;
 }
 
 inline const Foam::volScalarField& Foam::radiation::
diff --git a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C
index d7b66a87e0447114df1f326a88ee586cf9f5a099..1f097e7855781935ba2c9a305b5fd9f64ec5304b 100644
--- a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C
+++ b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -28,7 +28,7 @@ License
 #include "scatterModel.H"
 #include "sootModel.H"
 #include "fvmSup.H"
-#include "fluidThermo.H"
+#include "basicThermo.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -235,10 +235,10 @@ void Foam::radiation::radiationModel::correct()
 
 Foam::tmp<Foam::fvScalarMatrix> Foam::radiation::radiationModel::Sh
 (
-    fluidThermo& thermo
+    const basicThermo& thermo,
+    const volScalarField& he
 ) const
 {
-    volScalarField& he = thermo.he();
     const volScalarField Cpv(thermo.Cpv());
     const volScalarField T3(pow3(T_));
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H
index 6601dba35511a05bf1565601159766545e88a079..6b21a8dbb2ecc5e3dd28b2c22107e33655acd14d 100644
--- a/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H
+++ b/src/thermophysicalModels/radiation/radiationModels/radiationModel/radiationModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ SourceFiles
 namespace Foam
 {
 
-class fluidThermo;
+class basicThermo;
 class fvMesh;
 
 namespace radiation
@@ -237,7 +237,11 @@ public:
             virtual tmp<volScalarField::Internal> Ru() const = 0;
 
             //- Energy source term
-            virtual tmp<fvScalarMatrix> Sh(fluidThermo& thermo) const;
+            virtual tmp<fvScalarMatrix> Sh
+            (
+                const basicThermo& thermo,
+                const volScalarField& he
+            ) const;
 
             //- Temperature source term
             virtual tmp<fvScalarMatrix> ST
diff --git a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C
index ef1a71d71f41f9132673a23ea77aab18582276b6..85aa33091d88d9a8ec8d0d196e060d23f141093b 100644
--- a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C
+++ b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.C
@@ -248,11 +248,11 @@ Foam::radiation::viewFactor::viewFactor(const volScalarField& T)
         mesh_,
         finalAgglom_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::MUST_READ,
@@ -308,11 +308,11 @@ Foam::radiation::viewFactor::viewFactor
         mesh_,
         finalAgglom_
     ),
-    Qr_
+    qr_
     (
         IOobject
         (
-            "Qr",
+            "qr",
             mesh_.time().timeName(),
             mesh_,
             IOobject::MUST_READ,
@@ -382,7 +382,7 @@ void Foam::radiation::viewFactor::insertMatrixElements
 void Foam::radiation::viewFactor::calculate()
 {
     // Store previous iteration
-    Qr_.storePrevIter();
+    qr_.storePrevIter();
 
     if (useSolarLoad_)
     {
@@ -403,7 +403,7 @@ void Foam::radiation::viewFactor::calculate()
     const boundaryRadiationProperties& boundaryRadiation =
         boundaryRadiationProperties::New(mesh_);
 
-    volScalarField::Boundary& QrBf = Qr_.boundaryFieldRef();
+    volScalarField::Boundary& qrBf = qr_.boundaryFieldRef();
 
     forAll(selectedPatches_, i)
     {
@@ -412,18 +412,18 @@ void Foam::radiation::viewFactor::calculate()
         const scalarField& Tp = T_.boundaryField()[patchID];
         const scalarField& sf = mesh_.magSf().boundaryField()[patchID];
 
-        fvPatchScalarField& QrPatch = QrBf[patchID];
+        fvPatchScalarField& qrPatch = qrBf[patchID];
 
-        greyDiffusiveViewFactorFixedValueFvPatchScalarField& Qrp =
+        greyDiffusiveViewFactorFixedValueFvPatchScalarField& qrp =
             refCast
             <
                 greyDiffusiveViewFactorFixedValueFvPatchScalarField
-            >(QrPatch);
+            >(qrPatch);
 
         const tmp<scalarField> teb = boundaryRadiation.emissivity(patchID);
         const scalarField& eb = teb();
 
-        const tmp<scalarField> tHoi = Qrp.Qro();
+        const tmp<scalarField> tHoi = qrp.qro();
         const scalarField& Hoi = tHoi();
 
         const polyPatch& pp = coarseMesh_.boundaryMesh()[patchID];
@@ -497,23 +497,23 @@ void Foam::radiation::viewFactor::calculate()
     // Create global size vectors
     scalarField T(totalNCoarseFaces_, 0.0);
     scalarField E(totalNCoarseFaces_, 0.0);
-    scalarField QrExt(totalNCoarseFaces_, 0.0);
+    scalarField qrExt(totalNCoarseFaces_, 0.0);
 
     // Fill lists from compact to global indexes.
     forAll(compactCoarseT, i)
     {
         T[compactGlobalIds[i]] = compactCoarseT[i];
         E[compactGlobalIds[i]] = compactCoarseE[i];
-        QrExt[compactGlobalIds[i]] = compactCoarseHo[i];
+        qrExt[compactGlobalIds[i]] = compactCoarseHo[i];
     }
 
     Pstream::listCombineGather(T, maxEqOp<scalar>());
     Pstream::listCombineGather(E, maxEqOp<scalar>());
-    Pstream::listCombineGather(QrExt, maxEqOp<scalar>());
+    Pstream::listCombineGather(qrExt, maxEqOp<scalar>());
 
     Pstream::listCombineScatter(T);
     Pstream::listCombineScatter(E);
-    Pstream::listCombineScatter(QrExt);
+    Pstream::listCombineScatter(qrExt);
 
     // Net radiation
     scalarField q(totalNCoarseFaces_, 0.0);
@@ -536,7 +536,7 @@ void Foam::radiation::viewFactor::calculate()
                     if (i==j)
                     {
                         C(i, j) = invEj - (invEj - 1.0)*Fmatrix_()(i, j);
-                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4 - QrExt[j];
+                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4 - qrExt[j];
                     }
                     else
                     {
@@ -592,7 +592,7 @@ void Foam::radiation::viewFactor::calculate()
 
                     if (i==j)
                     {
-                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4  - QrExt[j];
+                        q[i] += (Fmatrix_()(i, j) - 1.0)*sigmaT4  - qrExt[j];
                     }
                     else
                     {
@@ -612,7 +612,7 @@ void Foam::radiation::viewFactor::calculate()
         }
     }
 
-    // Scatter q and fill Qr
+    // Scatter q and fill qr
     Pstream::listCombineScatter(q);
     Pstream::listCombineGather(q, maxEqOp<scalar>());
 
@@ -623,7 +623,7 @@ void Foam::radiation::viewFactor::calculate()
         const polyPatch& pp = mesh_.boundaryMesh()[patchID];
         if (pp.size() > 0)
         {
-            scalarField& Qrp = QrBf[patchID];
+            scalarField& qrp = qrBf[patchID];
             const scalarField& sf = mesh_.magSf().boundaryField()[patchID];
             const labelList& agglom = finalAgglom_[patchID];
             label nAgglom = max(agglom)+1;
@@ -644,8 +644,8 @@ void Foam::radiation::viewFactor::calculate()
                 {
                     label faceI = fineFaces[k];
 
-                    Qrp[faceI] = q[globalCoarse];
-                    heatFlux += Qrp[faceI]*sf[faceI];
+                    qrp[faceI] = q[globalCoarse];
+                    heatFlux += qrp[faceI]*sf[faceI];
                 }
                 globCoarseId ++;
             }
@@ -654,11 +654,11 @@ void Foam::radiation::viewFactor::calculate()
 
     if (debug)
     {
-        forAll(QrBf, patchID)
+        forAll(qrBf, patchID)
         {
-            const scalarField& Qrp = QrBf[patchID];
+            const scalarField& qrp = qrBf[patchID];
             const scalarField& magSf = mesh_.magSf().boundaryField()[patchID];
-            scalar heatFlux = gSum(Qrp*magSf);
+            scalar heatFlux = gSum(qrp*magSf);
 
             InfoInFunction
                 << "Total heat transfer rate at patch: "
@@ -667,8 +667,8 @@ void Foam::radiation::viewFactor::calculate()
         }
     }
 
-    // Relax Qr if necessary
-    Qr_.relax();
+    // Relax qr if necessary
+    qr_.relax();
 }
 
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H
index 0e50d50634c5231e5c4eaa895a8601f0b4e44f66..5bd75d92ae65df34b589463ca672bd9347d9e0bd 100644
--- a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H
+++ b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactor.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,7 @@ namespace radiation
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class viewFactor Declaration
+                         Class viewFactor Declaration
 \*---------------------------------------------------------------------------*/
 
 class viewFactor
@@ -92,7 +92,7 @@ protected:
         singleCellFvMesh coarseMesh_;
 
         //- Net radiative heat flux [W/m2]
-        volScalarField Qr_;
+        volScalarField qr_;
 
         //- View factor matrix
         autoPtr<scalarSquareMatrix> Fmatrix_;
@@ -186,7 +186,7 @@ public:
     // Access
 
         //- Const access to total radiative heat flux field
-        inline const volScalarField& Qr() const;
+        inline const volScalarField& qr() const;
 };
 
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H
index e45f9a8ba0b42211903ded1f4f33425b2e2f81e4..b03f886ab21c6028b991e7fb5b793c9f80ecdab7 100644
--- a/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H
+++ b/src/thermophysicalModels/radiation/radiationModels/viewFactor/viewFactorI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,11 +23,10 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-inline const Foam::volScalarField& Foam::radiation::viewFactor::Qr() const
+inline const Foam::volScalarField& Foam::radiation::viewFactor::qr() const
 {
-    return Qr_;
+    return qr_;
 }
 
 
-
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C
index d78e1527a531071b0f43342060aa83d4e6fbf277..09a91a8d24f867787365475c7780f1696fefb657 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::binaryAbsorptionEmission::binaryAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs")),
     model1_
     (
         absorptionEmissionModel::New(coeffsDict_.subDict("model1"), mesh)
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C
index c4dc6b246c483c6f6b8f4e4446f36b2ec359315d..6fd866c6d97a7361d128002a2a2639ae3a56c699 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/constantAbsorptionEmission/constantAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::constantAbsorptionEmission::constantAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs")),
     a_(coeffsDict_.lookup("absorptivity")),
     e_(coeffsDict_.lookup("emissivity")),
     E_(coeffsDict_.lookup("E"))
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
index 97186ad4c0f4bf8999acacca0d4888cdb7c79eb2..295beb0e2bcf75ebf4c9f36892301eb7e0fd81dd 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_((dict.subDict(typeName + "Coeffs"))),
+    coeffsDict_((dict.optionalSubDict(typeName + "Coeffs"))),
     speciesNames_(0),
     specieIndex_(label(0)),
     lookUpTablePtr_(),
@@ -73,7 +73,7 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission
 
 
     label nFunc = 0;
-    const dictionary& functionDicts = dict.subDict(typeName + "Coeffs");
+    const dictionary& functionDicts = dict.optionalSubDict(typeName + "Coeffs");
 
     forAllConstIter(dictionary, functionDicts, iter)
     {
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C
index 31f691e0ad1f057c896c12d3237c7504607df3f8..aef799dfecb2798cdca0fc5d254d226991adfc18 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -89,7 +89,7 @@ greyMeanSolidAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_((dict.subDict(typeName + "Coeffs"))),
+    coeffsDict_((dict.optionalSubDict(typeName + "Coeffs"))),
     thermo_(mesh.lookupObject<solidThermo>(basicThermo::dictName)),
     speciesNames_(0),
     mixture_(dynamic_cast<const basicSpecieMixture&>(thermo_)),
@@ -103,7 +103,7 @@ greyMeanSolidAbsorptionEmission
     }
 
     label nFunc = 0;
-    const dictionary& functionDicts = dict.subDict(typeName + "Coeffs");
+    const dictionary& functionDicts = dict.optionalSubDict(typeName + "Coeffs");
 
     forAllConstIter(dictionary, functionDicts, iter)
     {
diff --git a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
index 9af7a178c8de8ff97492de456e700f3e01dcd151..cb900d1a2680f0625a636da019353d9d639cc34a 100644
--- a/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
+++ b/src/thermophysicalModels/radiation/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::wideBandAbsorptionEmission::wideBandAbsorptionEmission
 )
 :
     absorptionEmissionModel(dict, mesh),
-    coeffsDict_((dict.subDict(typeName + "Coeffs"))),
+    coeffsDict_((dict.optionalSubDict(typeName + "Coeffs"))),
     speciesNames_(0),
     specieIndex_(label(0)),
     lookUpTable_
@@ -67,7 +67,7 @@ Foam::radiation::wideBandAbsorptionEmission::wideBandAbsorptionEmission
     totalWaveLength_(0)
 {
     label nBand = 0;
-    const dictionary& functionDicts = dict.subDict(typeName +"Coeffs");
+    const dictionary& functionDicts = dict.optionalSubDict(typeName +"Coeffs");
     forAllConstIter(dictionary, functionDicts, iter)
     {
         // safety:
diff --git a/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C b/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C
index 12020b8d99cb485e5a08a992cef6fda41a239768..dd552d0a66853c6613d401207cdaa3d34e14ae52 100644
--- a/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C
+++ b/src/thermophysicalModels/radiation/submodels/scatterModel/constantScatter/constantScatter.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,7 @@ Foam::radiation::constantScatter::constantScatter
 )
 :
     scatterModel(dict, mesh),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
+    coeffsDict_(dict.optionalSubDict(typeName + "Coeffs")),
     sigma_(coeffsDict_.lookup("sigma")),
     C_(coeffsDict_.lookup("C"))
 {}
diff --git a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
index 2fc7a6f97be9a5895ddb98f57960b4189c684cb5..5f88b7a3e65bad5ad6d436f55ddd5a992e06fd0b 100644
--- a/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquidProperties/liquidProperties.C
@@ -148,7 +148,10 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 
             return autoPtr<liquidProperties>
             (
-                cstrIter()(dict.subDict(liquidPropertiesTypeName + "Coeffs"))
+                cstrIter()
+                (
+                    dict.optionalSubDict(liquidPropertiesTypeName + "Coeffs")
+                )
             );
         }
     }
diff --git a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
index 75463513e1e1cab4014f7b90582d805cb11672f1..a3aaf62830ce225c198053ee498a5ef192cd4d6b 100644
--- a/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
+++ b/src/thermophysicalModels/thermophysicalProperties/solidProperties/solidProperties/solidPropertiesNew.C
@@ -78,7 +78,7 @@ Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
         {
             return autoPtr<solidProperties>
             (
-                new solidProperties(dict.subDict(solidType + "Coeffs"))
+                new solidProperties(dict.optionalSubDict(solidType + "Coeffs"))
             );
         }
     }
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
index 690e4a950534d689aacf58899d9fc1c8fbfc5787..7edd6225af44da03d08f5b703d219c46d8386732 100644
--- a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelector.H
@@ -80,6 +80,10 @@ public:
 
     // Member Functions
 
+        //- Return reference to the selected physical properties class
+        inline const ThermophysicalProperties& properties() const;
+
+
         // Physical constants which define the specie
 
             //- Molecular weight [kg/kmol]
diff --git a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
index 870aa1dbed32356788193b0c45f498ade1d6383e..a074d3714690e29d73f59fe68a73f530c4fccead 100644
--- a/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
+++ b/src/thermophysicalModels/thermophysicalProperties/thermophysicalPropertiesSelector/thermophysicalPropertiesSelectorI.H
@@ -25,6 +25,14 @@ License
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class ThermophysicalProperties>
+inline const ThermophysicalProperties&
+Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>
+::properties() const
+{
+    return propertiesPtr_();
+}
+
 template<class ThermophysicalProperties>
 inline Foam::scalar
 Foam::thermophysicalPropertiesSelector<ThermophysicalProperties>::W() const
diff --git a/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C b/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
index ec1834fa46007529e02d81c58f1c7bb6a067596b..c9fbb148195502345cbaa979678f411c527c1fed 100644
--- a/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
+++ b/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -277,7 +277,7 @@ Foam::linearValveFvMesh::linearValveFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     msPtr_(motionSolver::New(*this))
 {
diff --git a/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C b/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
index c86a550eb056cdc14f737110dc3bd3f8c22cb646..7bf5592af782b55dec3fa75cafb82d4977dea368 100644
--- a/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
+++ b/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -356,7 +356,7 @@ Foam::linearValveLayersFvMesh::linearValveLayersFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     )
 {
     addZonesAndModifiers();
diff --git a/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C b/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
index dec25b574613a277fe9fb88abecf499b21fa4e28..ff9ad4f17a47cf28d004278fbe9fff62a9355dc9 100644
--- a/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
+++ b/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -293,7 +293,7 @@ Foam::mixerFvMesh::mixerFvMesh
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     csPtr_
     (
diff --git a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
index 5e617cdec8349389baf786decba8879a2fef95d3..151f1c10cba392ce359fb96b01a80976eb3782ea 100644
--- a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
+++ b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
@@ -263,7 +263,7 @@ Foam::movingConeTopoFvMesh::movingConeTopoFvMesh(const IOobject& io)
                 IOobject::NO_WRITE,
                 false
             )
-        ).subDict(typeName + "Coeffs")
+        ).optionalSubDict(typeName + "Coeffs")
     ),
     motionVelAmplitude_(motionDict_.lookup("motionVelAmplitude")),
     motionVelPeriod_(readScalar(motionDict_.lookup("motionVelPeriod"))),
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
index 532a9af34fbaf88c2996571a95108c5995257e7d..22e835d8b8cb2ae0ed3bcf297fceb45e25a8304c 100644
--- a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,4 +40,14 @@ immiscibleIncompressibleTwoPhaseMixture
 {}
 
 
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+bool Foam::immiscibleIncompressibleTwoPhaseMixture::read()
+{
+    return
+        incompressibleTwoPhaseMixture::read()
+     && interfaceProperties::read();
+}
+
+
 // ************************************************************************* //
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
index ded416b068f47652b39d7534b9ae4a5687f0fe88..8129ea543e2c0e27e8c7e1e4e1f265ca8dc32f7c 100644
--- a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -80,12 +80,7 @@ public:
         }
 
         //- Read base transportProperties dictionary
-        virtual bool read()
-        {
-            return
-                incompressibleTwoPhaseMixture::read()
-             && interfaceProperties::read();
-        }
+        virtual bool read();
 };
 
 
diff --git a/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C b/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C
index 4ea9529eaeffe24a1221e6526d50d96d5945c9bb..cb486982c67c9442bcea2b7ca01e93f68dc5b186 100644
--- a/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C
+++ b/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -67,7 +67,10 @@ Foam::viscosityModels::BirdCarreau::BirdCarreau
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    BirdCarreauCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    BirdCarreauCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     nu0_("nu0", dimViscosity, BirdCarreauCoeffs_),
     nuInf_("nuInf", dimViscosity, BirdCarreauCoeffs_),
     k_("k", dimTime, BirdCarreauCoeffs_),
@@ -104,7 +107,8 @@ bool Foam::viscosityModels::BirdCarreau::read
 {
     viscosityModel::read(viscosityProperties);
 
-    BirdCarreauCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    BirdCarreauCoeffs_ =
+        viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     BirdCarreauCoeffs_.lookup("nu0") >> nu0_;
     BirdCarreauCoeffs_.lookup("nuInf") >> nuInf_;
diff --git a/src/transportModels/incompressible/viscosityModels/Casson/Casson.C b/src/transportModels/incompressible/viscosityModels/Casson/Casson.C
index d3c88ccf8cb089209129664f8c8687048b42ea10..43e2807f138ec27011c4e7e263539b18e886227e 100644
--- a/src/transportModels/incompressible/viscosityModels/Casson/Casson.C
+++ b/src/transportModels/incompressible/viscosityModels/Casson/Casson.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -83,7 +83,7 @@ Foam::viscosityModels::Casson::Casson
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    CassonCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    CassonCoeffs_(viscosityProperties.optionalSubDict(typeName + "Coeffs")),
     m_("m", dimViscosity, CassonCoeffs_),
     tau0_("tau0", dimViscosity/dimTime, CassonCoeffs_),
     nuMin_("nuMin", dimViscosity, CassonCoeffs_),
@@ -112,7 +112,7 @@ bool Foam::viscosityModels::Casson::read
 {
     viscosityModel::read(viscosityProperties);
 
-    CassonCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    CassonCoeffs_ = viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     CassonCoeffs_.lookup("m") >> m_;
     CassonCoeffs_.lookup("tau0") >> tau0_;
diff --git a/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C b/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C
index 7359c621d0d2f3109a1dba3ad9e2e52985265fae..6b9ac760a789770023b98c8f5478623aaa1aecc5 100644
--- a/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C
+++ b/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -65,7 +65,10 @@ Foam::viscosityModels::CrossPowerLaw::CrossPowerLaw
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    CrossPowerLawCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    CrossPowerLawCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     nu0_("nu0", dimViscosity, CrossPowerLawCoeffs_),
     nuInf_("nuInf", dimViscosity, CrossPowerLawCoeffs_),
     m_("m", dimTime, CrossPowerLawCoeffs_),
@@ -94,7 +97,8 @@ bool Foam::viscosityModels::CrossPowerLaw::read
 {
     viscosityModel::read(viscosityProperties);
 
-    CrossPowerLawCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    CrossPowerLawCoeffs_ =
+        viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     CrossPowerLawCoeffs_.lookup("nu0") >> nu0_;
     CrossPowerLawCoeffs_.lookup("nuInf") >> nuInf_;
diff --git a/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C b/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
index f9ed2bb86e6724827c6eb5320280541ede5f0a33..8f1656df140b167c4397060bcef499229fcfbf78 100644
--- a/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
+++ b/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,10 @@ Foam::viscosityModels::HerschelBulkley::HerschelBulkley
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    HerschelBulkleyCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    HerschelBulkleyCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     k_("k", dimViscosity, HerschelBulkleyCoeffs_),
     n_("n", dimless, HerschelBulkleyCoeffs_),
     tau0_("tau0", dimViscosity/dimTime, HerschelBulkleyCoeffs_),
@@ -107,7 +110,8 @@ bool Foam::viscosityModels::HerschelBulkley::read
 {
     viscosityModel::read(viscosityProperties);
 
-    HerschelBulkleyCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    HerschelBulkleyCoeffs_ =
+        viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     HerschelBulkleyCoeffs_.lookup("k") >> k_;
     HerschelBulkleyCoeffs_.lookup("n") >> n_;
diff --git a/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C b/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
index d3258f3a58026350853f9ae962a658c071a44db1..ec84ba202851f1b388a93990d097f5298bde957b 100644
--- a/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
+++ b/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -81,7 +81,7 @@ Foam::viscosityModels::powerLaw::powerLaw
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    powerLawCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    powerLawCoeffs_(viscosityProperties.optionalSubDict(typeName + "Coeffs")),
     k_("k", dimViscosity, powerLawCoeffs_),
     n_("n", dimless, powerLawCoeffs_),
     nuMin_("nuMin", dimViscosity, powerLawCoeffs_),
@@ -110,7 +110,7 @@ bool Foam::viscosityModels::powerLaw::read
 {
     viscosityModel::read(viscosityProperties);
 
-    powerLawCoeffs_ = viscosityProperties.subDict(typeName + "Coeffs");
+    powerLawCoeffs_ = viscosityProperties.optionalSubDict(typeName + "Coeffs");
 
     powerLawCoeffs_.lookup("k") >> k_;
     powerLawCoeffs_.lookup("n") >> n_;
diff --git a/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C b/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C
index 6c218d710a7be2852c7654680c45a7203a09e1d3..29e0735bab1c4d3fd13b03664182ec3ad6c73ea3 100644
--- a/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C
+++ b/src/transportModels/incompressible/viscosityModels/strainRateFunction/strainRateFunction.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,10 @@ Foam::viscosityModels::strainRateFunction::strainRateFunction
 )
 :
     viscosityModel(name, viscosityProperties, U, phi),
-    strainRateFunctionCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
+    strainRateFunctionCoeffs_
+    (
+        viscosityProperties.optionalSubDict(typeName + "Coeffs")
+    ),
     strainRateFunction_
     (
         Function1<scalar>::New("function", strainRateFunctionCoeffs_)
@@ -119,7 +122,7 @@ bool Foam::viscosityModels::strainRateFunction::read
 {
     viscosityModel::read(viscosityProperties);
 
-    strainRateFunctionCoeffs_ = viscosityProperties.subDict
+    strainRateFunctionCoeffs_ = viscosityProperties.optionalSubDict
     (
         typeName + "Coeffs"
     );
diff --git a/src/transportModels/interfaceProperties/Make/files b/src/transportModels/interfaceProperties/Make/files
index 35c9a52b3d370a8128f489a5e563b2552ed89c70..ad518b1abac0f50882d5f9dd2529391efa4ecb5f 100644
--- a/src/transportModels/interfaceProperties/Make/files
+++ b/src/transportModels/interfaceProperties/Make/files
@@ -1,4 +1,9 @@
 interfaceProperties.C
 interfaceCompression/interfaceCompression.C
 
+surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
+surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
+surfaceTensionModels/constant/constantSurfaceTension.C
+surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
+
 LIB = $(FOAM_LIBBIN)/libinterfaceProperties
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C
index 5cba927295ac362e1c5fa1b678a79ac18eb8853c..c31cd0efe60963b4ccc61f40dbde3f71872b60a9 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.C
+++ b/src/transportModels/interfaceProperties/interfaceProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -167,7 +167,8 @@ Foam::interfaceProperties::interfaceProperties
             alpha1.mesh().solverDict(alpha1.name()).lookup("cAlpha")
         )
     ),
-    sigma_("sigma", dimensionSet(1, 0, -2, 0, 0), dict),
+
+    sigmaPtr_(surfaceTensionModel::New(dict, alpha1.mesh())),
 
     deltaN_
     (
@@ -208,6 +209,13 @@ Foam::interfaceProperties::interfaceProperties
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
+Foam::tmp<Foam::volScalarField>
+Foam::interfaceProperties::sigmaK() const
+{
+    return sigmaPtr_->sigma()*K_;
+}
+
+
 Foam::tmp<Foam::surfaceScalarField>
 Foam::interfaceProperties::surfaceTensionForce() const
 {
@@ -231,7 +239,7 @@ void Foam::interfaceProperties::correct()
 bool Foam::interfaceProperties::read()
 {
     alpha1_.mesh().solverDict(alpha1_.name()).lookup("cAlpha") >> cAlpha_;
-    transportPropertiesDict_.lookup("sigma") >> sigma_;
+    sigmaPtr_->read(transportPropertiesDict_);
 
     return true;
 }
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.H b/src/transportModels/interfaceProperties/interfaceProperties.H
index 7956746c2ba060966f81ef9bf7554b02411f37c6..81c08948cadd7d6a6db00ad709a74c84ba19490d 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.H
+++ b/src/transportModels/interfaceProperties/interfaceProperties.H
@@ -40,6 +40,7 @@ SourceFiles
 #define interfaceProperties_H
 
 #include "IOdictionary.H"
+#include "surfaceTensionModel.H"
 #include "volFields.H"
 #include "surfaceFields.H"
 
@@ -63,7 +64,7 @@ class interfaceProperties
         scalar cAlpha_;
 
         //- Surface tension
-        dimensionedScalar sigma_;
+        autoPtr<surfaceTensionModel> sigmaPtr_;
 
         //- Stabilisation for normalisation of the interface normal
         const dimensionedScalar deltaN_;
@@ -127,10 +128,7 @@ public:
             return nHatf_;
         }
 
-        tmp<volScalarField> sigmaK() const
-        {
-            return sigma_*K_;
-        }
+        tmp<volScalarField> sigmaK() const;
 
         tmp<surfaceScalarField> surfaceTensionForce() const;
 
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
new file mode 100644
index 0000000000000000000000000000000000000000..bbe92e5196e95f23504add3f833eca19e27d1691
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.C
@@ -0,0 +1,116 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "constantSurfaceTension.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceTensionModels
+{
+    defineTypeNameAndDebug(constant, 0);
+    addToRunTimeSelectionTable(surfaceTensionModel, constant, dictionary);
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::constant::constant
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    surfaceTensionModel(mesh),
+    sigma_("sigma", dimensionSet(1, 0, -2, 0, 0), dict)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::constant::~constant()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::surfaceTensionModels::constant::sigma() const
+{
+    return tmp<volScalarField>
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "sigma",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            mesh_,
+            sigma_
+        )
+    );
+}
+
+
+bool Foam::surfaceTensionModels::constant::read(const dictionary& dict)
+{
+    // Handle sub-dictionary format as a special case
+    if (dict.isDict("sigma"))
+    {
+        dict.subDict("sigma").lookup("sigma") >> sigma_;
+    }
+    else
+    {
+        dict.lookup("sigma") >> sigma_;
+    }
+
+    return true;
+}
+
+
+bool Foam::surfaceTensionModels::constant::writeData(Ostream& os) const
+{
+    if (surfaceTensionModel::writeData(os))
+    {
+        os  << sigma_ << token::END_STATEMENT << nl;
+        return os.good();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
new file mode 100644
index 0000000000000000000000000000000000000000..feef36300c256e2c0c272799a793ff04c7038774
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/constant/constantSurfaceTension.H
@@ -0,0 +1,117 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModels::constant
+
+Description
+    Uniform constant surface tension model.
+
+Usage
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type                constant;
+            sigma               0.07;
+        }
+    \endverbatim
+
+See also
+    Foam::surfaceTensionModel
+
+SourceFiles
+    constantSurfaceTension.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef constantSurfaceTension_H
+#define constantSurfaceTension_H
+
+#include "surfaceTensionModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+namespace surfaceTensionModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class constant Declaration
+\*---------------------------------------------------------------------------*/
+
+class constant
+:
+    public surfaceTensionModel
+{
+    // Private data
+
+        //- Surface tension coefficient
+        dimensionedScalar sigma_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("constant");
+
+
+    // Constructors
+
+        //- Construct from dictionary and mesh
+        constant
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    //- Destructor
+    virtual ~constant();
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict);
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceTensionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..a1f6e9f86dd95102e25a737c6a34cc8d3b5be391
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C
@@ -0,0 +1,71 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "surfaceTensionModel.H"
+#include "constantSurfaceTension.H"
+
+// * * * * * * * * * * * * * * * * Selector  * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::surfaceTensionModel> Foam::surfaceTensionModel::New
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+{
+    if (dict.isDict("sigma"))
+    {
+        const dictionary& sigmaDict = surfaceTensionModel::sigmaDict(dict);
+
+        word surfaceTensionModelType(sigmaDict.lookup("type"));
+
+        Info<< "Selecting surfaceTensionModel "
+            << surfaceTensionModelType << endl;
+
+        dictionaryConstructorTable::iterator cstrIter =
+            dictionaryConstructorTablePtr_->find(surfaceTensionModelType);
+
+        if (cstrIter == dictionaryConstructorTablePtr_->end())
+        {
+            FatalErrorInFunction
+                << "Unknown surfaceTensionModelType type "
+                << surfaceTensionModelType << endl << endl
+                << "Valid surfaceTensionModel types are : " << endl
+                << dictionaryConstructorTablePtr_->sortedToc()
+                << exit(FatalError);
+        }
+
+        return cstrIter()(sigmaDict, mesh);
+    }
+    else
+    {
+        return autoPtr<surfaceTensionModel>
+        (
+            new surfaceTensionModels::constant(dict, mesh)
+        );
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..b0d1cbf2d92ab20c424eb239bfa2379be8fc8821
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
@@ -0,0 +1,73 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "surfaceTensionModel.H"
+#include "fvMesh.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(surfaceTensionModel, 0);
+    defineRunTimeSelectionTable(surfaceTensionModel, dictionary);
+}
+
+const Foam::dimensionSet Foam::surfaceTensionModel::dimSigma(1, 0, -2, 0, 0);
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModel::surfaceTensionModel(const fvMesh& mesh)
+:
+    regIOobject
+    (
+        IOobject
+        (
+            typeName, mesh.name(),
+            mesh.time().timeName(),
+            mesh,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        )
+    ),
+    mesh_(mesh)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModel::~surfaceTensionModel()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::surfaceTensionModel::writeData(Ostream& os) const
+{
+    return os.good();
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..930a8444f1d7e572e62070b097036efdad261398
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
@@ -0,0 +1,161 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModel
+
+Description
+    Abstract base-class for surface tension models which return the surface
+    tension coefficient field.
+
+Usage
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type                <surface tension model type>;
+            <coefficient name>  <coefficient value>;
+            .
+            .
+            .
+        }
+    \endverbatim
+    For simplicity and backward-compatibility the constant value format is
+    also supported, e.g.
+    \verbatim
+        sigma           0.07;
+    \endverbatim
+
+SourceFiles
+    surfaceTensionModel.C
+    newSurfaceTensionModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef surfaceTensionModel_H
+#define surfaceTensionModel_H
+
+#include "regIOobject.H"
+#include "dimensionedTypes.H"
+#include "volFieldsFwd.H"
+#include "runTimeSelectionTables.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class fvMesh;
+
+/*---------------------------------------------------------------------------*\
+                           Class surfaceTensionModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class surfaceTensionModel
+:
+    public regIOobject
+{
+protected:
+
+    // Protected member data
+
+        //- Reference to mesh
+        const fvMesh& mesh_;
+
+
+    // Protected member functions
+
+        static const dictionary& sigmaDict(const dictionary& dict)
+        {
+            return dict.subDict("sigma");
+        }
+
+
+public:
+
+    //- Runtime type information
+    TypeName("surfaceTensionModel");
+
+
+    // Declare runtime construction
+
+        declareRunTimeSelectionTable
+        (
+            autoPtr,
+            surfaceTensionModel,
+            dictionary,
+            (
+                const dictionary& dict,
+                const fvMesh& mesh
+            ),
+            (dict, mesh)
+        );
+
+
+    // Static data members
+
+        //- Surface tension coefficient dimensions
+        static const dimensionSet dimSigma;
+
+
+    // Constructors
+
+        // Construct from mesh
+        surfaceTensionModel(const fvMesh& mesh);
+
+
+    //- Destructor
+    virtual ~surfaceTensionModel();
+
+
+    // Selectors
+
+        static autoPtr<surfaceTensionModel> New
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const = 0;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict) = 0;
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
new file mode 100644
index 0000000000000000000000000000000000000000..c56ac7f4a8bde8332bd12b03f625c5a1c8414562
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.C
@@ -0,0 +1,138 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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 "temperatureDependentSurfaceTension.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace surfaceTensionModels
+{
+    defineTypeNameAndDebug(temperatureDependent, 0);
+    addToRunTimeSelectionTable
+    (
+        surfaceTensionModel,
+        temperatureDependent,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::temperatureDependent::temperatureDependent
+(
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    surfaceTensionModel(mesh),
+    TName_(dict.lookupOrDefault<word>("T", "T")),
+    sigma_(Function1<scalar>::New("sigma", dict))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::surfaceTensionModels::temperatureDependent::~temperatureDependent()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::surfaceTensionModels::temperatureDependent::sigma() const
+{
+    tmp<volScalarField> tsigma
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "sigma",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            mesh_,
+            dimSigma
+        )
+    );
+    volScalarField& sigma = tsigma.ref();
+
+    const volScalarField& T = mesh_.lookupObject<volScalarField>(TName_);
+
+    sigma.field() = sigma_->value(T.field());
+
+    volScalarField::Boundary& sigmaBf = sigma.boundaryFieldRef();
+    const volScalarField::Boundary& TBf = T.boundaryField();
+
+    forAll(sigmaBf, patchi)
+    {
+        sigmaBf[patchi] = sigma_->value(TBf[patchi]);
+    }
+
+    return tsigma;
+}
+
+
+bool Foam::surfaceTensionModels::temperatureDependent::read
+(
+    const dictionary& dict
+)
+{
+    const dictionary& sigmaDict = surfaceTensionModel::sigmaDict(dict);
+
+    TName_ = sigmaDict.lookupOrDefault<word>("T", "T");
+    sigma_ = Function1<scalar>::New("sigma", sigmaDict);
+
+    return true;
+}
+
+
+bool Foam::surfaceTensionModels::temperatureDependent::writeData
+(
+    Ostream& os
+) const
+{
+    if (surfaceTensionModel::writeData(os))
+    {
+        os  << sigma_() << token::END_STATEMENT << nl;
+        return os.good();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H
new file mode 100644
index 0000000000000000000000000000000000000000..c0bded7c311205f814f58d69e0d7f2fce2645be2
--- /dev/null
+++ b/src/transportModels/interfaceProperties/surfaceTensionModels/temperatureDependent/temperatureDependentSurfaceTension.H
@@ -0,0 +1,132 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2017 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::surfaceTensionModels::temperatureDependent
+
+Description
+    Temperature-dependent surface tension model.
+
+    The surface tension is evaluated from the specified Foam::Function1 for the
+    temperature field looked-up from the mesh database the name of which
+    may optionally be provided.
+
+Usage
+    \table
+        Property     | Description               | Required    | Default value
+        T            | Temperature field name    | no          | T
+        sigma        | Surface tension function  | yes         |
+    \endtable
+
+    Example of the surface tension specification:
+    \verbatim
+        sigma
+        {
+            type                temperatureDependent;
+            sigma               constant 0.07;
+        }
+    \endverbatim
+
+See also
+    Foam::surfaceTensionModel
+    Foam::Function1
+
+SourceFiles
+    temperatureDependentSurfaceTension.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef temperatureDependentSurfaceTension_H
+#define temperatureDependentSurfaceTension_H
+
+#include "surfaceTensionModel.H"
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+namespace surfaceTensionModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class temperatureDependent Declaration
+\*---------------------------------------------------------------------------*/
+
+class temperatureDependent
+:
+    public surfaceTensionModel
+{
+    // Private data
+
+        //- Name of temperature field, default = "T"
+        word TName_;
+
+        //- Surface-tension function
+        autoPtr<Function1<scalar>> sigma_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("temperatureDependent");
+
+
+    // Constructors
+
+        //- Construct from dictionary and mesh
+        temperatureDependent
+        (
+            const dictionary& dict,
+            const fvMesh& mesh
+        );
+
+
+    //- Destructor
+    virtual ~temperatureDependent();
+
+
+    // Member Functions
+
+        //- Surface tension coefficient
+        virtual tmp<volScalarField> sigma() const;
+
+        //- Update surface tension coefficient from given dictionary
+        virtual bool read(const dictionary& dict);
+
+        //- Write in dictionary format
+        virtual bool writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceTensionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H b/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
index a3068b76e4b923b414adeb5fc144684b6bba414a..ac5ede7727494b603774bf4bc89be98daea6715c 100644
--- a/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
+++ b/src/transportModels/twoPhaseProperties/alphaContactAngle/temperatureDependentAlphaContactAngle/temperatureDependentAlphaContactAngleFvPatchScalarField.H
@@ -25,13 +25,17 @@ Class
     Foam::temperatureDependentAlphaContactAngleFvPatchScalarField
 
 Description
-    Temperature-dependent constant alphaContactAngle scalar boundary condition.
+    Temperature-dependent alphaContactAngle scalar boundary condition.
+
+    The contact angle is evaluated from the specified Foam::Function1 for the
+    temperature field looked-up from the mesh database the name of which
+    may optionally be provided.
 
 Usage
     \table
         Property     | Description             | Required    | Default value
         T            | Temperature field name  | no          | T
-        theta0       | Contact angle data      | yes         |
+        theta0       | Contact angle function  | yes         |
     \endtable
 
     Example of the boundary condition specification:
@@ -46,6 +50,7 @@ Usage
 See also
     Foam::alphaContactAngleFvPatchScalarField
     Foam::constantAlphaContactAngleFvPatchScalarField
+    Foam::Function1
 
 SourceFiles
     temperatureDependentAlphaContactAngleFvPatchScalarField.C
diff --git a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict
index caa7f881240d723ad31a320d93f35c0302002290..529ad4c9aafd0513356fba16283e039b332ac9b6 100644
--- a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict
+++ b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/dynamicMeshDict
@@ -16,43 +16,38 @@ FoamFile
 
 dynamicFvMesh      dynamicRefineFvMesh;
 
+// Refine every refineInterval timesteps
+refineInterval 1;
 
-dynamicRefineFvMeshCoeffs
-{
-
-    // Refine every refineInterval timesteps
-    refineInterval 1;
+// Maximum refinement level (starts from 0)
+maxRefinement 2;
 
-    // Maximum refinement level (starts from 0)
-    maxRefinement 2;
+// Maximum cell limit (approximate)
+maxCells 10000;
 
-    // Maximum cell limit (approximate)
-    maxCells 10000;
+// volScalarField to base refinement on
+field normalisedGradP;
 
-    // volScalarField to base refinement on
-    field normalisedGradP;
+nBufferLayers 1;
 
-    nBufferLayers 1;
+dumpLevel true;
 
-    dumpLevel true;
+lowerRefineLevel 0.5;
+upperRefineLevel 1.5;
 
-    lowerRefineLevel 0.5;
-    upperRefineLevel 1.5;
+unrefineLevel 0.5;
 
-    unrefineLevel 0.5;
+nBufferLayers 1;
+// Newly introduced patch points optionally get projected onto a surface
+//projectSurfaces ("fixedWalls4.stl");
+//projectPatches (fixedWalls);
+// Maximum project distance
+//projectDistance 1;
 
-    nBufferLayers 1;
-    // Newly introduced patch points optionally get projected onto a surface
-    //projectSurfaces ("fixedWalls4.stl");
-    //projectPatches (fixedWalls);
-    // Maximum project distance
-    //projectDistance 1;
-
-    // Fluxes to adapt. For newly created faces or split faces the flux
-    // gets estimated from an interpolated volVectorField ('velocity')
-    // First is name of the flux to adapt, second is velocity that will
-    // be interpolated and inner-producted with the face area vector.
-     correctFluxes ((phi rhoU) (phi_0 none));
-}
+// Fluxes to adapt. For newly created faces or split faces the flux
+// gets estimated from an interpolated volVectorField ('velocity')
+// First is name of the flux to adapt, second is velocity that will
+// be interpolated and inner-producted with the face area vector.
+correctFluxes ((phi rhoU) (phi_0 none));
 
 // ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
index 2c5a6390c324f4c60cfab96c74713b828e8ae639..2bd2a14104de106767968eb6591cd9d0c5a00d1a 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
@@ -53,8 +53,8 @@ boundaryField
         filmRegion      filmRegion;
         Tnbr            T;
         kappaMethod     fluidThermo;
-        QrNbr           none;
-        Qr              Qr;
+        qrNbr           none;
+        qr              qr;
         filmDeltaDry    0.0;
         filmDeltaWet    2e-4;
         value           $internalField;
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
index 3806323a7c80a6995b8fd57254588ec93defd2a2..2bf4280bd5e8ec6ff27b19c28e21a257b65c746a 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
@@ -38,8 +38,8 @@ boundaryField
         filmRegion      filmRegion;
         Tnbr            T;
         kappaMethod     solidThermo;
-        QrNbr           Qr;
-        Qr              none;
+        qrNbr           qr;
+        qr              none;
         filmDeltaDry    0.0;
         filmDeltaWet    2e-4;
         value           uniform 298;
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/qr
similarity index 94%
rename from tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/qr
index 0d04b38505e6b133bdbd8765d8b4dab839a64036..59a940d229b21190c695358802675f09abc276fb 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/qr
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      Qr;
+    object      qr;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -38,7 +38,7 @@ boundaryField
         sampleMode      nearestPatchFace;
         samplePatch     region0_to_pyrolysisRegion_coupledWall;
         offset          (0 0 0);
-        field       Qr; // this is the name of Qr field in region0
+        field       qr; // this is the name of qr field in region0
         setAverage      no;
         average         0;
         value           uniform 0;
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
index 11f9c8cee2bc4a11e469d3f8bdd62b1854943fe2..7de75799a36aea272abed45a22091c8d66ef7f52 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
@@ -28,9 +28,9 @@ pyrolysis
         filmCoupled     true;
 
         gasHSource      true;
-        QrHSource       false;
+        qrHSource       false;
 
-        radFluxName     Qr;
+        radFluxName     qr;
 
         moveMesh        false; // true;
         minimumDelta    1e-6;
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
index f9402ae285476d5d220ae796d6f4f10086c6d7de..df1799176b27c03bb93cae2bb9822d8c4b067f37 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
@@ -51,8 +51,8 @@ boundaryField
         type            compressible::turbulentTemperatureRadCoupledMixed;
         Tnbr            T;
         kappaMethod     fluidThermo;
-        QrNbr           none;
-        Qr              Qr;
+        qrNbr           none;
+        qr              qr;
         value           $internalField;
     }
 }
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
index 7233ef9dae239e54cb41e14dbb92759ca9e8fa8e..69344397141af641084abb84cadb60e2b7abb566 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
@@ -42,8 +42,8 @@ boundaryField
         type            compressible::turbulentTemperatureRadCoupledMixed;
         Tnbr            T;
         kappaMethod     solidThermo;
-        QrNbr           Qr;
-        Qr              none;
+        qrNbr           qr;
+        qr              none;
         value           uniform 298.15;
     }
 
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/qr
similarity index 96%
rename from tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/qr
index 2e3aa0b7c00721249c67b3eaa3e52631bbb3c251..b5e488b56c097cca8565f5359839b74855ddbc9a 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/qr
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      Qr;
+    object      qr;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -43,7 +43,7 @@ boundaryField
         sampleMode      nearestPatchFace;
         samplePatch     region0_to_panelRegion_fLeft_zone;
         offset          (0 0 0);
-        field       Qr;
+        field       qr;
         setAverage      no;
         average         0;
         value           uniform 0;
@@ -56,7 +56,7 @@ boundaryField
         sampleMode      nearestPatchFace;
         samplePatch     region0_to_panelRegion_fRight_zone;
         offset          (0 0 0);
-        field       Qr;
+        field       qr;
         setAverage      no;
         average         0;
         value           uniform 0;
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
index 5de2a6e8162ff56635bb3abcd4df7a2ef110d209..a41c56bd5f3ff37ce572a2a0d1126b7f38da87ae 100644
--- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
@@ -26,7 +26,7 @@ pyrolysis
     reactingOneDimCoeffs
     {
         gasHSource      false; //Energy source term due to pyrolysis gas
-        QrHSource       false; //Energy source term due in depht radiation
+        qrHSource       false; //Energy source term due in depht radiation
         minimumDelta    1e-12;
 
         reactionDeltaMin 1e-12;
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
index 641f34fa0fd6543f9e450c7260b127e43eb191dd..0f2c78bd7efe55fe266ad3cfb9b884a549e22e7f 100644
--- a/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
@@ -25,7 +25,7 @@ pyrolysis
 
     reactingOneDimCoeffs
     {
-        radFluxName     Qr;
+        radFluxName     qr;
 
         minimumDelta    1e-8;
 
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
index 641f34fa0fd6543f9e450c7260b127e43eb191dd..0f2c78bd7efe55fe266ad3cfb9b884a549e22e7f 100644
--- a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
@@ -25,7 +25,7 @@ pyrolysis
 
     reactingOneDimCoeffs
     {
-        radFluxName     Qr;
+        radFluxName     qr;
 
         minimumDelta    1e-8;
 
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/dynamicMeshDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
similarity index 61%
rename from tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/dynamicMeshDict
rename to tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
index 0d234e3050053c7590aa9b6089f7c448c2932b97..4ebef94f2aeaa9d64b3d26fc3154677e2ce779f6 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/dynamicMeshDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/0.orig/G
@@ -1,4 +1,4 @@
-/*--------------------------------*- C++ -*----------------------------------*\
+/*--------------------------------*- C++ -*----------------------------------* \
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  plus                                  |
@@ -9,13 +9,36 @@ FoamFile
 {
     version     2.0;
     format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      dynamicMeshDict;
+    class       volScalarField;
+    object      G;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh   staticFvMesh;
+dimensions      [1 0 -3 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    ".*"
+    {
+        type            MarshakRadiation;
+        T               T;
+        emissivityMode  lookup;
+        emissivity      uniform 1.0;
+        value           uniform 0;
+    }
+
+    frontAndBack_pos
+    {
+        type            wedge;
+    }
+
+    frontAndBack_neg
+    {
+        type            wedge;
+    }
+}
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/dynamicMeshDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/fvOptions
similarity index 88%
rename from tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/dynamicMeshDict
rename to tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/fvOptions
index 0d234e3050053c7590aa9b6089f7c448c2932b97..c5b100c250bf88501e6284a40d42827ec14cb635 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/dynamicMeshDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/fvOptions
@@ -11,11 +11,14 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      dynamicMeshDict;
+    object      fvOptions;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh   staticFvMesh;
-
+radiation
+{
+    type            radiation;
+    libs ("libradiationModels.so");
+}
 
 // ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
index eb695eb6f1bd187943dcb161c8ae192f0d86e286..716785f19dfb6ea2696223c29ba01af9245addd1 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/constant/radiationProperties
@@ -5,6 +5,7 @@
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
+
 FoamFile
 {
     version     2.0;
@@ -15,48 +16,19 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// Radiation model on/off
-radiation       on;
+radiation on;
 
-// Radiation model
 radiationModel  P1;
 
-// Absorption coefficients model
-absorptionEmissionModel greyMeanAbsorptionEmission;
-
-// Number of flow iterations per radiation iteration
-solverFreq 1;
-
-//
-noRadiation
-{
-}
-
-// P1 Model
 P1Coeffs
 {
-
+    C               C [0 0 0 0 0 0 0] 0;
 }
 
+// Number of flow iterations per radiation iteration
+solverFreq 1;
 
-fvDOMCoeffs
-{
-    nPhi        2;          // azimuthal angles in PI/2 on X-Y.(from Y to X)
-    nTheta      2;          // polar angles in PI (from Z to X-Y plane)
-    convergence 1e-1;       // convergence criteria for radiation iteration
-    maxIter     1;          // maximum number of iterations
-    cacheDiv    true;       // cache the div of the RTE equation.
-
-//  NOTE: Caching div is "only" accurate if the upwind scheme is used in
-//  div(Ji,Ii_h)
-}
-
-constantAbsorptionEmissionCoeffs
-{
-    absorptivity    absorptivity    [ m^-1 ]       0.01;
-    emissivity      emissivity      [ m^-1 ]       0.01;
-    E               E               [ kg m^-1 s^-3 ]  0;
-}
+absorptionEmissionModel greyMeanAbsorptionEmission;
 
 greyMeanAbsorptionEmissionCoeffs
 {
@@ -206,5 +178,4 @@ scatterModel    none;
 
 sootModel       none;
 
-
 // ************************************************************************* //
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
index 2f9597f3bb571180d1227085b00a656a07cc9cce..6098ecaa4945e022aa9a1769980d29541438d08d 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/controlDict
@@ -13,6 +13,7 @@ FoamFile
     location        "system";
     object          controlDict;
 }
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 application     reactingFoam;
 
@@ -22,7 +23,7 @@ startTime       0;
 
 stopAt          endTime;
 
-endTime         5000;
+endTime         7000;
 
 deltaT          1;
 
diff --git a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
index 3faa9e2079d65f7a591a4b83b5de5c35da79412c..3a874039f5e2988998aff95a00b27c9eb7ab4eb2 100644
--- a/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
+++ b/tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/fvSolution
@@ -56,6 +56,20 @@ solvers
         tolerance       1e-8;
         relTol          0.1;
     }
+
+    G
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-5;
+        relTol          0.1;
+    }
+
+    GFinal
+    {
+        $G;
+        relTol          0;
+    }
 }
 
 PIMPLE
diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict
index 9ed4dff45b7f0847052671cd7b8234747495a98b..8b18e755b31bf33423d8d5ec3f4d53b2c6b433bb 100644
--- a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict
+++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict
@@ -17,15 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver          velocityComponentLaplacian;
+motionSolver    velocityComponentLaplacian;
 
-velocityComponentLaplacianCoeffs
-{
-    component       x;
-    diffusivity     directional (1 200 0);
-}
+component       x;
+diffusivity     directional (1 200 0);
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict
index c26839558206b95ea65cc690405d84826e1fffb6..7661b02be7eec0983fbd2100aa0dc2273cf00089 100644
--- a/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict
+++ b/tutorials/compressible/rhoPimpleDyMFoam/annularThermalMixer/constant/dynamicMeshDict
@@ -19,19 +19,14 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotatingZone;
+cellZone        rotatingZone;
 
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin      (0 0 0);
-        axis        (0 0 1);
-        omega       $:meshMotionProperties.omega;
-    }
-}
+solidBodyMotionFunction  rotatingMotion;
+
+origin      (0 0 0);
+axis        (0 0 1);
+omega       $:meshMotionProperties.omega;
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
index eec3c3062272a4a0f6e850f3bfcf399bfa5a4b61..f2283ee80ef4110ec2d64389178f1eef2f5adbde 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (7e5 -1000 -1000);
-            f   (0 0 0);
+        d   (7e5 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1      (0.70710678 0.70710678 0);
-                    e3      (0 0 1);
-                }
+                type    axesRotation;
+                e1      (0.70710678 0.70710678 0);
+                e3      (0 0 1);
             }
         }
     }
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
index bbc6b2e107399abde3182414e3e82b82a992f446..2a0594e2942db482ad5ca0a727059a9a1f983f43 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (5e7 -1000 -1000);
-            f   (0 0 0);
+        d   (5e7 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (0.70710678 0.70710678 0);
-                    e2  (0 0 1);
-                }
+                type    axesRotation;
+                e1  (0.70710678 0.70710678 0);
+                e2  (0 0 1);
             }
         }
     }
diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
index 12aff0f45195b3d1c61366031efc3128ca666276..89a3db3ebc0644236a56afd8d9f53cf19d5d1113 100644
--- a/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
+++ b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (1e5 -1000 -1000);
-            f   (0 0 0);
+        d   (1e5 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (1 0 0);
-                    e2  (0 1 0);
-                }
+                type    axesRotation;
+                e1  (1 0 0);
+                e2  (0 1 0);
             }
         }
     }
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/fvOptions b/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/fvOptions
index f50c685976d6b5aef4b414e01560aa3be40898da..379953e2cc8e38caaebeb80f34417c2fd67682f6 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/fvOptions
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/fvOptions
@@ -18,16 +18,12 @@ FoamFile
 source1
 {
     type            fixedTemperatureConstraint;
-    active          yes;
 
-    fixedTemperatureConstraintCoeffs
-    {
-        selectionMode   cellZone;
-        cellZone        porosity;
+    selectionMode   cellZone;
+    cellZone        porosity;
 
-        mode            uniform;
-        temperature     350;
-    }
+    mode            uniform;
+    temperature     350;
 }
 
 
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/porosityProperties b/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/porosityProperties
index 21081ce23f15afcba5ca245f6eba546a609ecdab..3114574c7f6dcef25da9b720a8712c4fef16f6f9 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/porosityProperties
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuct/common/constant/porosityProperties
@@ -18,24 +18,21 @@ FoamFile
 porosity1
 {
     type            DarcyForchheimer;
-    active          yes;
+
     cellZone        porosity;
 
-    DarcyForchheimerCoeffs
-    {
-        d   (5e7 -1000 -1000);
-        f   (0 0 0);
+    d   (5e7 -1000 -1000);
+    f   (0 0 0);
 
-        coordinateSystem
+    coordinateSystem
+    {
+        type    cartesian;
+        origin  (0 0 0);
+        coordinateRotation
         {
-            type    cartesian;
-            origin  (0 0 0);
-            coordinateRotation
-            {
-                type    axesRotation;
-                e1  (0.70710678 0.70710678 0);
-                e2  (0 0 1);
-            }
+            type    axesRotation;
+            e1  (0.70710678 0.70710678 0);
+            e2  (0 0 1);
         }
     }
 }
diff --git a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions
index 9c08df7c6e91fb5241ad466b0b1f4ef69e88b291..3f91e87292a6205d22991becbf61672d5193bdc4 100644
--- a/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions
+++ b/tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -53,32 +52,24 @@ porosity
 fixedTemperature
 {
     type            fixedTemperatureConstraint;
-    active          yes;
 
-    fixedTemperatureConstraintCoeffs
-    {
-        selectionMode   cellZone;
-        cellZone        porosity;
-        mode            uniform;
-        temperature     350;
-    }
+    selectionMode   cellZone;
+    cellZone        porosity;
+    mode            uniform;
+    temperature     350;
 }
 
 
 porosityTurbulence
 {
     type            scalarFixedValueConstraint;
-    active          yes;
 
-    scalarFixedValueConstraintCoeffs
+    selectionMode   cellZone;
+    cellZone        porosity;
+    fieldValues
     {
-        selectionMode   cellZone;
-        cellZone        porosity;
-        fieldValues
-        {
-            k           1;
-            epsilon     150;
-        }
+        k           1;
+        epsilon     150;
     }
 }
 
diff --git a/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict b/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict
index 9ed4dff45b7f0847052671cd7b8234747495a98b..8b18e755b31bf33423d8d5ec3f4d53b2c6b433bb 100644
--- a/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict
+++ b/tutorials/compressible/sonicDyMFoam/movingCone/constant/dynamicMeshDict
@@ -17,15 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver          velocityComponentLaplacian;
+motionSolver    velocityComponentLaplacian;
 
-velocityComponentLaplacianCoeffs
-{
-    component       x;
-    diffusivity     directional (1 200 0);
-}
+component       x;
+diffusivity     directional (1 200 0);
 
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions
index 065a7b8ed962eba3753bd9988f9410ee42273d8a..723f763973c5f6faa94da7997f3c93f1c398333e 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/air/fvOptions
@@ -18,24 +18,19 @@ FoamFile
 airToporous
 {
     type            constantHeatTransfer;
-    active          yes;
 
-    constantHeatTransferCoeffs
-    {
-        interpolationMethod cellVolumeWeight;
-        nbrRegion       porous;
-        master          false;
+    interpolationMethod cellVolumeWeight;
+    nbrRegion       porous;
+    master          false;
 
-        nbrModel        porousToair;
-        fields          (h);
-        semiImplicit    no;
-    }
+    nbrModel        porousToair;
+    fields          (h);
+    semiImplicit    no;
 }
 
 porosityBlockage
 {
     type            interRegionExplicitPorositySource;
-    active          yes;
 
     interRegionExplicitPorositySourceCoeffs
     {
@@ -44,21 +39,18 @@ porosityBlockage
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (-1000 -1000 1e4);
-            f   (0 0 0);
+        d   (-1000 -1000 1e4);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1      (0 1 0);
-                    e2      (0 0 1);
-                }
+                type    axesRotation;
+                e1      (0 1 0);
+                e2      (0 0 1);
             }
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions
index fffed7d171842ffa4ead7151242c0ff1969d1c8b..03d5c92ab8f7995d9d9a5501ad0dbded42434165 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/constant/porous/fvOptions
@@ -18,18 +18,14 @@ FoamFile
 porousToair
 {
     type            constantHeatTransfer;
-    active          yes;
 
-    constantHeatTransferCoeffs
-    {
-        interpolationMethod cellVolumeWeight;
-        nbrRegion       air;
-        master          true;
+    interpolationMethod cellVolumeWeight;
+    nbrRegion       air;
+    master          true;
 
-        nbrModel        airToporous;
-        fields          (h);
-        semiImplicit    no;
-    }
+    nbrModel        airToporous;
+    fields          (h);
+    semiImplicit    no;
 }
 
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/Qr b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/qr
similarity index 98%
rename from tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/Qr
rename to tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/qr
index 6e7a1a927749412123e41f6981d9d554c13ff9a8..f81345ed5a96bfa8da5892f1189eb911f1eb000f 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/Qr
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/0/qr
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      Qr;
+    object      qr;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
index e7adbdd5bc053b05555b54631a9ab384f0c43ee2..091548c051a2c0002bf7c19c08a3f1e889d97079 100755
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
@@ -11,7 +11,7 @@ runApplication splitMeshRegions -cellZones -overwrite
 # remove fluid fields from solid regions (important for post-processing)
 for i in heater leftSolid rightSolid
 do
-   rm -f 0*/$i/{rho,nut,alphat,epsilon,k,U,p_rgh,Qr,G,IDefault}
+   rm -f 0*/$i/{rho,nut,alphat,epsilon,k,U,p_rgh,qr,G,IDefault}
 done
 
 for i in bottomAir topAir heater leftSolid rightSolid
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict
index fbe09f939ffb44db7b104279d7767061edb731ff..84cf93835ceb0dfb5c14b60950431c46ed9686c9 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/changeDictionaryDict
@@ -60,8 +60,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     fluidThermo;
-            QrNbr           none;
-            Qr              Qr;
+            qrNbr           none;
+            qr              qr;
             value           uniform 300;
         }
     }
@@ -119,7 +119,7 @@ p
     }
 }
 
-Qr
+qr
 {
     internalField   uniform 0;
     boundaryField
@@ -128,7 +128,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  lookup;
-            Qro             uniform 0;
+            qro             uniform 0;
             emissivity      uniform 1.0;
             value           uniform 0;
         }
@@ -137,7 +137,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  solidRadiation;
-            Qro             uniform 0;
+            qro             uniform 0;
             value           uniform 0;
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution
index 6f933f79c37432ece2183f283a2eb93c93566a02..8cc4a0bb1a990792450cdcef66be309332f383f0 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/fvSolution
@@ -74,7 +74,7 @@ relaxationFactors
         "(k|epsilon|omega)" 0.7;
         G               0.7;
         "ILambda.*"     0.7;
-        Qr              0.7;
+        qr              0.7;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict
index c1f253f483f99ae9b013cdf24b8b91370dc11a67..a39d1e0f0cf9dd57f9a8ab25037afa9fbae3f50d 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/changeDictionaryDict
@@ -47,8 +47,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
@@ -57,8 +57,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict
index 9c39cde8f17b93d3abc175446639e4d5c302b66b..3cff8cb0ddf8740f38206caa80f89b2605b57c2d 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/changeDictionaryDict
@@ -43,8 +43,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
@@ -53,8 +53,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict
index a5fd92d6cf84036f12d1f30f6019333fde1377fc..8c8a8210a48eb12abcb9f082d9d6db43c21d21eb 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/changeDictionaryDict
@@ -43,8 +43,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
@@ -53,8 +53,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     solidThermo;
-            QrNbr           Qr;
-            Qr              none;
+            qrNbr           qr;
+            qr              none;
             value           uniform 300;
         }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict
index 4c1eeba58e98455d0ce842df3f1436f4f75188e5..754fde737f494ebde1f22391e174554445a2a07c 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/changeDictionaryDict
@@ -73,8 +73,8 @@ T
             type            compressible::turbulentTemperatureRadCoupledMixed;
             Tnbr            T;
             kappaMethod     fluidThermo;
-            QrNbr           none;
-            Qr              Qr;
+            qrNbr           none;
+            qr              qr;
             value           uniform 300;
         }
     }
@@ -168,7 +168,7 @@ p
     }
 }
 
-Qr
+qr
 {
     internalField   uniform 0;
     boundaryField
@@ -177,7 +177,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  lookup;
-            Qro             uniform 0;
+            qro             uniform 0;
             emissivity      uniform 1.0;
             value           uniform 0;
         }
@@ -186,7 +186,7 @@ Qr
         {
             type            greyDiffusiveRadiationViewFactor;
             emissivityMode  solidRadiation;
-            Qro             uniform 0;
+            qro             uniform 0;
             value           uniform 0;
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
index 6f933f79c37432ece2183f283a2eb93c93566a02..8cc4a0bb1a990792450cdcef66be309332f383f0 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
@@ -74,7 +74,7 @@ relaxationFactors
         "(k|epsilon|omega)" 0.7;
         G               0.7;
         "ILambda.*"     0.7;
-        Qr              0.7;
+        qr              0.7;
     }
 }
 
diff --git a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict
index 79938b32435f04b0c0962c715b83332391b2709f..ccefe5ed6c21cf28f98ede4a6559b3f560f8ec50 100644
--- a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/constant/dynamicMeshDict
@@ -17,19 +17,14 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotor;
+cellZone        rotor;
 
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         6.2832; // rad/s
-    }
-}
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         6.2832; // rad/s
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict
index 9ed4dff45b7f0847052671cd7b8234747495a98b..8b18e755b31bf33423d8d5ec3f4d53b2c6b433bb 100644
--- a/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/movingCone/constant/dynamicMeshDict
@@ -17,15 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver          velocityComponentLaplacian;
+motionSolver    velocityComponentLaplacian;
 
-velocityComponentLaplacianCoeffs
-{
-    component       x;
-    diffusivity     directional (1 200 0);
-}
+component       x;
+diffusivity     directional (1 200 0);
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict
index 6043ee040c1701986ff21e1e04e3f0bf8512f96b..9f0da282d4471881e8df0cfae590fa4d36cdb843 100644
--- a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/dynamicMeshDict
@@ -17,22 +17,16 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        inletChannel;
+cellZone        inletChannel;
 
-    solidBodyMotionFunction  oscillatingLinearMotion;
+solidBodyMotionFunction  oscillatingLinearMotion;
 
-    oscillatingLinearMotionCoeffs
-    {
-        amplitude       (0 0.5 0);
-        omega           3.14; // rad/s  (.5 rps)
-    }
-}
+amplitude       (0 0.5 0);
+omega           3.14; // rad/s  (.5 rps)
 
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict
index a863182374461cb41c6aeaa33c38fc7b646f052a..61738fa80a077d5f47b616c4d1d96c7d37a2d9d7 100644
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/constant/dynamicMeshDict
@@ -17,22 +17,16 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        innerCylinderSmall;
+cellZone        innerCylinderSmall;
 
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin      (0 0 0);
-        axis        (0 1 0);
-        omega       158; // rad/s
-    }
-}
+solidBodyMotionFunction  rotatingMotion;
 
+origin      (0 0 0);
+axis        (0 1 0);
+omega       158; // rad/s
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict
index 22e16d7767ddaf703b5f17f1828e5f21ed826817..c7c6f2354e2203d56a4909eb4fdded33d9c058a9 100644
--- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict
+++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/constant/dynamicMeshDict
@@ -18,72 +18,69 @@ dynamicFvMesh      dynamicMotionSolverFvMesh;
 
 motionSolverLibs ("libsixDoFRigidBodyMotion.so");
 
-solver            sixDoFRigidBodyMotion;
+motionSolver    sixDoFRigidBodyMotion;
 
-sixDoFRigidBodyMotionCoeffs
-{
-    patches         (wing);
-    innerDistance   0.3;
-    outerDistance   1;
+patches         (wing);
+innerDistance   0.3;
+outerDistance   1;
 
-    mass            22.9;
-    centreOfMass    (0.4974612746 -0.01671895744 0.125);
-    momentOfInertia (1.958864357 3.920839234 2.057121362);
-    orientation
-    (
-        0.9953705935 0.09611129781 0
-        -0.09611129781 0.9953705935 0
-        0 0 1
-    );
-    angularMomentum (0 0 -2);
-    g               (0 -9.81 0);
-    rho             rhoInf;
-    rhoInf          1;
-    report          on;
+mass            22.9;
+centreOfMass    (0.4974612746 -0.01671895744 0.125);
+momentOfInertia (1.958864357 3.920839234 2.057121362);
+orientation
+(
+    0.9953705935 0.09611129781 0
+    -0.09611129781 0.9953705935 0
+    0 0 1
+);
+angularMomentum (0 0 -2);
+g               (0 -9.81 0);
+rho             rhoInf;
+rhoInf          1;
+report          on;
 
-    solver
+solver
+{
+    type symplectic;
+}
+
+constraints
+{
+    yLine
     {
-        type symplectic;
+        sixDoFRigidBodyMotionConstraint line;
+        centreOfRotation    (0.25 0.007 0.125);
+        direction           (0 1 0);
     }
 
-    constraints
+    zAxis
     {
-        yLine
-        {
-            sixDoFRigidBodyMotionConstraint line;
-            centreOfRotation    (0.25 0.007 0.125);
-            direction           (0 1 0);
-        }
-
-        zAxis
-        {
-            sixDoFRigidBodyMotionConstraint axis;
-            axis                (0 0 1);
-        }
+        sixDoFRigidBodyMotionConstraint axis;
+        axis                (0 0 1);
     }
+}
 
-    restraints
+restraints
+{
+    verticalSpring
     {
-        verticalSpring
-        {
-            sixDoFRigidBodyMotionRestraint linearSpring;
+        sixDoFRigidBodyMotionRestraint linearSpring;
 
-            anchor          (0.25 0.007 0.125);
-            refAttachmentPt (0.25 0.007 0.125);
-            stiffness       4000;
-            damping         2;
-            restLength      0;
-        }
+        anchor          (0.25 0.007 0.125);
+        refAttachmentPt (0.25 0.007 0.125);
+        stiffness       4000;
+        damping         2;
+        restLength      0;
+    }
 
-        axialSpring
-        {
-            sixDoFRigidBodyMotionRestraint linearAxialAngularSpring;
+    axialSpring
+    {
+        sixDoFRigidBodyMotionRestraint linearAxialAngularSpring;
 
-            axis            (0 0 1);
-            stiffness       700;
-            damping         0.5;
-            referenceOrientation $orientation;
-        }
+        axis            (0 0 1);
+        stiffness       700;
+        damping         0.5;
+        referenceOrientation $orientation;
     }
 }
 
diff --git a/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
index b9ca4e59cc1bb8411ac1d58d16f6b92b94ad2eb5..d9146368ed7e8f3d7382c4d8259c5c5ad4376d70 100644
--- a/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
+++ b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
@@ -18,15 +18,11 @@ FoamFile
 momentumSource
 {
     type            meanVelocityForce;
-    active          yes;
 
-    meanVelocityForceCoeffs
-    {
-        selectionMode   all;
+    selectionMode   all;
 
-        fields      (U);
-        Ubar            (0.1335 0 0);
-    }
+    fields      (U);
+    Ubar            (0.1335 0 0);
 }
 
 
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
index e5a1c67b4f75cde27209c66c0211dd981ea9ded8..5a4dffe630945cf2533d77d48c697728d378415a 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
@@ -18,19 +18,15 @@ FoamFile
 momentumSource
 {
     type      vectorSemiImplicitSource;
-    active    yes;
 
-    vectorSemiImplicitSourceCoeffs
-    {
-        timeStart       0.0;
-        duration        1000;
-        selectionMode   all;
+    timeStart       0.0;
+    duration        1000;
+    selectionMode   all;
 
-        volumeMode      specific;
-        injectionRateSuSp
-        {
-            U    ((5 0 0) 0);
-        }
+    volumeMode      specific;
+    injectionRateSuSp
+    {
+        U    ((5 0 0) 0);
     }
 }
 
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
index 4ae80853b46fbadfaca181a249b95df7eaf55509..67d00031344b23ff4b419bda8b39e3617e8ae58c 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
@@ -50,13 +50,7 @@ IOdictionary fvOptions
     )
 );
 const dictionary& gradPDict =
-    fvOptions.subDict("momentumSource").subDict
-    (
-        "vectorSemiImplicitSourceCoeffs"
-    ).subDict
-    (
-        "injectionRateSuSp"
-    );
+    fvOptions.subDict("momentumSource").subDict("injectionRateSuSp");
 const scalar K =
     Tuple2<vector, scalar>(gradPDict.lookup("U")).first().x();
 
diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
index 3cc5de831dd3605bd0b4cd765a8bb01fa37dad98..bfbcc3d750b4fd244d5fd360f14fbea46e5a6c8b 100644
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
@@ -59,8 +59,7 @@ functions
         lifeTime        10000;
         nSubCycle       5;
         cloud           particleTracks;
-        seedSampleSet   uniform;
-        uniformCoeffs
+        seedSampleSet
         {
             type            uniform;
             axis            x;
diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
index 47fc1a305d50de34219267894b565b0fba1a532a..6181cd12572481b34e293824afaca0eb62950bf3 100644
--- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
@@ -35,9 +35,7 @@ streamLines
     cloud           particleTracks;
 
     // Seeding method.
-    seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;
-
-    uniformCoeffs
+    seedSampleSet
     {
         type        uniform;
         axis        x;  //distance;
diff --git a/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions b/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions
index e6ced18415c2ff60b1b60f916c12875ba086effa..72f4b02506d5e32bf140feb6deae7e70bc39d912 100644
--- a/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions
+++ b/tutorials/incompressible/pisoFoam/laminar/porousBlockage/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -32,21 +31,18 @@ porosity1
         // D 500;  // Slight waviness in the far wake
         D 1000; // Fully shedding behavior
 
-        DarcyForchheimerCoeffs
-        {
-            d   ($D $D $D);
-            f   (0 0 0);
+        d   ($D $D $D);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (1 0 0);
-                    e2  (0 1 0);
-                }
+                type    axesRotation;
+                e1  (1 0 0);
+                e2  (0 1 0);
             }
         }
     }
diff --git a/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/porosityProperties b/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/porosityProperties
index 5214f6cfde5f6d84748bb4460dbbafe483dd9f42..ba40405816fd4ca6db0a4c0d8a11f6dbd0863d03 100644
--- a/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/porosityProperties
+++ b/tutorials/incompressible/porousSimpleFoam/angledDuct/common/constant/porosityProperties
@@ -18,24 +18,21 @@ FoamFile
 porosity1
 {
     type            DarcyForchheimer;
-    active          yes;
+
     cellZone        porosity;
 
-    DarcyForchheimerCoeffs
-    {
-        d   (5e7 -1000 -1000);
-        f   (0 0 0);
+    d   (5e7 -1000 -1000);
+    f   (0 0 0);
 
-        coordinateSystem
+    coordinateSystem
+    {
+        type    cartesian;
+        origin  (0 0 0);
+        coordinateRotation
         {
-            type    cartesian;
-            origin  (0 0 0);
-            coordinateRotation
-            {
-                type    axesRotation;
-                e1      (0.70710678 0.70710678 0);
-                e2      (0 0 1);
-            }
+            type    axesRotation;
+            e1      (0.70710678 0.70710678 0);
+            e2      (0 0 1);
         }
     }
 }
diff --git a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties
index f8e19ace3409b38289e9356c7cf45335f3cf199f..33fa636b5811ad733e616ae0b0228091e9c135a8 100644
--- a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties
+++ b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/constant/porosityProperties
@@ -18,24 +18,21 @@ FoamFile
 porosity1
 {
     type            DarcyForchheimer;
-    active          yes;
+
     cellZone        porosity;
 
-    DarcyForchheimerCoeffs
-    {
-        d   (5e7 -1000 -1000);
-        f   (0 0 0);
+    d   (5e7 -1000 -1000);
+    f   (0 0 0);
 
-        coordinateSystem
+    coordinateSystem
+    {
+        type    cartesian;
+        origin  (0 0 0);
+        coordinateRotation
         {
-            type    cartesian;
-            origin  (0 0 0);
-            coordinateRotation
-            {
-                type    axesRotation;
-                e1      (1 0 0);    //(0.70710678 0.70710678 0);
-                e2      (0 0 1);
-            }
+            type    axesRotation;
+            e1      (1 0 0);    //(0.70710678 0.70710678 0);
+            e2      (0 0 1);
         }
     }
 }
diff --git a/tutorials/incompressible/simpleFoam/motorBike/system/streamLines b/tutorials/incompressible/simpleFoam/motorBike/system/streamLines
index 1e671e71b89ca2004af58765e532a4f1c04bfa1a..5b6b8218d630dd23cdb381bebf844f4469d9102d 100644
--- a/tutorials/incompressible/simpleFoam/motorBike/system/streamLines
+++ b/tutorials/incompressible/simpleFoam/motorBike/system/streamLines
@@ -42,9 +42,7 @@ streamLines
     cloud           particleTracks;
 
     // Seeding method.
-    seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;
-
-    uniformCoeffs
+    seedSampleSet
     {
         type        uniform;
         axis        x;  //distance;
diff --git a/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines b/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines
index 9e6bfda88cc2304c2447afefa0d45f7761495a76..633abddbb36f86e1e3083f842426b25a0e7bc90f 100644
--- a/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines
+++ b/tutorials/incompressible/simpleFoam/motorBike/system/wallBoundedStreamLines
@@ -68,29 +68,31 @@ wallBoundedStreamLines
     cloud           wallBoundedParticleTracks;
 
     // Seeding method.
-    seedSampleSet   patchSeed;    //cloud; //triSurfaceMeshPointSet;
-
-    uniformCoeffs
-    {
-        type        uniform;
-        axis        x;  //distance;
-
-        start       (0.0035 0.0999 0.0001);
-        end         (0.0035 0.0999 0.0099);
-        nPoints     20;
-    }
-    cloudCoeffs
-    {
-        type        cloud;
-        axis        x;  //distance;
-        points      ((0.351516548679288 -0.0116085375585099 1.24));
-    }
-    patchSeedCoeffs
+    seedSampleSet
     {
         type        patchSeed;
-        patches     (motorBikeGroup);
-        axis        x;  //distance;
-        maxPoints   20000;
+
+        uniformCoeffs
+        {
+            axis        x;  //distance;
+
+            start       (0.0035 0.0999 0.0001);
+            end         (0.0035 0.0999 0.0099);
+            nPoints     20;
+        }
+
+        cloudCoeffs
+        {
+            axis        x;  //distance;
+            points      ((0.351516548679288 -0.0116085375585099 1.24));
+        }
+
+        patchSeedCoeffs
+        {
+            patches     (motorBikeGroup);
+            axis        x;  //distance;
+            maxPoints   20000;
+        }
     }
 }
 
diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict
index 498774b1087f2ccdb1f37a8357de7a5d16a41234..95361b65c29125ad6ed3539353bb1ba6727ce9ab 100644
--- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict
+++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/controlDict
@@ -76,13 +76,11 @@ functions
         cloud           particleTracks;
 
         // Seeding method.
-        seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;
-
-        uniformCoeffs
+        seedSampleSet
         {
             type        uniform;
-            axis        x;  //distance;
 
+            axis        x;  //distance;
             start       (-0.0205 0.001  0.00001);
             end         (-0.0205 0.0251 0.00001);
             nPoints     10;
diff --git a/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions b/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions
index b7d3a44c04347cec1a8cd5369f740d6d52451b5b..dc4b6d17448593444cf3eaa781acd262212174ce 100644
--- a/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions
+++ b/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions
@@ -17,89 +17,85 @@ FoamFile
 disk
 {
     type            rotorDisk;
-    active          on;
 
-    rotorDiskCoeffs
-    {
-        selectionMode   cellZone;
-        cellZone        rotatingZone;
+    selectionMode   cellZone;
+    cellZone        rotatingZone;
 
-        fields      (U);    // Names of fields on which to apply source
-        nBlades         3;      // Number of blades
-        tipEffect       0.96;   // Normalised radius above which lift = 0
+    fields          (U);    // Names of fields on which to apply source
+    nBlades         3;      // Number of blades
+    tipEffect       0.96;   // Normalised radius above which lift = 0
 
-        inletFlowType   local;  // Inlet flow type specification
-        inletVelocity   (0 1 0);
+    inletFlowType   local;  // Inlet flow type specification
+    inletVelocity   (0 1 0);
 
-        geometryMode    specified;
+    geometryMode    specified;
 
-        origin          (0 0 0);
-        axis            (0 1 0);
+    origin          (0 0 0);
+    axis            (0 1 0);
 
-        refDirection    (0 0 1);  // Reference direction
-                                  // - used as reference for psi angle
-        rpm             1000;
-        //pointAbove    (0 0 0.25);
+    refDirection    (0 0 1);  // Reference direction
+                              // - used as reference for psi angle
+    rpm             1000;
+    //pointAbove    (0 0 0.25);
 
-        trimModel       fixedTrim;  // fixed || targetForce
+    trimModel       fixedTrim;  // fixed || targetForce
 
-        rhoRef          1000;
-        rhoInf          1;
+    rhoRef          1000;
+    rhoInf          1;
 
-        fixedTrimCoeffs
-        {
-             theta0         0;
-             theta1c        0;
-             theta1s        0;
-        }
+    fixedTrimCoeffs
+    {
+         theta0         0;
+         theta1c        0;
+         theta1s        0;
+    }
 
-        flapCoeffs
-        {
-            beta0           0;  // Coning angle [deg]
-            beta1c          0;  // Lateral flapping coeff (cos coeff)
-            beta2s          0;  // Longitudinal flapping coeff (sin coeff)
-        }
+    flapCoeffs
+    {
+        beta0           0;  // Coning angle [deg]
+        beta1c          0;  // Lateral flapping coeff (cos coeff)
+        beta2s          0;  // Longitudinal flapping coeff (sin coeff)
+    }
+
+    blade
+    {
+        data
+        (
+            (profile1 (0.1 -6 0.02))
+            (profile1 (0.25 -6 0.02))
+        );
+    }
 
-        blade
+    profiles
+    {
+        profile1
         {
+            type lookup;
             data
             (
-                (profile1 (0.1 -6 0.02))
-                (profile1 (0.25 -6 0.02))
+                (-90 0.21 1.45)
+                (-18 0.21 1.45)
+                (-16 0.165 1.3)
+                (-14 0.125 1.1)
+                (-12 0.092 0.95)
+                (-10 0.07 0.8)
+                (-8 0.05 0.64)
+                (-6 0.04 0.5)
+                (-4 0.028 0.32)
+                (-2 0.022 0.18)
+                (0 0.02 0)
+                (2 0.022 0.18)
+                (4 0.028 0.32)
+                (6 0.04 0.5)
+                (8 0.05 0.64)
+                (10 0.07 0.8)
+                (12 0.092 0.95)
+                (14 0.125 1.1)
+                (16 0.165 1.3)
+                (18 0.21 1.45)
+                (90 0.21 1.45)
             );
         }
-
-        profiles
-        {
-            profile1
-            {
-                type lookup;
-                data
-                (
-                    (-90 0.21 1.45)
-                    (-18 0.21 1.45)
-                    (-16 0.165 1.3)
-                    (-14 0.125 1.1)
-                    (-12 0.092 0.95)
-                    (-10 0.07 0.8)
-                    (-8 0.05 0.64)
-                    (-6 0.04 0.5)
-                    (-4 0.028 0.32)
-                    (-2 0.022 0.18)
-                    (0 0.02 0)
-                    (2 0.022 0.18)
-                    (4 0.028 0.32)
-                    (6 0.04 0.5)
-                    (8 0.05 0.64)
-                    (10 0.07 0.8)
-                    (12 0.092 0.95)
-                    (14 0.125 1.1)
-                    (16 0.165 1.3)
-                    (18 0.21 1.45)
-                    (90 0.21 1.45)
-                );
-            }
-        }
     }
 }
 
diff --git a/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions b/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions
index 7cb3a532a6d027c2905c261ab46d48a3a974ee90..29c42236e373b370e4a386728c69c2dbfa1939d2 100644
--- a/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions
+++ b/tutorials/incompressible/simpleFoam/turbineSiting/constant/fvOptions
@@ -18,39 +18,31 @@ FoamFile
 disk1
 {
     type            actuationDiskSource;
-    active          on;
-
-    actuationDiskSourceCoeffs
-    {
-        fields      (U);
-
-        selectionMode   cellSet;
-        cellSet         actuationDisk1;
-        diskDir         (1 0 0);    // Orientation of the disk
-        Cp              0.386;
-        Ct              0.58;
-        diskArea        40;
-        upstreamPoint   (581849 4785810 1065);
-    }
+
+    fields      (U);
+
+    selectionMode   cellSet;
+    cellSet         actuationDisk1;
+    diskDir         (1 0 0);    // Orientation of the disk
+    Cp              0.386;
+    Ct              0.58;
+    diskArea        40;
+    upstreamPoint   (581849 4785810 1065);
 }
 
 disk2
 {
     type            actuationDiskSource;
-    active          on;
-
-    actuationDiskSourceCoeffs
-    {
-        fields      (U);
-
-        selectionMode   cellSet;
-        cellSet         actuationDisk2;
-        diskDir         (1 0 0);    // Orientation of the disk
-        Cp              0.53;
-        Ct              0.58;
-        diskArea        40;
-        upstreamPoint   (581753 4785663 1070);
-    }
+
+    fields      (U);
+
+    selectionMode   cellSet;
+    cellSet         actuationDisk2;
+    diskDir         (1 0 0);    // Orientation of the disk
+    Cp              0.53;
+    Ct              0.58;
+    diskArea        40;
+    upstreamPoint   (581753 4785663 1070);
 }
 
 
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions
index 05c9f48b1f749f78297ccf447887a3d1b5483a99..08a3d0f7a81b426273daa0513fc3e39080cee403 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/fvOptions
@@ -18,18 +18,14 @@ FoamFile
 source1
 {
     type            fixedTemperatureConstraint;
-    active          yes;
 
-    fixedTemperatureConstraintCoeffs
-    {
-        timeStart       0.1;
-        duration        0.4;
-        selectionMode   cellSet;
-        cellSet         ignitionCells;
+    timeStart       0.1;
+    duration        0.4;
+    selectionMode   cellSet;
+    cellSet         ignitionCells;
 
-        mode            uniform;
-        temperature     2000;
-    }
+    mode            uniform;
+    temperature     2000;
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions b/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions
index e2a06f9a8c4b7202bf63ceb495075eb495ca5f8d..34f24a7ea92698b9b468a1168423744617e3b931 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 filter1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ filter1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (500000 -1000 -1000);
-            f   (0 0 0);
+        d   (500000 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (1 0 0);
-                    e2  (0 1 0);
-                }
+                type    axesRotation;
+                e1  (1 0 0);
+                e2  (0 1 0);
             }
         }
     }
@@ -51,24 +47,20 @@ filter1
 massSource1
 {
     type            scalarSemiImplicitSource;
-    active          yes;
 
-    scalarSemiImplicitSourceCoeffs
+    timeStart       0.2;
+    duration        2.0;
+    selectionMode   points;
+    points
+    (
+        (2.75 0.5 0)
+    );
+
+    volumeMode      absolute;
+    injectionRateSuSp
     {
-        timeStart       0.2;
-        duration        2.0;
-        selectionMode   points;
-        points
-        (
-            (2.75 0.5 0)
-        );
-
-        volumeMode      absolute;
-        injectionRateSuSp
-        {
-            rho         (1e-4 0); // kg/s
-            H2O         (1e-4 0); // kg/s
-        }
+        rho         (1e-4 0); // kg/s
+        H2O         (1e-4 0); // kg/s
     }
 }
 
@@ -76,23 +68,19 @@ massSource1
 momentumSource1
 {
     type            vectorSemiImplicitSource;
-    active          yes;
 
-    vectorSemiImplicitSourceCoeffs
+    timeStart       0.2;
+    duration        2.0;
+    selectionMode   points;
+    points
+    (
+        (2.75 0.5 0)
+    );
+
+    volumeMode      absolute;
+    injectionRateSuSp
     {
-        timeStart       0.2;
-        duration        2.0;
-        selectionMode   points;
-        points
-        (
-            (2.75 0.5 0)
-        );
-
-        volumeMode      absolute;
-        injectionRateSuSp
-        {
-            U           ((0 0.005 0) 0);
-        }
+        U           ((0 0.005 0) 0);
     }
 }
 
@@ -100,23 +88,19 @@ momentumSource1
 energySource1
 {
     type            scalarSemiImplicitSource;
-    active          yes;
 
-    scalarSemiImplicitSourceCoeffs
+    timeStart       0.2;
+    duration        2.0;
+    selectionMode   points;
+    points
+    (
+        (2.75 0.5 0)
+    );
+
+    volumeMode      absolute;
+    injectionRateSuSp
     {
-        timeStart       0.2;
-        duration        2.0;
-        selectionMode   points;
-        points
-        (
-            (2.75 0.5 0)
-        );
-
-        volumeMode      absolute;
-        injectionRateSuSp
-        {
-            h           (10 0);
-        }
+        h           (10 0);
     }
 }
 
diff --git a/tutorials/mesh/blockMesh/pipe/constant/triSurface/curve.obj b/tutorials/mesh/blockMesh/pipe/constant/geometry/curve.obj
similarity index 100%
rename from tutorials/mesh/blockMesh/pipe/constant/triSurface/curve.obj
rename to tutorials/mesh/blockMesh/pipe/constant/geometry/curve.obj
diff --git a/tutorials/mesh/blockMesh/pipe/constant/triSurface/curve2.vtk b/tutorials/mesh/blockMesh/pipe/constant/geometry/curve2.vtk
similarity index 100%
rename from tutorials/mesh/blockMesh/pipe/constant/triSurface/curve2.vtk
rename to tutorials/mesh/blockMesh/pipe/constant/geometry/curve2.vtk
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict
index 24b3e86887d072ce7329a5ac60a9a6d7fd4ccec6..3d7a2e163171c832eab9bf285c9a3aa222aacf33 100644
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/dynamicMeshDict
@@ -17,22 +17,17 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-motionSolverLibs ( "libfvMotionSolvers.so" );
+motionSolverLibs ("libfvMotionSolvers.so");
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotating;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         -5; // 5 rad/s
-    }
-}
+cellZone        rotating;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         -5; // 5 rad/s
 
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties
index a5618d0accb909776790fce04265d61200bd3067..a6cfde93e6deef93406ff791e2544710c1eb14fb 100644
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/transportProperties
@@ -20,17 +20,17 @@ phases (phase1 phase2);
 phase1
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 300;
+    nu              1e-06;
+    rho             300;
 }
 
 phase2
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-6;
-    rho             [1 -3 0 0 0 0 0] 1027;
+    nu              1e-6;
+    rho             1027;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict
index 7c6377e30f438d1dfd3dc77a24855aa4562918c0..51f000b74d3c76f548d96e6e8aa6653ac69f3777 100644
--- a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict
+++ b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/constant/dynamicMeshDict
@@ -20,16 +20,13 @@ dynamicFvMesh dynamicMotionSolverFvMesh;
 
 motionSolverLibs ("libfvMotionSolvers.so");
 
-solver displacementSBRStress;   //displacementLaplacian;
-//solver velocityComponentLaplacian z;
+motionSolver displacementSBRStress;   //displacementLaplacian;
+//motionSolver velocityComponentLaplacian z;
 
-displacementSBRStressCoeffs
-{
-    // diffusivity  uniform;
-    // diffusivity  directional (1 200 0);
-    // diffusivity  motionDirectional (1 1000 0);
-    // diffusivity  file motionDiffusivity;
-    diffusivity  quadratic inverseDistance 1(minZ);
-}
+// diffusivity  uniform;
+// diffusivity  directional (1 200 0);
+// diffusivity  motionDirectional (1 1000 0);
+// diffusivity  file motionDiffusivity;
+diffusivity  quadratic inverseDistance 1(minZ);
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
index e483843b00fe8f80c39c1484b3eb475400b93f5d..7ed41250a1d374499258969f21759aac572c8f39 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.22654;
-        rollAmin        0.10472;
-        heaveA          3.79;
-        swayA           2.34;
-        Q               2;
-        Tp              13.93;
-        Tpn             11.93;
-        dTi             0.059;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.22654;
+rollAmin        0.10472;
+heaveA          3.79;
+swayA           2.34;
+Q               2;
+Tp              13.93;
+Tpn             11.93;
+dTi             0.059;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
index cdb2e649aeaa83616376640dda0f893a477e7bdf..03faeaefff6d1ac044b2d2e26e601b52744cb247 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
@@ -17,8 +17,8 @@ FoamFile
 
 phases (water air);
 
-pMin            [1 -1 -2 0 0 0 0] 1000;
+pMin            1000;
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..c1813344c16a54b38d59cf8806fe9cfa89246ea1 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
index 80c786227f38b74c1918e9e154dd38c89553a89f..321f631dad99d22c8239e58575b74e81e58aa2f2 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/constant/thermophysicalProperties
@@ -17,8 +17,12 @@ FoamFile
 
 phases (water air);
 
-pMin            [1 -1 -2 0 0 0 0] 10000;
+pMin        10000;
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma
+{
+    type    liquidProperties;
+    phase   water;
+}
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties
index 80c786227f38b74c1918e9e154dd38c89553a89f..bd87a624395fe73f0cebf479e844c54916ea1008 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/constant/thermophysicalProperties
@@ -17,8 +17,8 @@ FoamFile
 
 phases (water air);
 
-pMin            [1 -1 -2 0 0 0 0] 10000;
+pMin        10000;
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma       0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties
index 035dcc1331d454e4183adad6242b482c5d8b1616..3f44723fb6b7c7fef02c92299673e6d0409ead88 100644
--- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties
+++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/constant/thermophysicalProperties
@@ -17,16 +17,16 @@ FoamFile
 
 phases (water oil mercury air);
 
-pMin            [1 -1 -2 0 0 0 0] 10000;
+pMin            10000;
 
 sigmas
 (
-    (air water) 0.07
-    (air oil) 0.07
-    (air mercury) 0.07
-    (water oil) 0.07
+    (air water)     0.07
+    (air oil)       0.07
+    (air mercury)   0.07
+    (water oil)     0.07
     (water mercury) 0.07
-    (oil mercury) 0.07
+    (oil mercury)   0.07
 );
 
 
diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
index ac54d58a0cd71b1ff9f82f872c8666150c0816d6..703d6047806fc498b71879d157a293af2244730b 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
@@ -14,70 +14,67 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh       dynamicMotionSolverFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs   ("librigidBodyMeshMotion.so");
 
-solver             rigidBodyMotion;
+motionSolver    rigidBodyMotion;
 
-rigidBodyMotionCoeffs
-{
-    report          on;
+report          on;
 
-    solver
-    {
-        type Newmark;
-    }
+solver
+{
+    type Newmark;
+}
 
-    accelerationRelaxation 0.4;
+accelerationRelaxation 0.4;
 
-    bodies
+bodies
+{
+    hull
     {
-        hull
-        {
-            type            rigidBody;
-            parent          root;
+        type            rigidBody;
+        parent          root;
 
-            centreOfMass    (0 0 0);
-            mass            412.73;
-            inertia         (40 0 0 921 0 921);
-            transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);
+        centreOfMass    (0 0 0);
+        mass            412.73;
+        inertia         (40 0 0 921 0 921);
+        transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);
 
-            joint
-            {
-                type    composite;
-                joints
-                (
-                    {
-                        type Pz;
-                    }
-                    {
-                        type Ry;
-                    }
-                );
-            }
-
-            patches         (hull);
-            innerDistance   0.3;
-            outerDistance   1;
+        joint
+        {
+            type    composite;
+            joints
+            (
+                {
+                    type Pz;
+                }
+                {
+                    type Ry;
+                }
+            );
         }
+
+        patches         (hull);
+        innerDistance   0.3;
+        outerDistance   1;
     }
+}
 
-    restraints
+restraints
+{
+    translationDamper
     {
-        translationDamper
-        {
-            type linearDamper;
-            body hull;
-            coeff 8596;
-        }
+        type linearDamper;
+        body hull;
+        coeff 8596;
+    }
 
-        rotationDamper
-        {
-            type sphericalAngularDamper;
-            body hull;
-            coeff 11586;
-        }
+    rotationDamper
+    {
+        type sphericalAngularDamper;
+        body hull;
+        coeff 11586;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
index 68269e610f7c17cd42ca7ac0bb518aec196b8040..67d99f915fec9a8a0b26d363a17c403bf017a1ce 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
+++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
@@ -14,59 +14,56 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh       dynamicMotionSolverFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs    ("libsixDoFRigidBodyMotion.so");
 
-solver              sixDoFRigidBodyMotion;
+motionSolver    sixDoFRigidBodyMotion;
 
-sixDoFRigidBodyMotionCoeffs
-{
-    patches         (hull);
-    innerDistance   0.3;
-    outerDistance   1;
+patches         (hull);
+innerDistance   0.3;
+outerDistance   1;
 
-    centreOfMass    (2.929541 0 0.2);
-    mass            412.73;
-    momentOfInertia (40 921 921);
-    rhoInf          1;
-    report          on;
+centreOfMass    (2.929541 0 0.2);
+mass            412.73;
+momentOfInertia (40 921 921);
+rhoInf          1;
+report          on;
 
-    value           uniform (0 0 0);
+value           uniform (0 0 0);
 
-    accelerationRelaxation 0.4;
+accelerationRelaxation 0.4;
 
-    solver
+solver
+{
+    type Newmark;
+}
+
+constraints
+{
+    zAxis
     {
-        type Newmark;
+        sixDoFRigidBodyMotionConstraint line;
+        direction     (0 0 1);
     }
-
-    constraints
+    yPlane
     {
-        zAxis
-        {
-            sixDoFRigidBodyMotionConstraint line;
-            direction     (0 0 1);
-        }
-        yPlane
-        {
-            sixDoFRigidBodyMotionConstraint axis;
-            axis          (0 1 0);
-        }
+        sixDoFRigidBodyMotionConstraint axis;
+        axis          (0 1 0);
     }
+}
 
-    restraints
+restraints
+{
+    translationDamper
+    {
+        sixDoFRigidBodyMotionRestraint linearDamper;
+        coeff         8596;
+    }
+    rotationDamper
     {
-        translationDamper
-        {
-            sixDoFRigidBodyMotionRestraint linearDamper;
-            coeff         8596;
-        }
-        rotationDamper
-        {
-            sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
-            coeff         11586;
-        }
+        sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
+        coeff         11586;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
index bb0c2a7ee6d0a06780ef9c8432435c493c4e17d5..92310d408aa0fefea31942949e2810aed9f9b6ed 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.09e-06;
-    rho             [1 -3 0 0 0 0 0] 998.8;
+    nu              1.09e-06;
+    rho             998.8;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
index 5d63bea8cae02183f09cac6c1c1c539ad3803b2c..f911fb0ad632ab041aed7b0e8d9e3cc5cb503892 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
@@ -18,7 +18,7 @@ dynamicFvMesh       dynamicMotionSolverFvMesh;
 
 motionSolverLibs   ("librigidBodyMeshMotion.so");
 
-solver             rigidBodyMotion;
+motionSolver       rigidBodyMotion;
 
 rigidBodyMotionCoeffs
 {
diff --git a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
index 04cfe106bfcd5489148952df7423df082d2c3853..75aa1fe9fee4e85d73aa4fbcc45e51daaaf1e7ce 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
@@ -18,7 +18,7 @@ dynamicFvMesh       dynamicMotionSolverFvMesh;
 
 motionSolverLibs    ("libsixDoFRigidBodyMotion.so");
 
-solver              sixDoFRigidBodyMotion;
+motionSolver        sixDoFRigidBodyMotion;
 
 sixDoFRigidBodyMotionCoeffs
 {
diff --git a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..c1813344c16a54b38d59cf8806fe9cfa89246ea1 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
index 24b3e86887d072ce7329a5ac60a9a6d7fd4ccec6..47e242ff41a4d08ef8a26a3413dccfc2d2ec2e37 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
@@ -19,20 +19,15 @@ dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ( "libfvMotionSolvers.so" );
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotating;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         -5; // 5 rad/s
-    }
-}
+cellZone        rotating;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         -5; // 5 rad/s
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
index f99891b00715b19489f9176c491ea358275b23a3..ff41100ff16cc16dc2c5e8a2b416db354fa6bf40 100644
--- a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 300;
+    nu              1e-06;
+    rho             300;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-6;
-    rho             [1 -3 0 0 0 0 0] 1027;
+    nu              1e-6;
+    rho             1027;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
index 4ae5f256aae1242b36de019aab18529d75635176..58b40f465f7233ae717131551cc038c968cbce1c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/dynamicMeshDict
@@ -17,45 +17,42 @@ FoamFile
 
 dynamicFvMesh   dynamicRefineFvMesh;
 
-dynamicRefineFvMeshCoeffs
-{
-    // How often to refine
-    refineInterval  1;
-
-    // Field to be refinement on
-    field           alpha.water;
-
-    // Refine field inbetween lower..upper
-    lowerRefineLevel 0.001;
-    upperRefineLevel 0.999;
-
-    // If value < unrefineLevel unrefine
-    unrefineLevel   10;
-
-    // Have slower than 2:1 refinement
-    nBufferLayers   1;
-
-    // Refine cells only up to maxRefinement levels
-    maxRefinement   2;
-
-    // Stop refinement if maxCells reached
-    maxCells        200000;
-
-    // Flux field and corresponding velocity field. Fluxes on changed
-    // faces get recalculated by interpolating the velocity. Use 'none'
-    // on surfaceScalarFields that do not need to be reinterpolated.
-    correctFluxes
-    (
-        (phi none)
-        (nHatf none)
-        (rhoPhi none)
-        (alphaPhi none)
-        (ghf none)
-    );
-
-    // Write the refinement level as a volScalarField
-    dumpLevel       true;
-}
+// How often to refine
+refineInterval  1;
+
+// Field to be refinement on
+field           alpha.water;
+
+// Refine field inbetween lower..upper
+lowerRefineLevel 0.001;
+upperRefineLevel 0.999;
+
+// If value < unrefineLevel unrefine
+unrefineLevel   10;
+
+// Have slower than 2:1 refinement
+nBufferLayers   1;
+
+// Refine cells only up to maxRefinement levels
+maxRefinement   2;
+
+// Stop refinement if maxCells reached
+maxCells        200000;
+
+// Flux field and corresponding velocity field. Fluxes on changed
+// faces get recalculated by interpolating the velocity. Use 'none'
+// on surfaceScalarFields that do not need to be reinterpolated.
+correctFluxes
+(
+    (phi none)
+    (nHatf none)
+    (rhoPhi none)
+    (alphaPhi none)
+    (ghf none)
+);
+
+// Write the refinement level as a volScalarField
+dumpLevel       true;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
index 1331af1e5ce2a7e3343e0b0d2aee2df99780ba4e..84ac74aab245e37a03a3e12950794419d5b2b205 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
index 2a70c8a470c8d92911e49fea7f2ba14a06836867..5b78f66488f2838b82882324b9dfb4ab07c4bb94 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/dynamicMeshDict
@@ -17,34 +17,28 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction multiMotion;
+solidBodyMotionFunction multiMotion;
 
-    multiMotionCoeffs
+oscillation
+{
+    solidBodyMotionFunction oscillatingLinearMotion;
+    oscillatingLinearMotionCoeffs
     {
-        oscillation
-        {
-            solidBodyMotionFunction oscillatingLinearMotion;
-            oscillatingLinearMotionCoeffs
-            {
-                amplitude     (0.1 0 0);
-                omega         18.8945578;
-            }
-        }
+        amplitude     (0.1 0 0);
+        omega         18.8945578;
+    }
+}
 
-        rotation
-        {
-            solidBodyMotionFunction  rotatingMotion;
-            rotatingMotionCoeffs
-            {
-                origin        (0 0.02 0);
-                axis          (0 0 1);
-                omega         18.8945578;
-            }
-        }
+rotation
+{
+    solidBodyMotionFunction  rotatingMotion;
+    rotatingMotionCoeffs
+    {
+        origin        (0 0.02 0);
+        axis          (0 0 1);
+        omega         18.8945578;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
index a017af1338d9fa84bedf1268e8c5bfdadda6e510..bbaba73c11c2e585e35eb27afef559fe03eb0d1b 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingCylinder/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
index e483843b00fe8f80c39c1484b3eb475400b93f5d..7ed41250a1d374499258969f21759aac572c8f39 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.22654;
-        rollAmin        0.10472;
-        heaveA          3.79;
-        swayA           2.34;
-        Q               2;
-        Tp              13.93;
-        Tpn             11.93;
-        dTi             0.059;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.22654;
+rollAmin        0.10472;
+heaveA          3.79;
+swayA           2.34;
+Q               2;
+Tp              13.93;
+Tpn             11.93;
+dTi             0.059;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
index 469a80c5846e9bb59f5ba405e5d554fc8d8f566c..fce2dd11b6a6c61459aec233521b518e57c95e6c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
index 9c6163c0737a6c77a3ffb73e8123635f075999a3..770e13f5589b607ef3396557caa2e322e8aa3e32 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.2;
-        rollAmin        0.1;
-        heaveA          4;
-        swayA           2.4;
-        Q               2;
-        Tp              14;
-        Tpn             12;
-        dTi             0.06;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.2;
+rollAmin        0.1;
+heaveA          4;
+swayA           2.4;
+Q               2;
+Tp              14;
+Tpn             12;
+dTi             0.06;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..c1813344c16a54b38d59cf8806fe9cfa89246ea1 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
index e483843b00fe8f80c39c1484b3eb475400b93f5d..7ed41250a1d374499258969f21759aac572c8f39 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.22654;
-        rollAmin        0.10472;
-        heaveA          3.79;
-        swayA           2.34;
-        Q               2;
-        Tp              13.93;
-        Tpn             11.93;
-        dTi             0.059;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.22654;
+rollAmin        0.10472;
+heaveA          3.79;
+swayA           2.34;
+Q               2;
+Tp              13.93;
+Tpn             11.93;
+dTi             0.059;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
index 469a80c5846e9bb59f5ba405e5d554fc8d8f566c..fce2dd11b6a6c61459aec233521b518e57c95e6c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
index 9c6163c0737a6c77a3ffb73e8123635f075999a3..770e13f5589b607ef3396557caa2e322e8aa3e32 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
@@ -17,26 +17,21 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction SDA;
-    SDACoeffs
-    {
-        CofG            (0 0 0);
-        lamda           50;
-        rollAmax        0.2;
-        rollAmin        0.1;
-        heaveA          4;
-        swayA           2.4;
-        Q               2;
-        Tp              14;
-        Tpn             12;
-        dTi             0.06;
-        dTp             -0.001;
-    }
-}
+solidBodyMotionFunction SDA;
+
+CofG            (0 0 0);
+lamda           50;
+rollAmax        0.2;
+rollAmin        0.1;
+heaveA          4;
+swayA           2.4;
+Q               2;
+Tp              14;
+Tpn             12;
+dTi             0.06;
+dTp             -0.001;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..c1813344c16a54b38d59cf8806fe9cfa89246ea1 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
index 3bdcf056995674a2ae6b02a3bd792c1eb45d51d9..5d68c200613b2a2b196a4d72b363dce0c8e73f42 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
@@ -17,17 +17,12 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction tabulated6DoFMotion;
-    tabulated6DoFMotionCoeffs
-    {
-        CofG            (0 0 0);
-        timeDataFileName "$FOAM_CASE/constant/6DoF.dat";
-    }
-}
+solidBodyMotionFunction tabulated6DoFMotion;
+
+CofG            (0 0 0);
+timeDataFileName "$FOAM_CASE/constant/6DoF.dat";
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
index 469a80c5846e9bb59f5ba405e5d554fc8d8f566c..fce2dd11b6a6c61459aec233521b518e57c95e6c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
index 6a306aef41193fe105f01a55c21eaba942835fdc..dfb241c47a7cc955cb8294f3586433d02c3e0282 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
@@ -17,49 +17,43 @@ FoamFile
 
 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    solidBodyMotionFunction multiMotion;
+solidBodyMotionFunction multiMotion;
 
-    multiMotionCoeffs
+// Table rotating in z axis
+rotatingTable
+{
+    solidBodyMotionFunction rotatingMotion;
+    rotatingMotionCoeffs
     {
-        // Table rotating in z axis
-        rotatingTable
-        {
-            solidBodyMotionFunction rotatingMotion;
-            rotatingMotionCoeffs
-            {
-                origin          (0 0.1 0);
-                axis            (0 0 1);
-                omega           6.2832; // rad/s
-            }
-        }
-
-        //// Box rotates on rotating table
-        //rotatingBox
-        //{
-        //    solidBodyMotionFunction rotatingMotion;
-        //    rotatingMotionCoeffs
-        //    {
-        //        origin          (0 0 0);
-        //        axis            (1 0 0);
-        //        omega           12.5664; // rad/s
-        //    }
-        //}
+        origin          (0 0.1 0);
+        axis            (0 0 1);
+        omega           6.2832; // rad/s
+    }
+}
 
-        // Tube rocking on rotating table
-        rotatingBox
-        {
-            solidBodyMotionFunction oscillatingRotatingMotion;
-            oscillatingRotatingMotionCoeffs
-            {
-                origin          (0 0 0);
-                omega           40;         // rad/s
-                amplitude       (45 0 0);   // 45 degrees max tilt
-            }
-        }
+//// Box rotates on rotating table
+//rotatingBox
+//{
+//    solidBodyMotionFunction rotatingMotion;
+//    rotatingMotionCoeffs
+//    {
+//        origin          (0 0 0);
+//        axis            (1 0 0);
+//        omega           12.5664; // rad/s
+//    }
+//}
+
+// Tube rocking on rotating table
+rotatingBox
+{
+    solidBodyMotionFunction oscillatingRotatingMotion;
+    oscillatingRotatingMotionCoeffs
+    {
+        origin          (0 0 0);
+        omega           40;         // rad/s
+        amplitude       (45 0 0);   // 45 degrees max tilt
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..c1813344c16a54b38d59cf8806fe9cfa89246ea1 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 998.2;
+    nu              1e-06;
+    rho             998.2;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
index 0ee4a042ecb10d24d8dbd4feb98daa6bb70b17ff..7fdfd89aee3a3a9d4ae5a0013db4ad3629cc9c71 100644
--- a/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
@@ -20,17 +20,17 @@ phases (fuel air);
 fuel
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 5.952e-06;
-    rho             [1 -3 0 0 0 0 0] 840;
+    nu              5.952e-06;
+    rho             840;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 8.5e-07;
-    rho             [1 -3 0 0 0 0 0] 20;
+    nu              8.5e-07;
+    rho             20;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.0261;
+sigma           0.0261;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
index bb0c2a7ee6d0a06780ef9c8432435c493c4e17d5..92310d408aa0fefea31942949e2810aed9f9b6ed 100644
--- a/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
@@ -20,17 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.09e-06;
-    rho             [1 -3 0 0 0 0 0] 998.8;
+    nu              1.09e-06;
+    rho             998.8;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0;
+sigma           0;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
index d33433d216f959d4673d6af2b4572c7f31e89590..73aae68766294a27bff94217a60640ee215b58de 100644
--- a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
+++ b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
@@ -18,7 +18,6 @@ FoamFile
 porosity1
 {
     type            explicitPorositySource;
-    active          yes;
 
     explicitPorositySourceCoeffs
     {
@@ -27,21 +26,18 @@ porosity1
 
         type            DarcyForchheimer;
 
-        DarcyForchheimerCoeffs
-        {
-            d   (2e8 -1000 -1000);
-            f   (0 0 0);
+        d   (2e8 -1000 -1000);
+        f   (0 0 0);
 
-            coordinateSystem
+        coordinateSystem
+        {
+            type    cartesian;
+            origin  (0 0 0);
+            coordinateRotation
             {
-                type    cartesian;
-                origin  (0 0 0);
-                coordinateRotation
-                {
-                    type    axesRotation;
-                    e1  (0.70710678 0.70710678 0);
-                    e2  (0 0 1);
-                }
+                type    axesRotation;
+                e1  (0.70710678 0.70710678 0);
+                e2  (0 0 1);
             }
         }
     }
diff --git a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
index 1331af1e5ce2a7e3343e0b0d2aee2df99780ba4e..84ac74aab245e37a03a3e12950794419d5b2b205 100644
--- a/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
index 1331af1e5ce2a7e3343e0b0d2aee2df99780ba4e..84ac74aab245e37a03a3e12950794419d5b2b205 100644
--- a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
index 1331af1e5ce2a7e3343e0b0d2aee2df99780ba4e..84ac74aab245e37a03a3e12950794419d5b2b205 100644
--- a/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
index e4bcf4551587ba957c8bd13ffcefd8fdd7420ab9..84ac74aab245e37a03a3e12950794419d5b2b205 100644
--- a/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
index 1331af1e5ce2a7e3343e0b0d2aee2df99780ba4e..84ac74aab245e37a03a3e12950794419d5b2b205 100644
--- a/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
+sigma           0.07;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties
index 7640e6ad3b9cdea2bdd094ee732145eb18053ff5..42c542f07f41a9d13fa66499bd67eabd7f7170e0 100644
--- a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.0707106;
+sigma           0.0707106;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties
index 1331af1e5ce2a7e3343e0b0d2aee2df99780ba4e..7ac5e4320860dc3115ce09d9fe9aef88c6e0663f 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/constant/transportProperties
@@ -20,18 +20,17 @@ phases (water air);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-06;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-06;
+    rho             1000;
 }
 
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.07;
-
+sigma            0.07;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
index fee1caa0e65103bd13f27aa269e496b67619f78e..debd4f5ff433b11cc2f66ed4865d3cb1fee02129 100644
--- a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
@@ -20,18 +20,18 @@ phases (water oir);
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-4;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-4;
+    rho             1000;
 }
 
 oir
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1e-4;
-    rho             [1 -3 0 0 0 0 0] 500;
+    nu              1e-4;
+    rho             500;
 }
 
-sigma           [1 0 -2 0 0 0 0] 0.05;
+sigma           0.05;
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
index 6b1ab75602598d0271e95efea71c2b55a3ed0fcb..7f1dcd8d37aa96a30d0c7137724ddff38beb323d 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
@@ -20,29 +20,29 @@ phases (air other water);
 air
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 1.48e-05;
-    rho             [1 -3 0 0 0 0 0] 1;
+    nu              1.48e-05;
+    rho             1;
 }
 
 other
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1e-6;
-    rho             [1 -3 0 0 0 0 0] 1010;
+    nu              1e-6;
+    rho             1010;
 }
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0]  1e-6;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              1e-6;
+    rho             1000;
 }
 
 // Surface tension coefficients
-sigma12           sigma12 [1 0 -2 0 0 0 0] 0.05;
-sigma13           sigma13 [1 0 -2 0 0 0 0] 0.04;
+sigma12         0.05;
+sigma13         0.04;
 
 // Diffusivity between miscible phases
-D23               D23   [0 2 -1 0 0 0 0]  3e-09;
+D23             3e-09;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict
index 9f4a4cd86d5c9c09ac9de7cd87b80f54a832b5fd..04e5d15fe57e3dcdecd3192324cd81d01478eb5b 100644
--- a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/dynamicMeshDict
@@ -19,27 +19,22 @@ dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ( "libfvMotionSolvers.so" );
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        innerCylinderSmall;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin      (0 0 0);
-        axis        (0 1 0);
-        omega       table
-        (
-            (0    0)
-            (0.01  628)
-            (0.022  628)
-            (0.03  419)
-            (100   419)
-        );
-    }
-}
+cellZone        innerCylinderSmall;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin      (0 0 0);
+axis        (0 1 0);
+omega       table
+(
+    (0    0)
+    (0.01  628)
+    (0.022  628)
+    (0.03  419)
+    (100   419)
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties
index 1ed351945eaa2d077f77e551d048f7441f409b77..45bb58360289ab325abeed5137e4154feca5b5ae 100644
--- a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties
+++ b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/constant/transportProperties
@@ -19,46 +19,46 @@ phases (water vapour);
 
 phaseChangeTwoPhaseMixture SchnerrSauer;
 
-pSat            [1 -1 -2 0 0 0 0] 2300;   // Saturation pressure
+pSat            2300;   // Saturation pressure
 
-sigma           [1 0 -2 0 0 0 0]  0.07;
+sigma           0.07;
 
 water
 {
     transportModel  Newtonian;
-    nu              [0 2 -1 0 0 0 0] 9e-07;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    nu              9e-07;
+    rho             1000;
 }
 
 vapour
 {
     transportModel Newtonian;
-    nu              [0 2 -1 0 0 0 0] 4.273e-04;
-    rho             [1 -3 0 0 0 0 0] 0.02308;
+    nu              4.273e-04;
+    rho             0.02308;
 }
 
 KunzCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005; // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      1000;
-    Cv              Cv     [0 0 0 0 0 0 0]      1000;
+    UInf            20.0;
+    tInf            0.005; // L = 0.1 m
+    Cc              1000;
+    Cv              1000;
 }
 
 MerkleCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005;  // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      80;
-    Cv              Cv     [0 0 0 0 0 0 0]      1e-03;
+    UInf            20.0;
+    tInf            0.005;  // L = 0.1 m
+    Cc              80;
+    Cv              1e-03;
 }
 
 SchnerrSauerCoeffs
 {
-    n               n      [0 -3 0 0 0 0 0]     1.6e+13;
-    dNuc            dNuc   [0 1 0 0 0 0 0]      2.0e-06;
-    Cc              Cc     [0 0 0 0 0 0 0]      1;
-    Cv              Cv     [0 0 0 0 0 0 0]      1;
+    n               1.6e+13;
+    dNuc            2.0e-06;
+    Cc              1;
+    Cv              1;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties
index f4be7f419a5b86b3a77a6a9b8ccb67da861fee72..ae8fe4c6d46a9f52b2dbc315fa0cba648eae3a72 100644
--- a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties
+++ b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/constant/transportProperties
@@ -18,46 +18,46 @@ phases (water vapour);
 
 phaseChangeTwoPhaseMixture SchnerrSauer;
 
-pSat            [1 -1 -2 0 0 0 0] 2300;   // Saturation pressure
+pSat            2300;   // Saturation pressure
 
-sigma           [1 0 -2 0 0 0 0]  0.07;
+sigma           0.07;
 
 water
 {
-    transportModel Newtonian;
-    nu              [0 2 -1 0 0 0 0] 9e-07;
-    rho             [1 -3 0 0 0 0 0] 1000;
+    transportModel  Newtonian;
+    nu              9e-07;
+    rho             1000;
 }
 
 vapour
 {
-    transportModel Newtonian;
-    nu              [0 2 -1 0 0 0 0] 4.273e-04;
-    rho             [1 -3 0 0 0 0 0] 0.02308;
+    transportModel  Newtonian;
+    nu              4.273e-04;
+    rho             0.02308;
 }
 
 KunzCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005; // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      1000;
-    Cv              Cv     [0 0 0 0 0 0 0]      1000;
+    UInf            U20.0;
+    tInf            t0.005; // L = 0.1 m
+    Cc              C1000;
+    Cv              C1000;
 }
 
 MerkleCoeffs
 {
-    UInf            UInf   [0 1 -1 0 0 0 0]     20.0;
-    tInf            tInf   [0 0 1 0 0 0 0]      0.005;  // L = 0.1 m
-    Cc              Cc     [0 0 0 0 0 0 0]      80;
-    Cv              Cv     [0 0 0 0 0 0 0]      1e-03;
+    UInf            20.0;
+    tInf            0.005;  // L = 0.1 m
+    Cc              80;
+    Cv              1e-03;
 }
 
 SchnerrSauerCoeffs
 {
-    n               n      [0 -3 0 0 0 0 0]     1.6e+13;
-    dNuc            dNuc   [0 1 0 0 0 0 0]      2.0e-06;
-    Cc              Cc     [0 0 0 0 0 0 0]      1;
-    Cv              Cv     [0 0 0 0 0 0 0]      1;
+    n               1.6e+13;
+    dNuc            2.0e-06;
+    Cc              1;
+    Cv              1;
 }
 
 
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
index bfce8712bb2747c065a9660c4cb538be3776f251..84aee2ff8b7decf9c14c361e0e850f8306f54a82 100644
--- a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
@@ -19,20 +19,15 @@ dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ( "libfvMotionSolvers.so" );
 
-solver solidBody;
+motionSolver    solidBody;
 
-solidBodyCoeffs
-{
-    cellZone        rotor;
-
-    solidBodyMotionFunction  rotatingMotion;
-    rotatingMotionCoeffs
-    {
-        origin        (0 0 0);
-        axis          (0 0 1);
-        omega         6.2832; // rad/s
-    }
-}
+cellZone        rotor;
+
+solidBodyMotionFunction  rotatingMotion;
+
+origin        (0 0 0);
+axis          (0 0 1);
+omega         6.2832; // rad/s
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict b/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict
index 18719a21019f8ba4d53aa11f51b803e6da503e9a..e241e2c52752e31ad6bc6ed2e1e32a7791450a2e 100644
--- a/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict
+++ b/tutorials/multiphase/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict
@@ -16,20 +16,16 @@ FoamFile
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dynamicFvMesh dynamicMotionSolverFvMesh;
+dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ("libfvMotionSolvers.so");
 
-solver displacementLaplacian;
-//solver velocityComponentLaplacian z;
+motionSolver    displacementLaplacian;
 
-displacementLaplacianCoeffs
-{
-    // diffusivity  uniform;
-    // diffusivity  directional (1 200 0);
-    // diffusivity  motionDirectional (1 1000 0);
-    // diffusivity  file motionDiffusivity;
-    diffusivity  inverseDistance 1(floatingObjectBottom);
-}
+// diffusivity  uniform;
+// diffusivity  directional (1 200 0);
+// diffusivity  motionDirectional (1 1000 0);
+// diffusivity  file motionDiffusivity;
+diffusivity  inverseDistance 1(floatingObjectBottom);
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions
index 6812c1f5c76777ffe623d1c43d640ace9672b233..3dd0abfea6368bed57e18fdff053b287be7a9204 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/injection/constant/fvOptions
@@ -32,15 +32,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                thermo:rho.air     (1e-3 0); // kg/s
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            thermo:rho.air     (1e-3 0); // kg/s
         }
     }
 
@@ -48,15 +45,12 @@ options
     {
         type            vectorSemiImplicitSource;
 
-        vectorSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                U.air           ((0 -1e-2 0) 0); // kg*m/s^2
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            U.air           ((0 -1e-2 0) 0); // kg*m/s^2
         }
     }
 
@@ -64,15 +58,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                e.air      (500 0); // kg*m^2/s^3
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            e.air      (500 0); // kg*m^2/s^3
         }
     }
 }
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
index 92a4b462c0a7fe08c8d70a05a0c9a1418111d984..26092c74ff7ad835f9ed0a5658ef0f5bbfde6fc5 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/fvOptions
@@ -32,15 +32,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                thermo:rho.steam     (1.0e-3 0); // kg/s
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            thermo:rho.steam     (1.0e-3 0); // kg/s
         }
     }
 /*
@@ -48,15 +45,12 @@ options
     {
         type            vectorSemiImplicitSource;
 
-        vectorSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
                 U.steam           ((0 1e-2 0) 0); // kg*m/s^2
-            }
         }
     }
 */
@@ -64,15 +58,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                e.steam      (3700 0); // kg*m^2/s^3
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            e.steam      (3700 0); // kg*m^2/s^3
         }
     }
 }
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties
index ca28ab5fa5f0f47c91b74381114b234950412a4c..531a0882db4f7c7ee96e4410ebed7d16744fb2f0 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/phaseProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-type    thermalPhaseChangeTwoPhaseSystem;
+type thermalPhaseChangeTwoPhaseSystem;
 
 phases (steam water);
 
@@ -34,7 +34,7 @@ steam
     }
     Sc              0.7;
 
-    residualAlpha   1e-6;
+    residualAlpha   1e-3;
 }
 
 water
@@ -47,7 +47,7 @@ water
     }
     Sc              0.7;
 
-    residualAlpha   1e-6;
+    residualAlpha   1e-3;
 }
 
 blending
@@ -56,30 +56,6 @@ blending
     {
         type            none;
         continuousPhase water;
-        minFullyContinuousAlpha.steam 0.7;
-        minPartlyContinuousAlpha.steam 0.5;
-        minFullyContinuousAlpha.water 0.7;
-        minPartlyContinuousAlpha.water 0.5;
-    }
-
-    heatTransfer
-    {
-        type            none;
-        continuousPhase water;
-        minFullyContinuousAlpha.steam 1;
-        minPartlyContinuousAlpha.steam 0;
-        minFullyContinuousAlpha.water 1;
-        minPartlyContinuousAlpha.water 0;
-    }
-
-    massTransfer
-    {
-        type            none;
-        continuousPhase water;
-        minFullyContinuousAlpha.steam 1;
-        minPartlyContinuousAlpha.steam 0;
-        minFullyContinuousAlpha.water 1;
-        minPartlyContinuousAlpha.water 0;
     }
 }
 
@@ -107,12 +83,6 @@ aspectRatio
         type            constant;
         E0              1.0;
     }
-
-    (water in steam)
-    {
-        type            constant;
-        E0              1.0;
-    }
 );
 
 drag
@@ -126,16 +96,6 @@ drag
             type        none;
         }
     }
-
-    (water in steam)
-    {
-        type            SchillerNaumann;
-        residualRe      1e-3;
-        swarmCorrection
-        {
-            type        none;
-        }
-    }
 );
 
 virtualMass
@@ -145,27 +105,18 @@ virtualMass
         type            constantCoefficient;
         Cvm             0.5;
     }
-
-    (water in steam)
-    {
-        type            constantCoefficient;
-        Cvm             0.5;
-    }
 );
 
 interfaceComposition
+();
+
+heatTransfer
 (
     (steam in water)
     {
-        type Saturated;
-        species ( H2O );
-        Le 1.0;
-        saturationPressure
-        {
-            type ArdenBuck;
-        }
+        type spherical;
+        residualAlpha 1e-4;
     }
-
 );
 
 heatTransfer.steam
@@ -187,33 +138,19 @@ heatTransfer.water
 );
 
 massTransfer.steam
-(
-
-);
+();
 
 massTransfer.water
-(
-
-);
+();
 
 lift
-(
-);
+();
 
 wallLubrication
-(
-);
+();
 
 turbulentDispersion
-(
-    (steam in water)
-    {
-        type                Burns;//
-        sigma               0.7;
-        Ctd                 1.0;
-        residualAlpha       1e-3;
-    }
-);
+();
 
 // Minimum allowable pressure
 pMin            10000;
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
index 2678646e63282457273791070eda851146e3a54a..9681d6c47442c407ec37153273ba6a5e6c7391e9 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.steam
@@ -23,9 +23,13 @@ thermoType
     thermo          hRefConst;
     equationOfState perfectGas;
     specie          specie;
-    energy          sensibleInternalEnergy;
+    energy          sensibleEnthalpy;
 }
 
+dpdt yes;
+
+pressureWorkAlphaLimit 0;
+
 species
 (
     water
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
index 56917ecec1446ab7b2c68208628298486e1f49df..5bbe19ca4d354c78509a438fc99c240dd637e932 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/constant/thermophysicalProperties.water
@@ -23,9 +23,13 @@ thermoType
     thermo          hRefConst;
     equationOfState perfectFluid;
     specie          specie;
-    energy          sensibleInternalEnergy;
+    energy          sensibleEnthalpy;
 }
 
+dpdt yes;
+
+pressureWorkAlphaLimit 0;
+
 species
 (
     water
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict
index b919ed3c2831324ac8c0bb3d06ab3e9b4cf141ab..54aafe8c3df82e44ed3cf653134dd539128f73b2 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/controlDict
@@ -25,11 +25,11 @@ stopAt          endTime;
 
 endTime         10;
 
-deltaT          1e-6;
+deltaT          1e-3;
 
 writeControl    adjustableRunTime;
 
-writeInterval   0.5;
+writeInterval   0.1;
 
 purgeWrite      0;
 
@@ -41,7 +41,7 @@ writeCompression compressed;
 
 timeFormat      general;
 
-timePrecision   6;
+timePrecision   9;
 
 runTimeModifiable yes;
 
@@ -51,5 +51,30 @@ maxCo           0.1;
 
 maxDeltaT       1e-2;
 
+functions
+{
+    timeStepping
+    {
+        type            setTimeStep;
+        functionObjectLibs ("libutilityFunctionObjects.so");
+        enabled         yes;
+        deltaT          tableFile;
+        file            "system/deltaTvalues";
+    }
+
+    minMaxp
+    {
+        type        fieldMinMax;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        fields
+        (
+             p
+        );
+        location        no;
+        writeControl    timeStep;
+        writeInterval   1;
+    }
+}
+
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/deltaTvalues b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/deltaTvalues
new file mode 100644
index 0000000000000000000000000000000000000000..03c2defea091efeffb8d2149840db6a26b835b2b
--- /dev/null
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/deltaTvalues
@@ -0,0 +1,9 @@
+(
+    (0 1e-3)
+    (0.99 1e-3)
+    (0.999 1e-4)
+    (0.9999 1e-5)
+    (1.001 1e-5)
+    (1.01 1e-4)
+    (1.1 1e-3)
+);
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution
index 7ee092485cd126d3799c90d6ed9e558a87ad9864..3d480adfee2a3ee96a53ad5a5f140b791cb7d9d4 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection/system/fvSolution
@@ -27,8 +27,8 @@ solvers
     {
         solver          PCG;
         preconditioner  DIC;
-        tolerance       1e-8;
-        relTol          0;
+        tolerance       1e-10;
+        relTol          0.001;
     }
 
     p_rghFinal
@@ -78,10 +78,10 @@ solvers
 
 PIMPLE
 {
-    nOuterCorrectors 4;
+    nOuterCorrectors 3;
     nCorrectors      1;
     nNonOrthogonalCorrectors 0;
-    nEnergyCorrectors 1;
+    nEnergyCorrectors 2;
     faceMomentum    yes;
 }
 
@@ -89,7 +89,7 @@ relaxationFactors
 {
     fields
     {
-        iDmdt 1;
+        iDmdt           1;
     }
 
     equations
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions
index 6812c1f5c76777ffe623d1c43d640ace9672b233..3dd0abfea6368bed57e18fdff053b287be7a9204 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions
+++ b/tutorials/multiphase/twoPhaseEulerFoam/laminar/injection/constant/fvOptions
@@ -32,15 +32,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                thermo:rho.air     (1e-3 0); // kg/s
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            thermo:rho.air     (1e-3 0); // kg/s
         }
     }
 
@@ -48,15 +45,12 @@ options
     {
         type            vectorSemiImplicitSource;
 
-        vectorSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                U.air           ((0 -1e-2 0) 0); // kg*m/s^2
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            U.air           ((0 -1e-2 0) 0); // kg*m/s^2
         }
     }
 
@@ -64,15 +58,12 @@ options
     {
         type            scalarSemiImplicitSource;
 
-        scalarSemiImplicitSourceCoeffs
-        {
-            $injector1;
+        $injector1;
 
-            volumeMode      absolute;
-            injectionRateSuSp
-            {
-                e.air      (500 0); // kg*m^2/s^3
-            }
+        volumeMode      absolute;
+        injectionRateSuSp
+        {
+            e.air      (500 0); // kg*m^2/s^3
         }
     }
 }