diff --git a/applications/solvers/combustion/fireFoam/createFieldRefs.H b/applications/solvers/combustion/fireFoam/createFieldRefs.H
index 6df6f9df2f25649e21dae0a674a3b17903dcc0e2..a911c586d971e91fb27d800bd586f984a9bf52e6 100644
--- a/applications/solvers/combustion/fireFoam/createFieldRefs.H
+++ b/applications/solvers/combustion/fireFoam/createFieldRefs.H
@@ -1,4 +1,4 @@
 const volScalarField& psi = thermo.psi();
 const volScalarField& T = thermo.T();
-filmModelType& surfaceFilm = tsurfaceFilm();
+regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
 const label inertIndex(composition.species()[inertSpecie]);
diff --git a/applications/solvers/combustion/fireFoam/createSurfaceFilmModel.H b/applications/solvers/combustion/fireFoam/createSurfaceFilmModel.H
index ffdbcbf6a90643785ce22117b9a29ec491446384..81995c09a5612bdf8fd71b40497a986d11ab7ff1 100644
--- a/applications/solvers/combustion/fireFoam/createSurfaceFilmModel.H
+++ b/applications/solvers/combustion/fireFoam/createSurfaceFilmModel.H
@@ -1,5 +1,6 @@
 Info<< "\nConstructing surface film model" << endl;
 
-typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
-
-autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
+autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
+(
+    regionModels::surfaceFilmModel::New(mesh, g)
+);
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/files b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/files
deleted file mode 100644
index a76d2acc653530c1273f8939b1e4878a9a6e316a..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-reactingParcelFilmFoam.C
-
-EXE = $(FOAM_APPBIN)/reactingParcelFilmFoam
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
deleted file mode 100644
index c48045772ef324398551382e9a6d378d3f343cd1..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
+++ /dev/null
@@ -1,47 +0,0 @@
-EXE_INC = \
-    -I. \
-    -I../reactingParcelFoam \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I${LIB_SRC}/sampling/lnInclude \
-    -I${LIB_SRC}/meshTools/lnInclude \
-    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-    -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-    -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-    -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-    -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
-    -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-    -I$(LIB_SRC)/ODE/lnInclude \
-    -I$(LIB_SRC)/combustionModels/lnInclude \
-    -I$(FOAM_SOLVERS)/combustion/reactingFoam
-
-EXE_LIBS = \
-    -lfiniteVolume \
-    -lfvOptions \
-    -lsampling \
-    -lmeshTools \
-    -lturbulenceModels \
-    -lcompressibleTurbulenceModels \
-    -lspecie \
-    -lcompressibleTransportModels \
-    -lfluidThermophysicalModels \
-    -lreactionThermophysicalModels \
-    -lSLGThermo \
-    -lchemistryModel \
-    -lregionModels \
-    -lradiationModels \
-    -lsurfaceFilmModels \
-    -lsurfaceFilmDerivedFvPatchFields \
-    -llagrangianIntermediate \
-    -llagrangianTurbulence \
-    -lODE \
-    -lcombustionModels
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H
deleted file mode 100644
index 0bb6ff7240431ad69ea2390aaeaa1df41869cf0a..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H
+++ /dev/null
@@ -1,34 +0,0 @@
-    MRF.correctBoundaryVelocity(U);
-
-    fvVectorMatrix UEqn
-    (
-        fvm::ddt(rho, U) + fvm::div(phi, U)
-      + MRF.DDt(rho, U)
-      + turbulence->divDevRhoReff(U)
-     ==
-        parcels.SU(U)
-      + fvOptions(rho, U)
-    );
-
-    UEqn.relax();
-
-    fvOptions.constrain(UEqn);
-
-    if (pimple.momentumPredictor())
-    {
-        solve
-        (
-            UEqn
-          ==
-            fvc::reconstruct
-            (
-                (
-                  - ghf*fvc::snGrad(rho)
-                  - fvc::snGrad(p_rgh)
-                )*mesh.magSf()
-            )
-        );
-
-        fvOptions.correct(U);
-        K = 0.5*magSqr(U);
-    }
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createClouds.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createClouds.H
deleted file mode 100644
index c568be12a16faa253b69d064499038de506a36b5..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createClouds.H
+++ /dev/null
@@ -1,9 +0,0 @@
-Info<< "\nConstructing reacting cloud" << endl;
-basicReactingCloud parcels
-(
-    "reactingCloud1",
-    rho,
-    U,
-    g,
-    slgThermo
-);
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
deleted file mode 100644
index a52d47c47f7ccb742c0f1a1ca092284e946cd1eb..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "createRDeltaT.H"
-
-Info<< "Creating combustion model\n" << endl;
-
-autoPtr<combustionModels::psiCombustionModel> combustion
-(
-    combustionModels::psiCombustionModel::New(mesh)
-);
-
-psiReactionThermo& thermo = combustion->thermo();
-thermo.validate(args.executable(), "h", "e");
-
-SLGThermo slgThermo(mesh, thermo);
-
-basicSpecieMixture& composition = thermo.composition();
-PtrList<volScalarField>& Y = composition.Y();
-
-const word inertSpecie(thermo.lookup("inertSpecie"));
-if (!composition.species().found(inertSpecie))
-{
-    FatalIOErrorIn(args.executable().c_str(), thermo)
-        << "Inert specie " << inertSpecie << " not found in available species "
-        << composition.species()
-        << exit(FatalIOError);
-}
-
-Info<< "Creating field rho\n" << endl;
-volScalarField rho
-(
-    IOobject
-    (
-        "rho",
-        runTime.timeName(),
-        mesh,
-        IOobject::NO_READ,
-        IOobject::AUTO_WRITE
-    ),
-    thermo.rho()
-);
-
-volScalarField& p = thermo.p();
-
-Info<< "\nReading field U\n" << endl;
-volVectorField U
-(
-    IOobject
-    (
-        "U",
-        runTime.timeName(),
-        mesh,
-        IOobject::MUST_READ,
-        IOobject::AUTO_WRITE
-    ),
-    mesh
-);
-
-#include "compressibleCreatePhi.H"
-
-Info<< "Creating turbulence model\n" << endl;
-autoPtr<compressible::turbulenceModel> turbulence
-(
-    compressible::turbulenceModel::New
-    (
-        rho,
-        U,
-        phi,
-        thermo
-    )
-);
-
-// Set the turbulence into the combustion model
-combustion->setTurbulence(turbulence());
-
-#include "readGravitationalAcceleration.H"
-#include "readhRef.H"
-#include "gh.H"
-
-
-volScalarField p_rgh
-(
-    IOobject
-    (
-        "p_rgh",
-        runTime.timeName(),
-        mesh,
-        IOobject::MUST_READ,
-        IOobject::AUTO_WRITE
-    ),
-    mesh
-);
-
-// Force p_rgh to be consistent with p
-p_rgh = p - rho*gh;
-
-mesh.setFluxRequired(p_rgh.name());
-
-multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
-
-forAll(Y, i)
-{
-    fields.add(Y[i]);
-}
-fields.add(thermo.he());
-
-IOdictionary additionalControlsDict
-(
-    IOobject
-    (
-        "additionalControls",
-        runTime.constant(),
-        mesh,
-        IOobject::MUST_READ_IF_MODIFIED,
-        IOobject::NO_WRITE
-    )
-);
-
-Switch solvePrimaryRegion
-(
-    additionalControlsDict.lookup("solvePrimaryRegion")
-);
-
-volScalarField Qdot
-(
-    IOobject
-    (
-        "Qdot",
-        runTime.timeName(),
-        mesh,
-        IOobject::READ_IF_PRESENT,
-        IOobject::AUTO_WRITE
-    ),
-    mesh,
-    dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
-);
-
-#include "createDpdt.H"
-
-#include "createK.H"
-
-#include "createMRF.H"
-#include "createClouds.H"
-#include "createRadiationModel.H"
-#include "createSurfaceFilmModel.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createSurfaceFilmModel.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createSurfaceFilmModel.H
deleted file mode 100644
index ffdbcbf6a90643785ce22117b9a29ec491446384..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createSurfaceFilmModel.H
+++ /dev/null
@@ -1,5 +0,0 @@
-Info<< "\nConstructing surface film model" << endl;
-
-typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
-
-autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H
deleted file mode 100644
index 7b5249d57e7bd2ce99db1f702aa863eb56a1adf2..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H
+++ /dev/null
@@ -1,59 +0,0 @@
-rho = thermo.rho();
-
-volScalarField rAU(1.0/UEqn.A());
-surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
-volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
-
-surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
-
-surfaceScalarField phiHbyA
-(
-    "phiHbyA",
-    (
-        fvc::flux(rho*HbyA)
-      + rhorAUf*fvc::ddtCorr(rho, U, phi)
-    )
-  + phig
-);
-
-MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
-
-// Update the pressure BCs to ensure flux consistency
-constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
-
-while (pimple.correctNonOrthogonal())
-{
-    fvScalarMatrix p_rghEqn
-    (
-        fvc::ddt(psi, rho)*gh
-      + fvc::div(phiHbyA)
-      + fvm::ddt(psi, p_rgh)
-      - fvm::laplacian(rhorAUf, p_rgh)
-     ==
-        parcels.Srho()
-      + surfaceFilm.Srho()
-      + fvOptions(psi, p_rgh, rho.name())
-    );
-
-    p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
-
-    if (pimple.finalNonOrthogonalIter())
-    {
-        phi = phiHbyA + p_rghEqn.flux();
-        U = HbyA + rAU*fvc::reconstruct((p_rghEqn.flux() + phig)/rhorAUf);
-        U.correctBoundaryConditions();
-        fvOptions.correct(U);
-    }
-}
-
-p = p_rgh + rho*gh;
-
-#include "rhoEqn.H"
-#include "compressibleContinuityErrs.H"
-
-K = 0.5*magSqr(U);
-
-if (thermo.dpdt())
-{
-    dpdt = fvc::ddt(p);
-}
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
deleted file mode 100644
index cda41207de101a709e7083ca1d96e15fa66e6d2d..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
+++ /dev/null
@@ -1,138 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-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
-    reactingParcelFilmFoam
-
-Group
-    grpLagrangianSolvers
-
-Description
-    Transient solver for compressible, turbulent flow with a reacting,
-    multiphase particle cloud, and surface film modelling.
-
-\*---------------------------------------------------------------------------*/
-
-#include "fvCFD.H"
-#include "turbulentFluidThermoModel.H"
-#include "basicReactingCloud.H"
-#include "surfaceFilmModel.H"
-#include "psiCombustionModel.H"
-#include "radiationModel.H"
-#include "SLGThermo.H"
-#include "fvOptions.H"
-#include "pimpleControl.H"
-#include "localEulerDdtScheme.H"
-#include "fvcSmooth.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-int main(int argc, char *argv[])
-{
-    #include "postProcess.H"
-
-    #include "setRootCase.H"
-    #include "createTime.H"
-    #include "createMesh.H"
-    #include "createControl.H"
-    #include "createTimeControls.H"
-    #include "createFields.H"
-    #include "createFieldRefs.H"
-    #include "createFvOptions.H"
-    #include "initContinuityErrs.H"
-
-    turbulence->validate();
-
-    if (!LTS)
-    {
-        #include "compressibleCourantNo.H"
-        #include "setInitialDeltaT.H"
-    }
-
-    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-    Info<< "\nStarting time loop\n" << endl;
-
-    while (runTime.run())
-    {
-        #include "readTimeControls.H"
-
-        if (!LTS)
-        {
-            #include "compressibleCourantNo.H"
-            #include "setMultiRegionDeltaT.H"
-            #include "setDeltaT.H"
-        }
-
-        runTime++;
-
-        Info<< "Time = " << runTime.timeName() << nl << endl;
-
-        parcels.evolve();
-        surfaceFilm.evolve();
-
-        if (LTS)
-        {
-            #include "setRDeltaT.H"
-        }
-
-        if (solvePrimaryRegion)
-        {
-            #include "rhoEqn.H"
-
-            // --- PIMPLE loop
-            while (pimple.loop())
-            {
-                #include "UEqn.H"
-                #include "YEqn.H"
-                #include "EEqn.H"
-
-                // --- Pressure corrector loop
-                while (pimple.correct())
-                {
-                    #include "pEqn.H"
-                }
-
-                if (pimple.turbCorr())
-                {
-                    turbulence->correct();
-                }
-            }
-
-            rho = thermo.rho();
-        }
-
-        runTime.write();
-
-        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
-            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
-            << nl << endl;
-    }
-
-    Info<< "End" << endl;
-
-    return 0;
-}
-
-
-// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/rhoEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/rhoEqn.H
deleted file mode 100644
index 2e37b4e471e96247f281668493a43967bbd8c317..0000000000000000000000000000000000000000
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/rhoEqn.H
+++ /dev/null
@@ -1,48 +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/>.
-
-Global
-    rhoEqn
-
-Description
-    Solve the continuity for density.
-
-\*---------------------------------------------------------------------------*/
-
-{
-    fvScalarMatrix rhoEqn
-    (
-        fvm::ddt(rho)
-      + fvc::div(phi)
-      ==
-        parcels.Srho(rho)
-      + surfaceFilm.Srho()
-      + fvOptions(rho)
-    );
-
-    rhoEqn.solve();
-
-    fvOptions.correct(rho);
-}
-
-// ************************************************************************* //
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
index 42185b8afb2332149626b786066ff9d4cf01c716..4d112da030fc2582f9cf4a871acf1ad7708d83ed 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/EEqn.H
@@ -19,6 +19,7 @@
      ==
         rho*(U&g)
       + parcels.Sh(he)
+      + surfaceFilm.Sh()
       + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
@@ -35,6 +36,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/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
index 803834700611d015a9fd0e4fbbe2798f36add1c6..ca89bd0c014b46716597211f199383edd03b4798 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
@@ -1,12 +1,11 @@
 EXE_INC = \
     -I. \
+    -I../reactingParcelFoam \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I${LIB_SRC}/sampling/lnInclude \
     -I${LIB_SRC}/meshTools/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
-    -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-    -I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \
     -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
@@ -17,33 +16,33 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-    -I$(LIB_SRC)/ODE/lnInclude \
     -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
     -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
+    -I$(LIB_SRC)/ODE/lnInclude \
     -I$(LIB_SRC)/combustionModels/lnInclude \
-    -I$(LIB_SRC)/sampling/lnInclude \
     -I$(FOAM_SOLVERS)/combustion/reactingFoam
 
-
 EXE_LIBS = \
     -lfiniteVolume \
+    -lfvOptions \
+    -lsampling \
     -lmeshTools \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
-    -llagrangian \
-    -llagrangianIntermediate \
-    -llagrangianTurbulence \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
-    -lthermophysicalProperties \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lchemistryModel \
-    -lradiationModels \
-    -lODE \
     -lregionModels \
+    -lradiationModels \
     -lsurfaceFilmModels \
-    -lcombustionModels \
-    -lfvOptions \
-    -lsampling
+    -lsurfaceFilmDerivedFvPatchFields \
+    -llagrangian \
+    -llagrangianIntermediate \
+    -llagrangianTurbulence \
+    -lODE \
+    -lcombustionModels
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H
index bb7ad20efc6ac4cee78d04c241d53eea9235c605..0bb6ff7240431ad69ea2390aaeaa1df41869cf0a 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H
@@ -6,8 +6,7 @@
       + MRF.DDt(rho, U)
       + turbulence->divDevRhoReff(U)
      ==
-        rho()*g
-      + parcels.SU(U)
+        parcels.SU(U)
       + fvOptions(rho, U)
     );
 
@@ -17,7 +16,18 @@
 
     if (pimple.momentumPredictor())
     {
-        solve(UEqn == -fvc::grad(p));
+        solve
+        (
+            UEqn
+          ==
+            fvc::reconstruct
+            (
+                (
+                  - ghf*fvc::snGrad(rho)
+                  - fvc::snGrad(p_rgh)
+                )*mesh.magSf()
+            )
+        );
 
         fvOptions.correct(U);
         K = 0.5*magSqr(U);
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H
index 60a27fec85833d15116b0ac73b6e90bc9e6274d4..eb248990138b104aa3f8236c81af391cded3aba6 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/YEqn.H
@@ -9,6 +9,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
     )
 );
 
+
 {
     combustion->correct();
     Qdot = combustion->Qdot();
@@ -24,11 +25,12 @@ tmp<fv::convectionScheme<scalar>> mvConvection
             (
                 fvm::ddt(rho, Yi)
               + mvConvection->fvmDiv(phi, Yi)
-              - fvm::laplacian(turbulence->muEff(), Yi)
-             ==
+              - fvm::laplacian(turbulence->alphaEff(), Yi)
+              ==
                 parcels.SYi(i, Yi)
-              + combustion->R(Yi)
               + fvOptions(rho, Yi)
+              + combustion->R(Yi)
+              + surfaceFilm.Srho(i)
             );
 
             YEqn.relax();
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFieldRefs.H b/applications/solvers/lagrangian/reactingParcelFoam/createFieldRefs.H
index e7f76d8456e5f3de5fe7895dc6759cfa78e7a742..bbbc50c122eadccf3d5621c9193cd33f83c034bc 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/createFieldRefs.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createFieldRefs.H
@@ -1,3 +1,5 @@
+const label inertIndex(composition.species()[inertSpecie]);
+
 const volScalarField& T = thermo.T();
 const volScalarField& psi = thermo.psi();
-const label inertIndex(composition.species()[inertSpecie]);
+regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
index ce7e5441e0172d7ab2b1ee260d0b0136c2c7b3ca..b6673dae1651f829f280a27692dd6888e3b1dca7 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
@@ -1,7 +1,5 @@
 #include "createRDeltaT.H"
 
-#include "readGravitationalAcceleration.H"
-
 Info<< "Creating combustion model\n" << endl;
 
 autoPtr<combustionModels::rhoCombustionModel> combustion
@@ -26,8 +24,7 @@ if (!composition.species().found(inertSpecie))
         << exit(FatalIOError);
 }
 
-volScalarField& p = thermo.p();
-
+Info<< "Creating field rho\n" << endl;
 volScalarField rho
 (
     IOobject
@@ -41,6 +38,8 @@ volScalarField rho
     thermo.rho()
 );
 
+volScalarField& p = thermo.p();
+
 Info<< "\nReading field U\n" << endl;
 volVectorField U
 (
@@ -57,30 +56,6 @@ volVectorField U
 
 #include "compressibleCreatePhi.H"
 
-mesh.setFluxRequired(p.name());
-
-dimensionedScalar rhoMax
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMax",
-        pimple.dict(),
-        dimDensity,
-        GREAT
-    )
-);
-
-dimensionedScalar rhoMin
-(
-    dimensionedScalar::lookupOrDefault
-    (
-        "rhoMin",
-        pimple.dict(),
-        dimDensity,
-        0
-    )
-);
-
 Info<< "Creating turbulence model\n" << endl;
 autoPtr<compressible::turbulenceModel> turbulence
 (
@@ -96,6 +71,31 @@ autoPtr<compressible::turbulenceModel> turbulence
 // Set the turbulence into the combustion model
 combustion->setTurbulence(turbulence());
 
+#include "readGravitationalAcceleration.H"
+#include "readhRef.H"
+#include "gh.H"
+
+
+volScalarField p_rgh
+(
+    IOobject
+    (
+        "p_rgh",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
+
+// Force p_rgh to be consistent with p
+p_rgh = p - rho*gh;
+
+pressureControl pressureControl(p, rho, pimple.dict(), false);
+
+mesh.setFluxRequired(p_rgh.name());
+
 Info<< "Creating multi-variate interpolation scheme\n" << endl;
 multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
 
@@ -105,6 +105,11 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
+Switch solvePrimaryRegion
+(
+    pimple.dict().lookupOrDefault<Switch>("solvePrimaryRegion", true)
+);
+
 volScalarField Qdot
 (
     IOobject
@@ -126,3 +131,4 @@ volScalarField Qdot
 #include "createMRF.H"
 #include "createRadiationModel.H"
 #include "createClouds.H"
+#include "createSurfaceFilmModel.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createSurfaceFilmModel.H b/applications/solvers/lagrangian/reactingParcelFoam/createSurfaceFilmModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..81995c09a5612bdf8fd71b40497a986d11ab7ff1
--- /dev/null
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createSurfaceFilmModel.H
@@ -0,0 +1,6 @@
+Info<< "\nConstructing surface film model" << endl;
+
+autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
+(
+    regionModels::surfaceFilmModel::New(mesh, g)
+);
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H
index f2cb2947186adfcee7a90c18cbdcc63c2e8ff7fb..588273cf54393ae2cd8ad7fbd1ce4cbf76e39e10 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H
@@ -1,4 +1,7 @@
-rho = thermo.rho();
+if (!pimple.SIMPLErho())
+{
+    rho = thermo.rho();
+}
 
 // Thermodynamic density needs to be updated by psi*d(p) after the
 // pressure solution
@@ -7,6 +10,9 @@ const volScalarField psip0(psi*p);
 volScalarField rAU(1.0/UEqn.A());
 surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
 volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
+
+surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
+
 surfaceScalarField phiHbyA
 (
     "phiHbyA",
@@ -14,58 +20,68 @@ surfaceScalarField phiHbyA
         fvc::flux(rho*HbyA)
       + rhorAUf*fvc::ddtCorr(rho, U, phi)
     )
+  + phig
 );
 
 MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
 
 // Update the pressure BCs to ensure flux consistency
-constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
+constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
 
-fvScalarMatrix pDDtEqn
+fvScalarMatrix p_rghDDtEqn
 (
-    fvc::ddt(rho) + psi*correction(fvm::ddt(p))
+    fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
   + fvc::div(phiHbyA)
  ==
     parcels.Srho()
-  + fvOptions(psi, p, rho.name())
+  + surfaceFilm.Srho()
+  + fvOptions(psi, p_rgh, rho.name())
 );
 
 while (pimple.correctNonOrthogonal())
 {
-    fvScalarMatrix pEqn
+    fvScalarMatrix p_rghEqn
     (
-        pDDtEqn
-      - fvm::laplacian(rhorAUf, p)
+        p_rghDDtEqn
+      - fvm::laplacian(rhorAUf, p_rgh)
     );
 
-    pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+    p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
 
     if (pimple.finalNonOrthogonalIter())
     {
-        phi = phiHbyA + pEqn.flux();
+        phi = phiHbyA + p_rghEqn.flux();
+
+        // Explicitly relax pressure for momentum corrector
+        p_rgh.relax();
+
+        U = HbyA + rAU*fvc::reconstruct((p_rghEqn.flux() + phig)/rhorAUf);
+        U.correctBoundaryConditions();
+        fvOptions.correct(U);
+        K = 0.5*magSqr(U);
     }
 }
 
-p.relax();
+p = p_rgh + rho*gh;
 
 // Thermodynamic density update
 thermo.correctRho(psi*p - psip0);
 
-#include "rhoEqn.H" // NOTE: flux and time scales now inconsistent
+#include "rhoEqn.H"
 #include "compressibleContinuityErrs.H"
 
-U = HbyA - rAU*fvc::grad(p);
-U.correctBoundaryConditions();
-fvOptions.correct(U);
-K = 0.5*magSqr(U);
+if (pressureControl.limit(p))
+{
+    p.correctBoundaryConditions();
+    rho = thermo.rho();
+    p_rgh = p - rho*gh;
+}
+else if (pimple.SIMPLErho())
+{
+    rho = thermo.rho();
+}
 
 if (thermo.dpdt())
 {
     dpdt = fvc::ddt(p);
 }
-
-rho = thermo.rho();
-rho = max(rho, rhoMin);
-rho = min(rho, rhoMax);
-
-Info<< "p min/max = " << min(p).value() << ", " << max(p).value() << endl;
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
index 93768896b32c730bef0609780ea579963085a717..497aa835a574ba23a0d76530357bd05195fcd164 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.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
@@ -29,18 +29,20 @@ Group
 
 Description
     Transient solver for compressible, turbulent flow with a reacting,
-    multiphase particle cloud, and optional sources/constraints.
+    multiphase particle cloud, and surface film modelling.
 
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
 #include "turbulentFluidThermoModel.H"
 #include "basicReactingMultiphaseCloud.H"
+#include "surfaceFilmModel.H"
 #include "rhoCombustionModel.H"
 #include "radiationModel.H"
-#include "fvOptions.H"
 #include "SLGThermo.H"
+#include "fvOptions.H"
 #include "pimpleControl.H"
+#include "pressureControl.H"
 #include "localEulerDdtScheme.H"
 #include "fvcSmooth.H"
 
@@ -76,10 +78,14 @@ int main(int argc, char *argv[])
     {
         #include "readTimeControls.H"
 
-        if (!LTS)
+        if (LTS)
+        {
+            #include "setRDeltaT.H"
+        }
+        else
         {
             #include "compressibleCourantNo.H"
-            #include "setDeltaT.H"
+            #include "setMultiRegionDeltaT.H"
         }
 
         runTime++;
@@ -87,34 +93,36 @@ int main(int argc, char *argv[])
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
         parcels.evolve();
+        surfaceFilm.evolve();
 
-        if (LTS)
+        if (solvePrimaryRegion)
         {
-            #include "setRDeltaT.H"
-        }
-
-        #include "rhoEqn.H"
-
-        // --- Pressure-velocity PIMPLE corrector loop
-        while (pimple.loop())
-        {
-            #include "UEqn.H"
-            #include "YEqn.H"
-            #include "EEqn.H"
-
-            // --- Pressure corrector loop
-            while (pimple.correct())
+            if (pimple.nCorrPIMPLE() <= 1)
             {
-                #include "pEqn.H"
+                #include "rhoEqn.H"
             }
 
-            if (pimple.turbCorr())
+            // --- PIMPLE loop
+            while (pimple.loop())
             {
-                turbulence->correct();
+                #include "UEqn.H"
+                #include "YEqn.H"
+                #include "EEqn.H"
+
+                // --- Pressure corrector loop
+                while (pimple.correct())
+                {
+                    #include "pEqn.H"
+                }
+
+                if (pimple.turbCorr())
+                {
+                    turbulence->correct();
+                }
             }
-        }
 
-        rho = thermo.rho();
+            rho = thermo.rho();
+        }
 
         runTime.write();
 
@@ -123,7 +131,7 @@ int main(int argc, char *argv[])
             << nl << endl;
     }
 
-    Info<< "End\n" << endl;
+    Info<< "End" << endl;
 
     return 0;
 }
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/rhoEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/rhoEqn.H
index b69701e74333832055c13091ff156ea31c819a68..baf1cb4ec4878c8bb30002e94588ecb2d4edee5e 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/rhoEqn.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/rhoEqn.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
@@ -36,15 +36,13 @@ Description
       + fvc::div(phi)
       ==
         parcels.Srho(rho)
+      + surfaceFilm.Srho()
       + fvOptions(rho)
     );
 
     rhoEqn.solve();
 
     fvOptions.correct(rho);
-
-    Info<< "rho min/max = " << min(rho).value() << ", " << max(rho).value()
-        << endl;
 }
 
 // ************************************************************************* //
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/setMultiRegionDeltaT.H b/applications/solvers/lagrangian/reactingParcelFoam/setMultiRegionDeltaT.H
similarity index 79%
rename from applications/solvers/lagrangian/reactingParcelFilmFoam/setMultiRegionDeltaT.H
rename to applications/solvers/lagrangian/reactingParcelFoam/setMultiRegionDeltaT.H
index 76d08256eb4eb09b752912d77042d98caba79bb9..a61829a6be791f01979eb9850e8671a2c44fba51 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/setMultiRegionDeltaT.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/setMultiRegionDeltaT.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
@@ -33,25 +33,21 @@ Description
 
 if (adjustTimeStep)
 {
-    if (CoNum == -GREAT)
-    {
-        CoNum = SMALL;
-    }
-
-    const scalar TFactorFluid = maxCo/(CoNum + SMALL);
-    const scalar TFactorFilm = maxCo/(surfaceFilm.CourantNumber() + SMALL);
-
-    const scalar dt0 = runTime.deltaTValue();
+    const scalar maxDeltaTFact =
+        min(maxCo/(CoNum + SMALL), maxCo/(surfaceFilm.CourantNumber() + SMALL));
+    const scalar deltaTFact =
+        min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2);
 
     runTime.setDeltaT
     (
         min
         (
-            dt0*min(min(TFactorFluid, TFactorFilm), 1.2),
+            deltaTFact*runTime.deltaTValue(),
             maxDeltaT
         )
     );
-}
 
+    Info<< "deltaT = " <<  runTime.deltaTValue() << endl;
+}
 
 // ************************************************************************* //
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
index bbec4a41ab9062ac64daa3258e8f8bad7b3169b0..a5092143a95af4ef699330b442addedee2bad734 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/simpleReactingParcelFoam.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
@@ -24,9 +24,6 @@ License
 Application
     simpleReactingParcelFoam
 
-Group
-    grpLagrangianSolvers
-
 Description
     Steady state solver for compressible, turbulent flow with reacting,
     multiphase particle clouds and optional sources/constraints.
@@ -38,6 +35,7 @@ Description
 #include "basicReactingMultiphaseCloud.H"
 #include "rhoCombustionModel.H"
 #include "radiationModel.H"
+#include "IOporosityModelList.H"
 #include "fvOptions.H"
 #include "SLGThermo.H"
 #include "simpleControl.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H b/applications/solvers/lagrangian/sprayFoam/EEqn.H
similarity index 90%
rename from applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
rename to applications/solvers/lagrangian/sprayFoam/EEqn.H
index 4d112da030fc2582f9cf4a871acf1ad7708d83ed..42185b8afb2332149626b786066ff9d4cf01c716 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/EEqn.H
+++ b/applications/solvers/lagrangian/sprayFoam/EEqn.H
@@ -19,7 +19,6 @@
      ==
         rho*(U&g)
       + parcels.Sh(he)
-      + surfaceFilm.Sh()
       + radiation->Sh(thermo, he)
       + Qdot
       + fvOptions(rho, he)
@@ -36,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/reactingParcelFilmFoam/YEqn.H b/applications/solvers/lagrangian/sprayFoam/YEqn.H
similarity index 89%
rename from applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H
rename to applications/solvers/lagrangian/sprayFoam/YEqn.H
index eb248990138b104aa3f8236c81af391cded3aba6..60a27fec85833d15116b0ac73b6e90bc9e6274d4 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/YEqn.H
+++ b/applications/solvers/lagrangian/sprayFoam/YEqn.H
@@ -9,7 +9,6 @@ tmp<fv::convectionScheme<scalar>> mvConvection
     )
 );
 
-
 {
     combustion->correct();
     Qdot = combustion->Qdot();
@@ -25,12 +24,11 @@ tmp<fv::convectionScheme<scalar>> mvConvection
             (
                 fvm::ddt(rho, Yi)
               + mvConvection->fvmDiv(phi, Yi)
-              - fvm::laplacian(turbulence->alphaEff(), Yi)
-              ==
+              - fvm::laplacian(turbulence->muEff(), Yi)
+             ==
                 parcels.SYi(i, Yi)
-              + fvOptions(rho, Yi)
               + combustion->R(Yi)
-              + surfaceFilm.Srho(i)
+              + fvOptions(rho, Yi)
             );
 
             YEqn.relax();
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFieldRefs.H b/applications/solvers/lagrangian/sprayFoam/createFieldRefs.H
similarity index 75%
rename from applications/solvers/lagrangian/reactingParcelFilmFoam/createFieldRefs.H
rename to applications/solvers/lagrangian/sprayFoam/createFieldRefs.H
index 14914688ca14f4943fbfcfc4925c53afa0b8e653..e7f76d8456e5f3de5fe7895dc6759cfa78e7a742 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFieldRefs.H
+++ b/applications/solvers/lagrangian/sprayFoam/createFieldRefs.H
@@ -1,5 +1,3 @@
-const label inertIndex(composition.species()[inertSpecie]);
-
 const volScalarField& T = thermo.T();
 const volScalarField& psi = thermo.psi();
-filmModelType& surfaceFilm = tsurfaceFilm();
+const label inertIndex(composition.species()[inertSpecie]);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.C
index d6db2239a5e85aec77712b9d86d0d895ae0018b4..b3a646e93b9f96a78afb8932c827a3e2f8706018 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.C
@@ -45,7 +45,7 @@ addToRunTimeSelectionTable(transferModel, VoFPatchTransfer, dictionary);
 
 VoFPatchTransfer::VoFPatchTransfer
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.H
index 4ad8817c6bc6de55c1323fae5aec50517aea9aa0..f521672bb724f095f4446d99ffa1c8b0f5d83915 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFPatchTransfer/VoFPatchTransfer.H
@@ -98,7 +98,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        VoFPatchTransfer(surfaceFilmModel& film, const dictionary& dict);
+        VoFPatchTransfer(surfaceFilmRegionModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/compressibleInterFilmFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/compressibleInterFilmFoam.C
index 6241555c4297da5c0904c6d45550ee37a0694cc1..bc30ed8f603b584c5f3732662aab7ff6ba76d64c 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/compressibleInterFilmFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/compressibleInterFilmFoam.C
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
     const volScalarField& psi1 = mixture.thermo1().psi();
     const volScalarField& psi2 = mixture.thermo2().psi();
 
-    filmModelType& surfaceFilm = tsurfaceFilm();
+    regionModels::surfaceFilmModel& surfaceFilm = tsurfaceFilm();
 
     turbulence->validate();
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/createSurfaceFilmModel.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/createSurfaceFilmModel.H
index ddb05b3b034d73313c76d6c09bdf297323bde810..1d452e754944d7db2c1943ac79acf7256089e7b7 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/createSurfaceFilmModel.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/createSurfaceFilmModel.H
@@ -1,6 +1,7 @@
 Info<< "\nConstructing surface film model" << endl;
 
-typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
-
 SLGThermo slgThermo(mesh, mixture.thermo1());
-autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
+autoPtr<regionModels::surfaceFilmModel> tsurfaceFilm
+(
+    regionModels::surfaceFilmModel::New(mesh, g)
+);
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
index eb8fc4416fa91806d8660e9dc786554e4d17cd30..eea2b1fee128b438bad5df8209fddbe646026302 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
@@ -24,7 +24,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "SurfaceFilmModel.H"
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 #include "mathematicalConstants.H"
 
 using namespace Foam::constant;
@@ -109,9 +109,9 @@ void Foam::SurfaceFilmModel<CloudType>::inject(TrackData& td)
     }
 
     // Retrieve the film model from the owner database
-    const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel =
+    const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel =
         this->owner().mesh().time().objectRegistry::template lookupObject
-        <regionModels::surfaceFilmModels::surfaceFilmModel>
+        <regionModels::surfaceFilmModels::surfaceFilmRegionModel>
         (
             "surfaceFilmProperties"
         );
@@ -190,7 +190,7 @@ void Foam::SurfaceFilmModel<CloudType>::cacheFilmFields
 (
     const label filmPatchi,
     const label primaryPatchi,
-    const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel
+    const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel
 )
 {
     massParcelPatch_ = filmModel.cloudMassTrans().boundaryField()[filmPatchi];
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
index b6628058ac2016acc657e53cf61aaa1fe357df68..691bbfb97f1e6e3e1edec9c0d09cc57933304a39 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.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
@@ -54,7 +54,7 @@ namespace regionModels
 {
     namespace surfaceFilmModels
     {
-        class surfaceFilmModel;
+        class surfaceFilmRegionModel;
     }
 }
 
@@ -117,7 +117,7 @@ protected:
         (
             const label filmPatchi,
             const label primaryPatchi,
-            const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel
+            const regionModels::surfaceFilmModels::surfaceFilmRegionModel&
         );
 
         //- Set the individual parcel properties
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
index 0cb1d22242e71472e23d6f692ef7b2797f13bb8b..87185c7d0a6600f5fdd9c3e62f7d6e82c85e23ed 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
@@ -1,4 +1,4 @@
-/*---------------------------------------------------------------------------*\
+/*---------------------------------------------------------------------------* \
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
@@ -128,7 +128,7 @@ Foam::vector Foam::ThermoSurfaceFilm<CloudType>::splashDirection
 template<class CloudType>
 void Foam::ThermoSurfaceFilm<CloudType>::absorbInteraction
 (
-    regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+    regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
     const parcelType& p,
     const polyPatch& pp,
     const label facei,
@@ -205,7 +205,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::bounceInteraction
 template<class CloudType>
 void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
 (
-    regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+    regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
     const parcelType& p,
     const polyPatch& pp,
     const label facei,
@@ -261,7 +261,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::drySplashInteraction
 template<class CloudType>
 void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
 (
-    regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+    regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
     parcelType& p,
     const polyPatch& pp,
     const label facei,
@@ -338,7 +338,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::wetSplashInteraction
 template<class CloudType>
 void Foam::ThermoSurfaceFilm<CloudType>::splashInteraction
 (
-    regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+    regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel,
     const parcelType& p,
     const polyPatch& pp,
     const label facei,
@@ -556,11 +556,12 @@ bool Foam::ThermoSurfaceFilm<CloudType>::transferParcel
 )
 {
     // Retrieve the film model from the owner database
-    regionModels::surfaceFilmModels::surfaceFilmModel& filmModel =
-        const_cast<regionModels::surfaceFilmModels::surfaceFilmModel&>
+    regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel =
+        const_cast<regionModels::surfaceFilmModels::surfaceFilmRegionModel&>
         (
             this->owner().db().time().objectRegistry::template
-                lookupObject<regionModels::surfaceFilmModels::surfaceFilmModel>
+                lookupObject
+                <regionModels::surfaceFilmModels::surfaceFilmRegionModel>
                 (
                     "surfaceFilmProperties"
                 )
@@ -624,7 +625,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::cacheFilmFields
 (
     const label filmPatchi,
     const label primaryPatchi,
-    const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel
+    const regionModels::surfaceFilmModels::surfaceFilmRegionModel& filmModel
 )
 {
     SurfaceFilmModel<CloudType>::cacheFilmFields
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
index fd2fb238c91ba4b51caf65741c9fa1a2b570fbbd..9b56946981550eabee87dde42a97b4bf2fd10585 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
@@ -171,7 +171,7 @@ protected:
             //- Absorb parcel into film
             void absorbInteraction
             (
-                regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+                regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
                 const parcelType& p,
                 const polyPatch& pp,
                 const label facei,
@@ -191,7 +191,7 @@ protected:
             //- Parcel interaction with dry surface
             void drySplashInteraction
             (
-                regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+                regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
                 const parcelType& p,
                 const polyPatch& pp,
                 const label facei,
@@ -201,7 +201,7 @@ protected:
             //- Parcel interaction with wetted surface
             void wetSplashInteraction
             (
-                regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+                regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
                 parcelType& p,
                 const polyPatch& pp,
                 const label facei,
@@ -211,7 +211,7 @@ protected:
             //- Bai parcel splash interaction model
             void splashInteraction
             (
-                regionModels::surfaceFilmModels::surfaceFilmModel& filmModel,
+                regionModels::surfaceFilmModels::surfaceFilmRegionModel&,
                 const parcelType& p,
                 const polyPatch& pp,
                 const label facei,
@@ -230,7 +230,7 @@ protected:
             (
                 const label filmPatchi,
                 const label primaryPatchi,
-                const regionModels::surfaceFilmModels::surfaceFilmModel&
+                const regionModels::surfaceFilmModels::surfaceFilmRegionModel&
                     filmModel
             );
 
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
index b2cd87b200e363e39e49ebb24a1576e066dd10c7..3616268333ec686a9de755347975c484a0c08f18 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
@@ -27,7 +27,7 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "surfaceFields.H"
 #include "pyrolysisModel.H"
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -123,7 +123,9 @@ void Foam::filmPyrolysisTemperatureCoupledFvPatchScalarField::updateCoeffs()
         return;
     }
 
-    typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
+    typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel
+        filmModelType;
+
     typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType;
 
     // Since we're inside initEvaluate/evaluate there might be processor
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
index b88f3d57d8be1a9a7779c64c0de36b12692d9170..c5507e06a22385b35f803aff68434ad3a9e8d7c8 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
@@ -27,7 +27,7 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "surfaceFields.H"
 #include "pyrolysisModel.H"
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -123,7 +123,9 @@ void Foam::filmPyrolysisVelocityCoupledFvPatchVectorField::updateCoeffs()
         return;
     }
 
-    typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
+    typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel
+        filmModelType;
+
     typedef regionModels::pyrolysisModels::pyrolysisModel pyrModelType;
 
     // Since we're inside initEvaluate/evaluate there might be processor
diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files
index c78c93da879a3d6ad760319a2d944159fb191bba..375ca366797c4ce4ecaad235a4fe715ad10a7598 100644
--- a/src/regionModels/surfaceFilmModels/Make/files
+++ b/src/regionModels/surfaceFilmModels/Make/files
@@ -1,6 +1,7 @@
 /* Surface film models */
 surfaceFilmModel/surfaceFilmModel.C
 surfaceFilmModel/surfaceFilmModelNew.C
+surfaceFilmRegionModel/surfaceFilmRegionModel.C
 noFilm/noFilm.C
 kinematicSingleLayer/kinematicSingleLayer.C
 thermoSingleLayer/thermoSingleLayer.C
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C
index cc7c60f985f015034fe976363c97883c519e7154..09e76db86e9367bfddafbad1a8ae539fdd48e4b7 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.C
@@ -25,7 +25,7 @@ License
 
 #include "alphatFilmWallFunctionFvPatchScalarField.H"
 #include "turbulentFluidThermoModel.H"
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
 #include "addToRunTimeSelectionTable.H"
@@ -142,7 +142,7 @@ void alphatFilmWallFunctionFvPatchScalarField::updateCoeffs()
         return;
     }
 
-    typedef regionModels::surfaceFilmModels::surfaceFilmModel modelType;
+    typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel modelType;
 
     // Since we're inside initEvaluate/evaluate there might be processor
     // comms underway. Change the tag we use.
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C
index 22ede927ceaa734847803077b6e96707d57bc4d2..b35804673e4428ced356ea4720822686323987cd 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/nutkFilmWallFunction/nutkFilmWallFunctionFvPatchScalarField.C
@@ -28,7 +28,7 @@ License
 #include "volFields.H"
 #include "turbulentFluidThermoModel.H"
 #include "addToRunTimeSelectionTable.H"
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 #include "mappedWallPolyPatch.H"
 #include "mapDistribute.H"
 
@@ -51,7 +51,7 @@ tmp<scalarField> nutkFilmWallFunctionFvPatchScalarField::calcUTau
     tmp<scalarField> tuTau(new scalarField(patch().size(), 0.0));
     scalarField& uTau = tuTau.ref();
 
-    typedef regionModels::surfaceFilmModels::surfaceFilmModel modelType;
+    typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel modelType;
 
     bool foundFilm = db().time().foundObject<modelType>(filmRegionName_);
 
diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C
index 256181610cccfd0211905e2fe1ffe204bdc0e215..adf0bf366dbf56e71d79b3c11a3134da1223869c 100644
--- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C
+++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C
@@ -49,13 +49,13 @@ namespace surfaceFilmModels
 
 defineTypeNameAndDebug(kinematicSingleLayer, 0);
 
-addToRunTimeSelectionTable(surfaceFilmModel, kinematicSingleLayer, mesh);
+addToRunTimeSelectionTable(surfaceFilmRegionModel, kinematicSingleLayer, mesh);
 
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
 bool kinematicSingleLayer::read()
 {
-    if (surfaceFilmModel::read())
+    if (surfaceFilmRegionModel::read())
     {
         const dictionary& solution = this->solution().subDict("PISO");
         solution.lookup("momentumPredictor") >> momentumPredictor_;
@@ -458,7 +458,7 @@ kinematicSingleLayer::kinematicSingleLayer
     const bool readFields
 )
 :
-    surfaceFilmModel(modelType, mesh, g, regionType),
+    surfaceFilmRegionModel(modelType, mesh, g, regionType),
 
     momentumPredictor_(solution().subDict("PISO").lookup("momentumPredictor")),
     nOuterCorr_(solution().subDict("PISO").lookupOrDefault("nOuterCorr", 1)),
@@ -880,7 +880,7 @@ void kinematicSingleLayer::preEvolveRegion()
         InfoInFunction << endl;
     }
 
-    surfaceFilmModel::preEvolveRegion();
+    surfaceFilmRegionModel::preEvolveRegion();
 
     transferPrimaryRegionThermoFields();
 
diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H
index d90dddbf71552d5dadfc9e9699ad729e0b9cf57f..ba9940d1effe8edeb9c850b5dd732b24c40405ee 100644
--- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H
+++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H
@@ -35,7 +35,7 @@ SourceFiles
 #ifndef kinematicSingleLayer_H
 #define kinematicSingleLayer_H
 
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 #include "fvMesh.H"
 #include "volFields.H"
 #include "surfaceFields.H"
@@ -64,7 +64,7 @@ class filmThermoModel;
 
 class kinematicSingleLayer
 :
-    public surfaceFilmModel
+    public surfaceFilmRegionModel
 {
 private:
 
diff --git a/src/regionModels/surfaceFilmModels/noFilm/noFilm.C b/src/regionModels/surfaceFilmModels/noFilm/noFilm.C
index 6082dc4950bc56b0bb53df02c643aba9c976d503..1669431b2da647665ff0a6353e68a5bf9d411e22 100644
--- a/src/regionModels/surfaceFilmModels/noFilm/noFilm.C
+++ b/src/regionModels/surfaceFilmModels/noFilm/noFilm.C
@@ -41,23 +41,6 @@ namespace surfaceFilmModels
 defineTypeNameAndDebug(noFilm, 0);
 addToRunTimeSelectionTable(surfaceFilmModel, noFilm, mesh);
 
-
-// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
-
-bool noFilm::read()
-{
-    if (surfaceFilmModel::read())
-    {
-        // no additional info to read
-        return true;
-    }
-    else
-    {
-        return false;
-    }
-}
-
-
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 noFilm::noFilm
@@ -68,7 +51,8 @@ noFilm::noFilm
     const word& regionType
 )
 :
-    surfaceFilmModel(modelType, mesh, g, regionType)
+    surfaceFilmModel(),
+    mesh_(mesh)
 {}
 
 
@@ -80,174 +64,9 @@ noFilm::~noFilm()
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-void noFilm::addSources
-(
-    const label,
-    const label,
-    const scalar,
-    const vector&,
-    const scalar,
-    const scalar
-)
-{}
-
-
-const volScalarField& noFilm::delta() const
-{
-    FatalErrorInFunction
-        << "delta field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::alpha() const
-{
-    FatalErrorInFunction
-        << "alpha field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volVectorField& noFilm::U() const
-{
-    FatalErrorInFunction
-        << "U field not available for " << type() << abort(FatalError);
-
-    return volVectorField::null();
-}
-
-
-const volVectorField& noFilm::Us() const
-{
-    FatalErrorInFunction
-        << "Us field not available for " << type() << abort(FatalError);
-
-    return volVectorField::null();
-}
-
-
-const volVectorField& noFilm::Uw() const
-{
-    FatalErrorInFunction
-        << "Uw field not available for " << type() << abort(FatalError);
-
-    return volVectorField::null();
-}
-
-
-const volScalarField& noFilm::rho() const
-{
-    FatalErrorInFunction
-        << "rho field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::T() const
-{
-    FatalErrorInFunction
-        << "T field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::Ts() const
-{
-    FatalErrorInFunction
-        << "Ts field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::Tw() const
-{
-    FatalErrorInFunction
-        << "Tw field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::hs() const
-{
-    FatalErrorInFunction
-        << "hs field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::Cp() const
-{
-    FatalErrorInFunction
-        << "Cp field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::kappa() const
-{
-    FatalErrorInFunction
-        << "kappa field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::sigma() const
-{
-    FatalErrorInFunction
-        << "sigma field not available for " << type() << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-tmp<volScalarField> noFilm::primaryMassTrans() const
+Foam::scalar noFilm::CourantNumber() const
 {
-    return tmp<volScalarField>
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                "noFilm::primaryMassTrans",
-                time().timeName(),
-                primaryMesh(),
-                IOobject::NO_READ,
-                IOobject::NO_WRITE,
-                false
-            ),
-            primaryMesh(),
-            dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
-        )
-    );
-}
-
-
-const volScalarField& noFilm::cloudMassTrans() const
-{
-    FatalErrorInFunction
-        << "cloudMassTrans field not available for " << type()
-        << abort(FatalError);
-
-    return volScalarField::null();
-}
-
-
-const volScalarField& noFilm::cloudDiameterTrans() const
-{
-    FatalErrorInFunction
-        << "cloudDiameterTrans field not available for " << type()
-        << abort(FatalError);
-
-    return volScalarField::null();
+    return 0;
 }
 
 
@@ -260,13 +79,13 @@ tmp<volScalarField::Internal> noFilm::Srho() const
             IOobject
             (
                 "noFilm::Srho",
-                time().timeName(),
-                primaryMesh(),
+                mesh_.time().timeName(),
+                mesh_,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
             ),
-            primaryMesh(),
+            mesh_,
             dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
         )
     );
@@ -282,13 +101,13 @@ tmp<volScalarField::Internal> noFilm::Srho(const label i) const
             IOobject
             (
                 "noFilm::Srho(" + Foam::name(i) + ")",
-                time().timeName(),
-                primaryMesh(),
+                mesh_.time().timeName(),
+                mesh_,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
             ),
-            primaryMesh(),
+            mesh_,
             dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
         )
     );
@@ -304,19 +123,23 @@ tmp<volScalarField::Internal> noFilm::Sh() const
             IOobject
             (
                 "noFilm::Sh",
-                time().timeName(),
-                primaryMesh(),
+                mesh_.time().timeName(),
+                mesh_,
                 IOobject::NO_READ,
                 IOobject::NO_WRITE,
                 false
             ),
-            primaryMesh(),
+            mesh_,
             dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0)
         )
     );
 }
 
 
+void noFilm::evolve()
+{}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace surfaceFilmModels
diff --git a/src/regionModels/surfaceFilmModels/noFilm/noFilm.H b/src/regionModels/surfaceFilmModels/noFilm/noFilm.H
index 9bc2e39e3987a6d7006c7294cd7225fbbd9c033d..ce1fd77b69fea4cebbc38ab41bf2eb81ea1c5cc4 100644
--- a/src/regionModels/surfaceFilmModels/noFilm/noFilm.H
+++ b/src/regionModels/surfaceFilmModels/noFilm/noFilm.H
@@ -25,7 +25,8 @@ Class
     Foam::regionModels::surfaceFilmModels::noFilm
 
 Description
-    Dummy surface film model for 'none'
+    Dummy surfaceFilmModel to allow solvers supporting film simulations to be
+    run without a film region.
 
 SourceFiles
     noFilm.C
@@ -54,7 +55,11 @@ class noFilm
 :
     public surfaceFilmModel
 {
-private:
+    // Private member data
+
+        //- Reference to the mesh
+        const fvMesh& mesh_;
+
 
     // Private member functions
 
@@ -65,14 +70,6 @@ private:
         void operator=(const noFilm&);
 
 
-protected:
-
-    // Protected member functions
-
-        //- Read control parameters from dictionary
-        virtual bool read();
-
-
 public:
 
     //- Runtime type information
@@ -97,89 +94,31 @@ public:
 
     // Member Functions
 
-        // Access
-
-            //- External hook to add sources to the film
-            virtual void addSources
-            (
-                const label patchi,
-                const label facei,
-                const scalar massSource,
-                const vector& momentumSource,
-                const scalar pressureSource,
-                const scalar energySource
-            );
-
-
-        // Fields
-
-            //- Return the film thickness [m]
-            virtual const volScalarField& delta() const;
-
-            //- Return the film coverage, 1 = covered, 0 = uncovered / []
-            virtual const volScalarField& alpha() const;
-
-            //- Return the film velocity [m/s]
-            virtual const volVectorField& U() const;
+        // Solution parameters
 
-            //- Return the film density [kg/m3]
-            virtual const volScalarField& rho() const;
+            //- Courant number evaluation
+            virtual scalar CourantNumber() const;
 
-            //- Return the film surface velocity [m/s]
-            virtual const volVectorField& Us() const;
 
-            //- Return the film wall velocity [m/s]
-            virtual const volVectorField& Uw() const;
+        // Primary region source fields
 
-            //- Return the film mean temperature [K]
-            virtual const volScalarField& T() const;
+            //- Return total mass source - Eulerian phase only
+            virtual tmp<volScalarField::Internal> Srho() const;
 
-            //- Return the film surface temperature [K]
-            virtual const volScalarField& Ts() const;
-
-            //- Return the film wall temperature [K]
-            virtual const volScalarField& Tw() const;
-
-            //- Return the film surface enthalpy [J/kg]
-            virtual const volScalarField& hs() const;
-
-            //- Return the film specific heat capacity [J/kg/K]
-            virtual const volScalarField& Cp() const;
-
-            //- Return the film thermal conductivity [W/m/K]
-            virtual const volScalarField& kappa() const;
-
-            //- Return const access to the surface tension / [m/s2]
-            inline const volScalarField& sigma() const;
-
-
-            // Transfer fields - to the primary region
-
-                //- Return mass transfer source - Eulerian phase only
-                virtual tmp<volScalarField> primaryMassTrans() const;
-
-                //- Return the film mass available for transfer
-                virtual const volScalarField& cloudMassTrans() const;
-
-                //- Return the parcel diameters originating from film
-                virtual const volScalarField& cloudDiameterTrans() const;
-
-
-        // Source fields
+            //- Return mass source for specie i - Eulerian phase only
+            virtual tmp<volScalarField::Internal> Srho
+            (
+                const label i
+            ) const;
 
-            // Mapped into primary region
+            //- Return enthalpy source - Eulerian phase only
+            virtual tmp<volScalarField::Internal> Sh() const;
 
-                //- Return total mass source - Eulerian phase only
-                virtual tmp<volScalarField::Internal> Srho() const;
 
-                //- Return mass source for specie i - Eulerian phase only
-                virtual tmp<volScalarField::Internal> Srho
-                (
-                    const label i
-                ) const;
+        // Evolution
 
-                //- Return enthalpy source - Eulerian phase only
-                virtual tmp<volScalarField::Internal> Sh() const;
+            //- Main driver routing to evolve the region - calls other evolves
+            virtual void evolve();
 };
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
index 479836a93a6be6b3ffef8557774e340ee2480a15..fbbc7626514c6b380a6a504e4a69fd79e7ec8bc4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
@@ -36,7 +36,7 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmSubModelBase::filmSubModelBase(surfaceFilmModel& film)
+filmSubModelBase::filmSubModelBase(surfaceFilmRegionModel& film)
 :
     subModelBase(film.outputProperties()),
     filmModel_(film)
@@ -45,7 +45,7 @@ filmSubModelBase::filmSubModelBase(surfaceFilmModel& film)
 
 filmSubModelBase::filmSubModelBase
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     const word& baseName,
     const word& modelType,
@@ -67,7 +67,7 @@ filmSubModelBase::filmSubModelBase
 filmSubModelBase::filmSubModelBase
 (
     const word& modelName,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     const word& baseName,
     const word& modelType
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
index 8d4cfd54c5d47255037832fa1a5895f06fd2db1a..53addf7af474eb364a92faaf24fc554d098143d5 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
@@ -36,7 +36,7 @@ SourceFiles
 #ifndef filmSubModelBase_H
 #define filmSubModelBase_H
 
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 #include "subModelBase.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -61,7 +61,7 @@ protected:
     // Protected data
 
         //- Reference to the film surface film model
-        surfaceFilmModel& filmModel_;
+        surfaceFilmRegionModel& filmModel_;
 
 
 public:
@@ -69,12 +69,12 @@ public:
     // Constructors
 
         //- Construct null
-        filmSubModelBase(surfaceFilmModel& film);
+        filmSubModelBase(surfaceFilmRegionModel& film);
 
         //- Construct from film film wihout name
         filmSubModelBase
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict,
             const word& baseName,
             const word& modelType,
@@ -85,7 +85,7 @@ public:
         filmSubModelBase
         (
             const word& modelName,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict,
             const word& baseName,
             const word& modelType
@@ -104,10 +104,10 @@ public:
             virtual bool writeTime() const;
 
             //- Return const access to the film surface film model
-            inline const surfaceFilmModel& film() const;
+            inline const surfaceFilmRegionModel& film() const;
 
             //- Return the reference to the film surface film model
-            inline surfaceFilmModel& film();
+            inline surfaceFilmRegionModel& 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 2dced7e4f504ccd7a9a84df7e5c28aad82d293fe..3a50a0c16b8d83c618bf6f7b1dcd4a86d13fcc5b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseI.H
@@ -34,13 +34,13 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-inline const surfaceFilmModel& filmSubModelBase::film() const
+inline const surfaceFilmRegionModel& filmSubModelBase::film() const
 {
     return filmModel_;
 }
 
 
-inline surfaceFilmModel& filmSubModelBase::film()
+inline surfaceFilmRegionModel& filmSubModelBase::film()
 {
     return filmModel_;
 }
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
index bae1439ce3384acad5d7d1a14037506c704c04d9..05a6a92458d8176f6cd445ffad394876067a1271 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.C
@@ -61,7 +61,7 @@ void constantFilmThermo::init(thermoData& td)
 
 constantFilmThermo::constantFilmThermo
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
index eed60f09e0e34cd0b5c506ad73b23d437e8a0629..0156fc1fd9d81d43255510d45058b47c1da9353a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/constantFilmThermo/constantFilmThermo.H
@@ -140,7 +140,7 @@ public:
         //- Construct from surface film model and dictionary
         constantFilmThermo
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 f11b3399aa871b6bd3040c551f51bd52411e792a..8738776db44450cce58268ef3102f22b0342eceb 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.C
@@ -43,7 +43,7 @@ defineRunTimeSelectionTable(filmThermoModel, dictionary);
 
 filmThermoModel::filmThermoModel
 (
-    surfaceFilmModel& film
+    surfaceFilmRegionModel& film
 )
 :
     filmSubModelBase(film)
@@ -53,7 +53,7 @@ filmThermoModel::filmThermoModel
 filmThermoModel::filmThermoModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
index efa1de6517150f24f97f384eb7b61cb87f44d4a4..b54af005a3518a4011c31d2ee0aebc9fee3b7298 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModel.H
@@ -81,7 +81,7 @@ public:
              filmThermoModel,
              dictionary,
              (
-                 surfaceFilmModel& film,
+                 surfaceFilmRegionModel& film,
                  const dictionary& dict
              ),
              (film, dict)
@@ -90,13 +90,13 @@ public:
     // Constructors
 
         //- Construct null
-        filmThermoModel(surfaceFilmModel& film);
+        filmThermoModel(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmThermoModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmThermoModel> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModelNew.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModelNew.C
index 8b36192035c506f11292e13fe444a930f2625375..03ec62d02d36d82392aa8343c1d02a5ca942c302 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/filmThermoModel/filmThermoModelNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<filmThermoModel> filmThermoModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     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 af11a6986837d81e47b91076b3781ad1ab9fedec..fd43ba81e9b81cf901f9dab163b4aa3ca1079a14 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.C
@@ -103,7 +103,7 @@ void liquidFilmThermo::initLiquid(const dictionary& dict)
 
 liquidFilmThermo::liquidFilmThermo
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
index 4b3b2b9ae6d98a163cf02831f62b8dab3655a6b8..336d35843da26b2bc1734f6598bc59d0347f1d6e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmThermoModel/liquidFilmThermo/liquidFilmThermo.H
@@ -107,7 +107,7 @@ public:
         //- Construct from surface film model and dictionary
         liquidFilmThermo
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 90e1df57803373fd9b70b83887e76c3b9fc3dac6..94cfaea340a6f51ec0ddd85347314d8fa3cd3118 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C
@@ -41,7 +41,7 @@ defineRunTimeSelectionTable(filmTurbulenceModel, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film)
+filmTurbulenceModel::filmTurbulenceModel(surfaceFilmRegionModel& film)
 :
     filmSubModelBase(film)
 {}
@@ -50,7 +50,7 @@ filmTurbulenceModel::filmTurbulenceModel(surfaceFilmModel& film)
 filmTurbulenceModel::filmTurbulenceModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
index cb35b71f90d91fdce31f48941d66941799132b13..0b56b56ef62315f4d5ed3c9deacefade7d7706f0 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.H
@@ -83,7 +83,7 @@ public:
              filmTurbulenceModel,
              dictionary,
              (
-                surfaceFilmModel& film,
+                surfaceFilmRegionModel& film,
                 const dictionary& dict
              ),
              (film, dict)
@@ -92,13 +92,13 @@ public:
     // Constructors
 
         //- Construct null
-        filmTurbulenceModel(surfaceFilmModel& film);
+        filmTurbulenceModel(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmTurbulenceModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -108,7 +108,7 @@ public:
         //- Return a reference to the selected injection model
         static autoPtr<filmTurbulenceModel> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModelNew.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModelNew.C
index a27014fc3feeb4ba1ed90c43528cdceb5a06f654..2f2e02857b4e368ab9d0b222105fda8c005e7d27 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModelNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<filmTurbulenceModel> filmTurbulenceModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     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 3f2cbd6680ae99c5345e6148d27f8a80652b7813..11168b00282763516a1a627f3874e81e30c911ec 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable(filmTurbulenceModel, laminar, dictionary);
 
 laminar::laminar
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
index 71aa54c1e970dd5e9a403791f7c837827c685bfe..315922c591c762357511d14f331fade466d9934c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
@@ -80,7 +80,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        laminar(surfaceFilmModel& film, const dictionary& dict);
+        laminar(surfaceFilmRegionModel& 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 197880fe9d264aaecad75aaad87c17808318c574..c337c181ecd43620656445715904a43188cb9935 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/contactAngleForce/contactAngleForce.C
@@ -95,7 +95,7 @@ void contactAngleForce::initialise()
 contactAngleForce::contactAngleForce
 (
     const word& typeName,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
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 4d2e86e174f4887837f95532c749adec90e9fd7d..3637959658f7aa90bdd9c97cea1aa2c5b5bbaa09 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& film,
+            surfaceFilmRegionModel& 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 bcf86c018d7ec61bb64be59c1dd46d6168f65520..842fb3a6bfff517efaefa953c4f7b217d55fc2d2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.C
@@ -45,7 +45,7 @@ addToRunTimeSelectionTable(force, distributionContactAngleForce, dictionary);
 
 distributionContactAngleForce::distributionContactAngleForce
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
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 48ffcf5da8d6ac242021c988681c448a2ff3622d..8e98ae99dca851265bcf80f5ad0022b9541d2d43 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/distribution/distributionContactAngleForce.H
@@ -95,7 +95,7 @@ public:
         //- Construct from surface film model
         distributionContactAngleForce
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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
index e42d52007405571499c26eb35b9224be982e8d65..5aaf1d6886b8ee512f0cba43ed7035771a5e07a2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 perturbedTemperatureDependentContactAngleForce::
 perturbedTemperatureDependentContactAngleForce
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H
index 3b7a2d99ed43713f5a4193b6d5c2ee23e720d4c4..63924ff5da00c0ae75bf969ffced59a8f622f143 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/perturbedTemperatureDependent/perturbedTemperatureDependentContactAngleForce.H
@@ -111,7 +111,7 @@ public:
         //- Construct from surface film model
         perturbedTemperatureDependentContactAngleForce
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
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 1c7a51ad08ad4e0a73b8ce68841ed358e9f2485c..b3cc459a0ad8dd1e59162d89a33587dcebd7b12b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.C
@@ -50,7 +50,7 @@ addToRunTimeSelectionTable
 
 temperatureDependentContactAngleForce::temperatureDependentContactAngleForce
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
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 ca15ec0c6ab21d138dac40311d1abf82e8c841a5..ce4abb57caedd254d5c01794368f47064bad14dc 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForces/temperatureDependent/temperatureDependentContactAngleForce.H
@@ -97,7 +97,7 @@ public:
         //- Construct from surface film model
         temperatureDependentContactAngleForce
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 472c8b21c057092f4001e2e61dd9c47313059636..21bec6c50e82de5d9013d6aa1a8c6e2886959fed 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.C
@@ -41,7 +41,7 @@ defineRunTimeSelectionTable(force, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-force::force(surfaceFilmModel& film)
+force::force(surfaceFilmRegionModel& film)
 :
     filmSubModelBase(film)
 {}
@@ -50,7 +50,7 @@ force::force(surfaceFilmModel& film)
 force::force
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
index 000b7d9c41f5b8da9dc82263afa121310d4f387e..545f41ed5cfcfd74306d1417f94aaaddd39d22bb 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/force.H
@@ -82,7 +82,7 @@ public:
              force,
              dictionary,
              (
-                surfaceFilmModel& film,
+                surfaceFilmRegionModel& film,
                 const dictionary& dict
              ),
              (film, dict)
@@ -91,13 +91,13 @@ public:
     // Constructors
 
         //- Construct null
-        force(surfaceFilmModel& film);
+        force(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         force
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -107,7 +107,7 @@ public:
         //- Return a reference to the selected force model
         static autoPtr<force> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict,
             const word& modelType
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/forceNew.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/forceNew.C
index 4ebc37462a8516e64e5a5e136390fccf0479f09c..035e8d5defd6d69fc6c589ad83552c7804a0183c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/forceNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/force/forceNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<force> force::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     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 ea63cc2334c740a8c12a9a550dd438eea2434814..abf5edbad50d116c5c4f02f60b7fc1f0b5423d55 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.C
@@ -36,7 +36,7 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-forceList::forceList(surfaceFilmModel& film)
+forceList::forceList(surfaceFilmRegionModel& film)
 :
     PtrList<force>()
 {}
@@ -44,7 +44,7 @@ forceList::forceList(surfaceFilmModel& film)
 
 forceList::forceList
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
index 55ae056d3f52e9ac90a7fae827f4128019a7d48e..8674596cb83a64eab01d46bb80b31c529833c329 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/forceList/forceList.H
@@ -60,12 +60,12 @@ public:
     // Constructors
 
         //- Construct null
-        forceList(surfaceFilmModel& film);
+        forceList(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         forceList
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 be30e2c274775b3c8f0c6deed4e2308f83ee5f29..b6330fb3dd8bd5d296d60bc1f6196324a73a3afb 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.C
@@ -45,7 +45,7 @@ addToRunTimeSelectionTable(force, thermocapillaryForce, dictionary);
 
 thermocapillaryForce::thermocapillaryForce
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
index 283ebbf9b15f017757d2148c5c053ca944579f9d..50ab68052703d277e071944057eff9f4d08953ab 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/thermocapillaryForce/thermocapillaryForce.H
@@ -76,7 +76,7 @@ public:
         //- Construct from surface film model
         thermocapillaryForce
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 fd7fd0cc81b516fe333273deed219b11dc966baf..e1b79ac0e3d5586b3ecc8af7176baab7dd44a73e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
@@ -45,7 +45,7 @@ addToRunTimeSelectionTable(injectionModel, BrunDrippingInjection, dictionary);
 
 BrunDrippingInjection::BrunDrippingInjection
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
index 6c08188bb026bcb403d90622231319d39cacb691..2bff0b53f32c648ef8b50a6e4224694e22760a38 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H
@@ -118,7 +118,7 @@ public:
         //- Construct from surface film model
         BrunDrippingInjection
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 9c97df0880f94fc4eb33a1bf8afd9f2f33d13920..b7cc66b63d4f3587825881575b27a5f3ef8bf09f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C
@@ -220,7 +220,7 @@ tmp<scalarField> curvatureSeparation::calcCosAngle
 
 curvatureSeparation::curvatureSeparation
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
index 9ee2cd0a4c902c08b1fe3956d2dde4b3205ca51a..cdbca326b97c3b1c379d2170a63a0a9c3313e02f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.H
@@ -121,7 +121,7 @@ public:
         //- Construct from surface film model
         curvatureSeparation
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 7a534b11043eaf42b5dfe3f1f5b9fc465d6af085..1c2e5ebb1542676b399b8d7a5cffab2edef23f18 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C
@@ -50,7 +50,7 @@ addToRunTimeSelectionTable(injectionModel, drippingInjection, dictionary);
 
 drippingInjection::drippingInjection
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
index 46476c822b11b9b40dccfb8521a3e475f5ae8b33..8acd0aeadb1265fc4328214726f775e911cc3d61 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H
@@ -105,7 +105,7 @@ public:
         //- Construct from surface film model
         drippingInjection
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 585ed54ddc4d35a0278ab50b093a84f6c888bea6..c5103a8de5e9b4da08d7d3728a8bf02ded2c5138 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C
@@ -49,7 +49,7 @@ void injectionModel::addToInjectedMass(const scalar dMass)
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-injectionModel::injectionModel(surfaceFilmModel& film)
+injectionModel::injectionModel(surfaceFilmRegionModel& film)
 :
     filmSubModelBase(film),
     injectedMass_(0.0)
@@ -59,7 +59,7 @@ injectionModel::injectionModel(surfaceFilmModel& film)
 injectionModel::injectionModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
index 36d7a8bfd3b8426f5fa2a9b4cacc1dbbc126d225..173bb01fe4b0a3085d211504ae5b9a7f042e569c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H
@@ -98,7 +98,7 @@ public:
              injectionModel,
              dictionary,
              (
-                surfaceFilmModel& film,
+                surfaceFilmRegionModel& film,
                 const dictionary& dict
              ),
              (film, dict)
@@ -108,13 +108,13 @@ public:
     // Constructors
 
         //- Construct null
-        injectionModel(surfaceFilmModel& film);
+        injectionModel(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         injectionModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -124,7 +124,7 @@ public:
         //- Return a reference to the selected injection model
         static autoPtr<injectionModel> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict,
             const word& mdoelType
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModelNew.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModelNew.C
index 19d56b4e63012957ed60351365b47f433381a802..343497d742299e53d9ad26961d8ee9e0061ded37 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModelNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<injectionModel> injectionModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     const dictionary& dict,
     const word& modelType
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
index 3e3bc9f0be3f668c2419a0963c28274d979c4132..c71833509fc48e7be6374cc9d5648d1b1b9ef92a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C
@@ -36,7 +36,7 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-injectionModelList::injectionModelList(surfaceFilmModel& film)
+injectionModelList::injectionModelList(surfaceFilmRegionModel& film)
 :
     PtrList<injectionModel>(),
     filmSubModelBase(film)
@@ -45,7 +45,7 @@ injectionModelList::injectionModelList(surfaceFilmModel& film)
 
 injectionModelList::injectionModelList
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
index 4976743206420fe2b22cb093075b2bc7f62f1200..c20269c20ffe9f8277c308287897f1efbe94501f 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H
@@ -79,12 +79,12 @@ public:
     // Constructors
 
         //- Construct null
-        injectionModelList(surfaceFilmModel& film);
+        injectionModelList(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         injectionModelList
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 4c3be2e9d3335b0c0179e389b43577e785df5bc3..69c34d9bfc58a8fa87b4bcd8b200ee04d95efbd2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.C
@@ -44,7 +44,7 @@ addToRunTimeSelectionTable(injectionModel, patchInjection, dictionary);
 
 patchInjection::patchInjection
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
index d0880c071193a648d89f5c6a1ecc5cc8e359d4f4..af8b618da1025dac6008d2bca35eb4ab975a3a20 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/patchInjection/patchInjection.H
@@ -86,7 +86,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        patchInjection(surfaceFilmModel& film, const dictionary& dict);
+        patchInjection(surfaceFilmRegionModel& film, const dictionary& dict);
 
 
     //- Destructor
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.C
index 80070fe1aec0105cfe18fa71e6baddde4076d09f..b208718e42a41a062092c18949414f42ef41a0b1 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.C
@@ -49,7 +49,7 @@ void transferModel::addToTransferredMass(const scalar dMass)
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-transferModel::transferModel(surfaceFilmModel& film)
+transferModel::transferModel(surfaceFilmRegionModel& film)
 :
     filmSubModelBase(film),
     transferredMass_(0.0)
@@ -59,7 +59,7 @@ transferModel::transferModel(surfaceFilmModel& film)
 transferModel::transferModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.H
index 9fb79538cb7aec2c13c5311facda37b7a9f1df6f..c965f231e1f11be7f953778475253f0f8ac03da0 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModel.H
@@ -98,7 +98,7 @@ public:
              transferModel,
              dictionary,
              (
-                surfaceFilmModel& film,
+                surfaceFilmRegionModel& film,
                 const dictionary& dict
              ),
              (film, dict)
@@ -108,13 +108,13 @@ public:
     // Constructors
 
         //- Construct for film
-        transferModel(surfaceFilmModel& film);
+        transferModel(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         transferModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -124,7 +124,7 @@ public:
         //- Return a reference to the selected injection model
         static autoPtr<transferModel> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict,
             const word& modelType
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModelNew.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModelNew.C
index bd4392f1ba71a35a886d3202b88477bdafb0728a..89f7bdc419bb9e374c262be1eb99bbe041356fcb 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModel/transferModelNew.C
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<transferModel> transferModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     const dictionary& dict,
     const word& modelType
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.C
index 8cbce88189ef1fce6e2d1cd2d8f881c6e4b33578..123713b26b587f2eab42572d9281bedcb9ee565b 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.C
@@ -36,7 +36,7 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-transferModelList::transferModelList(surfaceFilmModel& film)
+transferModelList::transferModelList(surfaceFilmRegionModel& film)
 :
     PtrList<transferModel>(),
     filmSubModelBase(film)
@@ -45,7 +45,7 @@ transferModelList::transferModelList(surfaceFilmModel& film)
 
 transferModelList::transferModelList
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.H
index fd244fab1657184052af9d80ea52a641f1f2f779..9af147c8d5043f1de7dc2e4e91097c8e10d7e4c6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/transferModels/transferModelList/transferModelList.H
@@ -77,12 +77,12 @@ public:
     // Constructors
 
         //- Construct null
-        transferModelList(surfaceFilmModel& film);
+        transferModelList(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         transferModelList
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
index d25f2dbc2371c9f0d2e2f3a9e9c55abea370e0ae..1d76dad3c6834f57f40774d6a3e375287d6cd2eb 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 constantRadiation::constantRadiation
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
index e342bd880c3f9c9135785ea203768cb0880624ee..759f57af30af2ed05653cf29c15ffc70768764e4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.H
@@ -98,7 +98,7 @@ public:
         //- Construct from surface film model and dictionary
         constantRadiation
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
index 3b0dabe7d1c5e1ffdad2a58c470211f42157e2a7..1f7339ceb601ec9166020a7917fbe2487120ca4d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.C
@@ -41,7 +41,7 @@ defineRunTimeSelectionTable(filmRadiationModel, dictionary);
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-filmRadiationModel::filmRadiationModel(surfaceFilmModel& film)
+filmRadiationModel::filmRadiationModel(surfaceFilmRegionModel& film)
 :
     filmSubModelBase(film)
 {}
@@ -50,7 +50,7 @@ filmRadiationModel::filmRadiationModel(surfaceFilmModel& film)
 filmRadiationModel::filmRadiationModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
index eccd964c62858330166d748414e98c22de84c0ed..acaf6b1476ba67681658a304a3e9444836f22fe2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModel.H
@@ -81,7 +81,7 @@ public:
              filmRadiationModel,
              dictionary,
              (
-                 surfaceFilmModel& film,
+                 surfaceFilmRegionModel& film,
                  const dictionary& dict
              ),
              (film, dict)
@@ -90,13 +90,13 @@ public:
     // Constructors
 
         //- Construct null
-        filmRadiationModel(surfaceFilmModel& film);
+        filmRadiationModel(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         filmRadiationModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<filmRadiationModel> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModelNew.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModelNew.C
index ef7d7e69d65452fba7d369c73e9629f858f3c062..e68a7041725c362ca551566c58ed5d3e5817d44a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/filmRadiationModel/filmRadiationModelNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<filmRadiationModel> filmRadiationModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     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 5dd84d7f6ec2a4150bdd22d1c446a36234c4de62..0c64201d1cd3073c8b946d2f9f95f80f7a1d67f3 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 noRadiation::noRadiation
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
index 605104320f9ee7b74371c6bec9db3e73d266d898..6fd82b69798a6871590ddaf827548de079079380 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/noRadiation/noRadiation.H
@@ -77,7 +77,7 @@ public:
         //- Construct from surface film model and dictionary
         noRadiation
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 d8d91f045a9954db6a10861fe8d47ad8938d73c3..fb1fdd6a8c7752d1299ce8f49c2eaf3bdfb888d3 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 primaryRadiation::primaryRadiation
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
index 0334c8de1a6ed0f052e75daa08395b3c7ecfcc2f..919ecd2e864bb6388de0c4074cb57b7f3ae8bc67 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/primaryRadiation/primaryRadiation.H
@@ -84,7 +84,7 @@ public:
         //- Construct from surface film model and dictionary
         primaryRadiation
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
index d210d5e7b0d5f5f2a839b94a9d2a0302c99e704a..b8e8390d4ad21e87e9dad2bf0ddb8b0ff3f10d46 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.C
@@ -52,7 +52,7 @@ addToRunTimeSelectionTable
 
 standardRadiation::standardRadiation
 (
-     surfaceFilmModel& film,
+     surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
index 3562166202eecb5769889b20c586139d087802ee..3c6e8a4a1d578ca2a05935519ebae7883df23f62 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/standardRadiation/standardRadiation.H
@@ -95,7 +95,7 @@ public:
         //- Construct from surface film model and dictionary
         standardRadiation
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
index 76abe99b2397bb1358dfaae1f99c1e4ed5f91d1e..6071f41cdb108ebaf0142abd06269e288fec21f3 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 ArrheniusViscosity::ArrheniusViscosity
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
index 079cfd588a5f8a13a919d61df04597319afe05e0..d0f32bf758fd1affa53fa2e26e1d5abacef6d0bf 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.H
@@ -100,7 +100,7 @@ public:
         //- Construct from surface film model
         ArrheniusViscosity
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 b3b489c42ae2ebb1bcc4d8b738a3a781844198bb..ada08e0f16440c9fb05af0667484edaa74b762c4 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.C
@@ -50,7 +50,7 @@ addToRunTimeSelectionTable
 
 constantViscosity::constantViscosity
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
index c93d0dddb111a85064bb09709d1d428d73023ccd..c517030bf2007a350d472931073f27d7dfc6b287 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/constantViscosity/constantViscosity.H
@@ -83,7 +83,7 @@ public:
         //- Construct from surface film model
         constantViscosity
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 6167655809856f67bb1d0f6c852ba48c002ddd78..533ca8549f1e9648cf5242e23516d4e75fbfd9dc 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.C
@@ -44,7 +44,7 @@ defineRunTimeSelectionTable(filmViscosityModel, dictionary);
 filmViscosityModel::filmViscosityModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
index 042ea759bd666cacbbc6eba10917af003bcf5d02..3826f1d98281989fac90b621739ec83fbc09d83a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModel.H
@@ -90,7 +90,7 @@ public:
              filmViscosityModel,
              dictionary,
              (
-                surfaceFilmModel& film,
+                surfaceFilmRegionModel& film,
                 const dictionary& dict,
                 volScalarField& mu
              ),
@@ -103,7 +103,7 @@ public:
         filmViscosityModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict,
             volScalarField& mu
         );
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModelNew.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModelNew.C
index 7e9635a3ac1be9453103ac529ac95e284ee16a97..fde0a1b2c73bdbba75e43234c6626f1d35b811e3 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/filmViscosityModel/filmViscosityModelNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<filmViscosityModel> filmViscosityModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     const dictionary& dict,
     volScalarField& mu
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C
index ea7437c7672384e1791dac3620fe1f8460c25401..ffab8a59ee977dbe83d3ea494167ce9b094902f7 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 function1Viscosity::function1Viscosity
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H
index 6d4aeea40c4236fe9713e4d77b33a91235920b82..7584d2a5f4ca34730f72420ed4985c79cfe9b826 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H
@@ -87,7 +87,7 @@ public:
         //- Construct from surface film model
         function1Viscosity
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 de00fbee45850a3036622323254788db51df945f..85717b2324b65ba42dbdc90ebe0e24cc89a196cf 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 liquidViscosity::liquidViscosity
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
index 1614fade8e6ed7fb5c6aa925b346877a1fcccac5..f89be106fd53e79fded2d02cedd49c2c37722e12 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/liquidViscosity/liquidViscosity.H
@@ -82,7 +82,7 @@ public:
         //- Construct from surface film model
         liquidViscosity
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 7a09b686ab4770a6cc55b149f36a947c5fdb8c82..4087f833f4f8f726ac435571de19fa9851aafdd2 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
@@ -57,7 +57,7 @@ addToRunTimeSelectionTable
 
 thixotropicViscosity::thixotropicViscosity
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict,
     volScalarField& mu
 )
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
index ff2b3d0c3b32ac0d49c4f19e681e8f7b2f0deebf..14998c43647c5b7eba98229e171f4aee7415fa1e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H
@@ -140,7 +140,7 @@ public:
         //- Construct from surface film model
         thixotropicViscosity
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 605d126b002fa54d6fb7d64b496b9e230339916e..d7e06c9f7a4c7cbea13dcd1bcfe108d4405b9d1d 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 constantHeatTransfer::constantHeatTransfer
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
index 6fc13fbf5e2e6e0ccf153c38c4bf3a9fe3b542c4..5603e5ddd35e55b59dd4782c16bef99fc5941595 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/constantHeatTransfer/constantHeatTransfer.H
@@ -83,7 +83,7 @@ public:
         //- Construct from surface film model and dictionary
         constantHeatTransfer
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 8fcff6baee24330f899a7510c46ed576ffd8f913..2c447138c78a5207f5366940daabf80fd3e9e099 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.C
@@ -43,7 +43,7 @@ defineRunTimeSelectionTable(heatTransferModel, dictionary);
 
 heatTransferModel::heatTransferModel
 (
-    surfaceFilmModel& film
+    surfaceFilmRegionModel& film
 )
 :
     filmSubModelBase(film)
@@ -53,7 +53,7 @@ heatTransferModel::heatTransferModel
 heatTransferModel::heatTransferModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
index 80d87b7e6d277ef64b6cdbf7e8de67ab13e0cad5..3b9e9118635a4ea48835d1d16ffc8b26b533331e 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModel.H
@@ -81,7 +81,7 @@ public:
              heatTransferModel,
              dictionary,
              (
-                 surfaceFilmModel& film,
+                 surfaceFilmRegionModel& film,
                  const dictionary& dict
              ),
              (film, dict)
@@ -90,13 +90,13 @@ public:
     // Constructors
 
         //- Construct null
-        heatTransferModel(surfaceFilmModel& film);
+        heatTransferModel(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         heatTransferModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -106,7 +106,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<heatTransferModel> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModelNew.C b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModelNew.C
index 6adfe592473827021b1b6c59b096ccd1126bebcc..76b1adfcb2c0f5b32843d0c354a34bb40ed312fe 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/heatTransferModel/heatTransferModelNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<heatTransferModel> heatTransferModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     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 47795db101a39a53f9e3b53eb64466e6888abcd8..5b2b7ab82ea6e4728b716012f4a9f261d7d3c597 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.C
@@ -52,7 +52,7 @@ addToRunTimeSelectionTable
 
 mappedConvectiveHeatTransfer::mappedConvectiveHeatTransfer
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
index 2016eb7b72d3f9ffec30bb5d589992ccb8824d37..d45eb9d9aaa8deba26073d23a6dcd924495daa33 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/heatTransferModel/mappedConvectiveHeatTransfer/mappedConvectiveHeatTransfer.H
@@ -89,7 +89,7 @@ public:
         //- Construct from surface film model and dictionary
         mappedConvectiveHeatTransfer
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& 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 e21ce35c31bbeffd1b5aa047f8b0dba8990c8d1c..df4b22266a3980ea09c8f2139af58f21b1a969ca 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C
@@ -44,7 +44,7 @@ addToRunTimeSelectionTable(phaseChangeModel, noPhaseChange, dictionary);
 
 noPhaseChange::noPhaseChange
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary&
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
index 9fbe036bfcc6ea4b490d2714e94307ec7a5a84e1..bca13b63c1971e0fb250d0a0bb8929c2e1794abd 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H
@@ -74,7 +74,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        noPhaseChange(surfaceFilmModel& film, const dictionary& dict);
+        noPhaseChange(surfaceFilmRegionModel& 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 f7ddc884dfd7faca1b3807e4afd7346870059d67..a7d643c9748de5b86ef1797c931b4ee29e03d15c 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C
@@ -43,7 +43,7 @@ defineRunTimeSelectionTable(phaseChangeModel, dictionary);
 
 phaseChangeModel::phaseChangeModel
 (
-    surfaceFilmModel& film
+    surfaceFilmRegionModel& film
 )
 :
     filmSubModelBase(film),
@@ -55,7 +55,7 @@ phaseChangeModel::phaseChangeModel
 phaseChangeModel::phaseChangeModel
 (
     const word& modelType,
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
index 7a59ad4d477c671405d74624383e1012a65b1d38..d544259159eccb65c1269d34ac29308212be45a7 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.H
@@ -93,7 +93,7 @@ public:
              phaseChangeModel,
              dictionary,
              (
-                surfaceFilmModel& film,
+                surfaceFilmRegionModel& film,
                 const dictionary& dict
              ),
              (film, dict)
@@ -102,13 +102,13 @@ public:
     // Constructors
 
         //- Construct null
-        phaseChangeModel(surfaceFilmModel& film);
+        phaseChangeModel(surfaceFilmRegionModel& film);
 
         //- Construct from type name, dictionary and surface film model
         phaseChangeModel
         (
             const word& modelType,
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
@@ -118,7 +118,7 @@ public:
         //- Return a reference to the selected phase change model
         static autoPtr<phaseChangeModel> New
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModelNew.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModelNew.C
index 476222fdac81ad5cc0f5b7a0f664f433dd70cf19..eb2601a893128c6a6440fa4b4f933dcaf2813f16 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModelNew.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModelNew.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
@@ -38,7 +38,7 @@ namespace surfaceFilmModels
 
 autoPtr<phaseChangeModel> phaseChangeModel::New
 (
-    surfaceFilmModel& model,
+    surfaceFilmRegionModel& model,
     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 93239be248e1435b846e0951792a11d27f1a1560..b4ff36124bd72ba4c6a78edd549dd1fd473f4db3 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 solidification::solidification
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
index e355cd373652bb739705244765e8bc021840e54a..baf115767baab0841e26abb4a40a6a97c79b9b62 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/solidification/solidification.H
@@ -96,7 +96,7 @@ public:
     // Constructors
 
         //- Construct from surface film model
-        solidification(surfaceFilmModel& film, const dictionary& dict);
+        solidification(surfaceFilmRegionModel& 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 110333fd564b992f8c86dd65f3b2bda8bbc2a344..128b529e11e0710eb6904539a64239d40eaf6f98 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.C
@@ -70,7 +70,7 @@ scalar standardPhaseChange::Sh
 
 standardPhaseChange::standardPhaseChange
 (
-    surfaceFilmModel& film,
+    surfaceFilmRegionModel& film,
     const dictionary& dict
 )
 :
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
index 5c9cbfc369b0ecf21d81f2bba81d06c5b7392cb6..55007cc6c6aa6a8f82e4970c9217cef52ec1b5e6 100644
--- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/standardPhaseChange/standardPhaseChange.H
@@ -97,7 +97,7 @@ public:
         //- Construct from surface film model
         standardPhaseChange
         (
-            surfaceFilmModel& film,
+            surfaceFilmRegionModel& film,
             const dictionary& dict
         );
 
diff --git a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.C b/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.C
index 13b6647783a7301183e20e6beafd6ffbb5acec15..6afdec63c50020d2a0cf3f03edd926cab007f6cf 100644
--- a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.C
+++ b/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,7 +24,6 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "surfaceFilmModel.H"
-#include "fvMesh.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -32,49 +31,24 @@ namespace Foam
 {
 namespace regionModels
 {
-namespace surfaceFilmModels
-{
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 defineTypeNameAndDebug(surfaceFilmModel, 0);
 defineRunTimeSelectionTable(surfaceFilmModel, mesh);
 
-const dimensionedScalar surfaceFilmModel::Tref("Tref", dimTemperature, 298.15);
-
-// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
-
-bool surfaceFilmModel::read()
-{
-    if (singleLayerRegion::read())
-    {
-        return true;
-    }
-    else
-    {
-        return false;
-    }
-}
+const dimensionedScalar surfaceFilmModel::Tref
+(
+    "Tref",
+    dimTemperature,
+    298.15
+);
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-surfaceFilmModel::surfaceFilmModel
-(
-    const word& modelType,
-    const fvMesh& mesh,
-    const dimensionedVector& g,
-    const word& regionType
-)
-:
-    singleLayerRegion(mesh, regionType, modelType),
-    g_(g)
-{
-    if (active_)
-    {
-        read();
-    }
-}
+surfaceFilmModel::surfaceFilmModel()
+{}
 
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
@@ -83,42 +57,8 @@ surfaceFilmModel::~surfaceFilmModel()
 {}
 
 
-// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
-
-Foam::scalar surfaceFilmModel::CourantNumber() const
-{
-    return ROOTVSMALL;
-}
-
-
-tmp<volScalarField::Internal> surfaceFilmModel::Srho() const
-{
-    NotImplemented;
-
-    return tmp<volScalarField::Internal>(nullptr);
-}
-
-
-tmp<volScalarField::Internal>
-surfaceFilmModel::Srho(const label) const
-{
-    NotImplemented;
-
-    return tmp<volScalarField::Internal>(nullptr);
-}
-
-
-tmp<volScalarField::Internal> surfaceFilmModel::Sh() const
-{
-    NotImplemented;
-
-    return tmp<volScalarField::Internal>(nullptr);
-}
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace surfaceFilmModels
 } // End namespace regionModels
 } // End namespace Foam
 
diff --git a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.H b/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.H
index 762fe08133ac8968a1e36ba4d266ae2e2b3f1eed..2e72e8d6b05634e040802a002018371f2c939c54 100644
--- a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.H
+++ b/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::regionModels::surfaceFilmModels::surfaceFilmModel
+    Foam::regionModels::surfaceFilmModel
 
 Description
     Base class for surface film models
@@ -37,13 +37,8 @@ SourceFiles
 #ifndef surfaceFilmModel_H
 #define surfaceFilmModel_H
 
-#include "singleLayerRegion.H"
-
-#include "dimensionedVector.H"
 #include "runTimeSelectionTables.H"
-#include "volFieldsFwd.H"
-#include "DimensionedField.H"
-#include "labelList.H"
+#include "volFields.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -51,20 +46,13 @@ namespace Foam
 {
 namespace regionModels
 {
-namespace surfaceFilmModels
-{
 
 /*---------------------------------------------------------------------------*\
                       Class surfaceFilmModel Declaration
 \*---------------------------------------------------------------------------*/
 
 class surfaceFilmModel
-:
-    public singleLayerRegion
 {
-
-private:
-
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
@@ -74,20 +62,6 @@ private:
         void operator=(const surfaceFilmModel&);
 
 
-protected:
-
-    // Protected data
-
-        //- Acceleration due to gravity [m/s2]
-        const dimensionedVector& g_;
-
-
-    // Protected member functions
-
-        //- Read control parameters from dictionary
-        virtual bool read();
-
-
 public:
 
     //- Runtime type information
@@ -113,16 +87,9 @@ public:
              (modelType, mesh, g, regionType)
          );
 
-    // Constructors
 
-        //- Construct from type name, mesh and gravity vector
-        surfaceFilmModel
-        (
-            const word& modelType,
-            const fvMesh& mesh,
-            const dimensionedVector& g,
-            const word& regionType
-        );
+    //- Constructor
+    surfaceFilmModel();
 
 
     // Selectors
@@ -142,113 +109,41 @@ public:
 
     // Member Functions
 
-        // Access
-
-            //- Return the accleration due to gravity
-            inline const dimensionedVector& g() const;
-
-            //- External hook to add sources to the film
-            virtual void addSources
-            (
-                const label patchi,
-                const label facei,
-                const scalar massSource,
-                const vector& momentumSource,
-                const scalar pressureSource,
-                const scalar energySource
-            ) = 0;
-
-
         // Solution parameters
 
             //- Courant number evaluation
-            virtual scalar CourantNumber() const;
-
+            virtual scalar CourantNumber() const = 0;
 
-        // Fields
 
-            //- Return the film thickness [m]
-            virtual const volScalarField& delta() const = 0;
+        // Primary region source fields
 
-            //- Return the film coverage, 1 = covered, 0 = uncovered / []
-            virtual const volScalarField& alpha() const = 0;
+            //- Return total mass source - Eulerian phase only
+            virtual tmp<volScalarField::Internal> Srho() const = 0;
 
-            //- Return the film velocity [m/s]
-            virtual const volVectorField& U() const = 0;
-
-            //- Return the film surface velocity [m/s]
-            virtual const volVectorField& Us() const = 0;
-
-            //- Return the film wall velocity [m/s]
-            virtual const volVectorField& Uw() const = 0;
-
-            //- Return the film density [kg/m3]
-            virtual const volScalarField& rho() const = 0;
-
-            //- Return the film mean temperature [K]
-            virtual const volScalarField& T() const = 0;
-
-            //- Return the film surface temperature [K]
-            virtual const volScalarField& Ts() const = 0;
-
-            //- Return the film wall temperature [K]
-            virtual const volScalarField& Tw() const = 0;
-
-            //- Return the film surface temperature [J/kg]
-            virtual const volScalarField& hs() const = 0;
-
-            //- Return the film specific heat capacity [J/kg/K]
-            virtual const volScalarField& Cp() const = 0;
-
-            //- Return the film thermal conductivity [W/m/K]
-            virtual const volScalarField& kappa() const = 0;
-
-            //- Return the film surface tension [N/m]
-            virtual const volScalarField& sigma() const = 0;
-
-
-            // Transfer fields - to the primary region
-
-                //- Return mass transfer source - Eulerian phase only
-                virtual tmp<volScalarField> primaryMassTrans() const = 0;
-
-                //- Return the film mass available for transfer
-                virtual const volScalarField& cloudMassTrans() const = 0;
-
-                //- Return the parcel diameters originating from film
-                virtual const volScalarField& cloudDiameterTrans() const = 0;
-
-
-        // Source fields
+            //- Return mass source for specie i - Eulerian phase only
+            virtual tmp<volScalarField::Internal> Srho
+            (
+                const label i
+            ) const = 0;
 
-            // Mapped into primary region
+            //- Return enthalpy source - Eulerian phase only
+            virtual tmp<volScalarField::Internal> Sh() const = 0;
 
-                //- Return total mass source - Eulerian phase only
-                virtual tmp<volScalarField::Internal> Srho() const;
 
-                //- Return mass source for specie i - Eulerian phase only
-                virtual tmp<volScalarField::Internal> Srho
-                (
-                    const label i
-                ) const;
+        // Evolution
 
-                //- Return enthalpy source - Eulerian phase only
-                virtual tmp<volScalarField::Internal> Sh() const;
+            //- Main driver routing to evolve the region - calls other evolves
+            virtual void evolve() = 0;
 };
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace surfaceFilmModels
 } // End namespace regionModels
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "surfaceFilmModelI.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
 #endif
 
 // ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModelNew.C b/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModelNew.C
index e6251116e794c67492269b966dd6b252b6cb3829..55008f36744878cc0d1754c5ade8fc1d4fca1cf2 100644
--- a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModelNew.C
+++ b/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModelNew.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
@@ -24,8 +24,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "surfaceFilmModel.H"
-#include "fvMesh.H"
-#include "Time.H"
+#include "noFilm.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -33,8 +32,6 @@ namespace Foam
 {
 namespace regionModels
 {
-namespace surfaceFilmModels
-{
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
@@ -48,20 +45,29 @@ autoPtr<surfaceFilmModel> surfaceFilmModel::New
     word modelType;
 
     {
-        IOdictionary surfaceFilmPropertiesDict
+        IOobject surfaceFilmPropertiesDictHeader
         (
-            IOobject
-            (
-                regionType + "Properties",
-                mesh.time().constant(),
-                mesh,
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE,
-                false
-            )
+            regionType + "Properties",
+            mesh.time().constant(),
+            mesh,
+            IOobject::MUST_READ,
+            IOobject::NO_WRITE,
+            false
         );
 
-        surfaceFilmPropertiesDict.lookup("surfaceFilmModel") >> modelType;
+        if (surfaceFilmPropertiesDictHeader.typeHeaderOk<IOdictionary>())
+        {
+            IOdictionary surfaceFilmPropertiesDict
+            (
+                surfaceFilmPropertiesDictHeader
+            );
+
+            surfaceFilmPropertiesDict.lookup("surfaceFilmModel") >> modelType;
+        }
+        else
+        {
+            modelType = surfaceFilmModels::noFilm::typeName;
+        }
     }
 
     Info<< "Selecting surfaceFilmModel " << modelType << endl;
@@ -93,7 +99,6 @@ autoPtr<surfaceFilmModel> surfaceFilmModel::New
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace surfaceFilmModels
 } // End namespace regionModels
 } // End namespace Foam
 
diff --git a/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModel.C b/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..c8456af18b6bc8e059dd647fe1ff3ae1b8ceef35
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModel.C
@@ -0,0 +1,98 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-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 "surfaceFilmRegionModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(surfaceFilmRegionModel, 0);
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+bool surfaceFilmRegionModel::read()
+{
+    if (singleLayerRegion::read())
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+surfaceFilmRegionModel::surfaceFilmRegionModel
+(
+    const word& modelType,
+    const fvMesh& mesh,
+    const dimensionedVector& g,
+    const word& regionType
+)
+:
+    surfaceFilmModel(),
+    singleLayerRegion(mesh, regionType, modelType),
+    g_(g)
+{
+    if (active_)
+    {
+        read();
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+surfaceFilmRegionModel::~surfaceFilmRegionModel()
+{}
+
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+void surfaceFilmRegionModel::evolve()
+{
+    singleLayerRegion::evolve();
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModel.H b/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..7e070ff2a63b450ad1ed52ae5553af7f9949924c
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModel.H
@@ -0,0 +1,198 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-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::surfaceFilmRegionModel
+
+Description
+    Base class for surface film models
+
+SourceFiles
+    surfaceFilmRegionModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef surfaceFilmRegionModel_H
+#define surfaceFilmRegionModel_H
+
+#include "surfaceFilmModel.H"
+#include "singleLayerRegion.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class surfaceFilmRegionModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class surfaceFilmRegionModel
+:
+    public surfaceFilmModel,
+    public singleLayerRegion
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        surfaceFilmRegionModel(const surfaceFilmRegionModel&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const surfaceFilmRegionModel&);
+
+
+protected:
+
+    // Protected data
+
+        //- Acceleration due to gravity [m/s2]
+        const dimensionedVector& g_;
+
+
+    // Protected member functions
+
+        //- Read control parameters from dictionary
+        virtual bool read();
+
+
+public:
+
+    //- Runtime type information
+    TypeName("surfaceFilmRegionModel");
+
+
+    // Constructors
+
+        //- Construct from type name, mesh and gravity vector
+        surfaceFilmRegionModel
+        (
+            const word& modelType,
+            const fvMesh& mesh,
+            const dimensionedVector& g,
+            const word& regionType
+        );
+
+
+    //- Destructor
+    virtual ~surfaceFilmRegionModel();
+
+
+    // Member Functions
+
+        // Access
+
+            //- Return the accleration due to gravity
+            inline const dimensionedVector& g() const;
+
+            //- External hook to add sources to the film
+            virtual void addSources
+            (
+                const label patchi,
+                const label facei,
+                const scalar massSource,
+                const vector& momentumSource,
+                const scalar pressureSource,
+                const scalar energySource
+            ) = 0;
+
+
+        // Fields
+
+            //- Return the film thickness [m]
+            virtual const volScalarField& delta() const = 0;
+
+            //- Return the film coverage, 1 = covered, 0 = uncovered / []
+            virtual const volScalarField& alpha() const = 0;
+
+            //- Return the film velocity [m/s]
+            virtual const volVectorField& U() const = 0;
+
+            //- Return the film surface velocity [m/s]
+            virtual const volVectorField& Us() const = 0;
+
+            //- Return the film wall velocity [m/s]
+            virtual const volVectorField& Uw() const = 0;
+
+            //- Return the film density [kg/m3]
+            virtual const volScalarField& rho() const = 0;
+
+            //- Return the film mean temperature [K]
+            virtual const volScalarField& T() const = 0;
+
+            //- Return the film surface temperature [K]
+            virtual const volScalarField& Ts() const = 0;
+
+            //- Return the film wall temperature [K]
+            virtual const volScalarField& Tw() const = 0;
+
+            //- Return the film surface temperature [J/kg]
+            virtual const volScalarField& hs() const = 0;
+
+            //- Return the film specific heat capacity [J/kg/K]
+            virtual const volScalarField& Cp() const = 0;
+
+            //- Return the film thermal conductivity [W/m/K]
+            virtual const volScalarField& kappa() const = 0;
+
+            //- Return the film surface tension [N/m]
+            virtual const volScalarField& sigma() const = 0;
+
+
+            // Transfer fields - to the primary region
+
+                //- Return mass transfer source - Eulerian phase only
+                virtual tmp<volScalarField> primaryMassTrans() const = 0;
+
+                //- Return the film mass available for transfer
+                virtual const volScalarField& cloudMassTrans() const = 0;
+
+                //- Return the parcel diameters originating from film
+                virtual const volScalarField& cloudDiameterTrans() const = 0;
+
+
+        // Evolution
+
+            //- Main driver routing to evolve the region - calls other evolves
+            virtual void evolve();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "surfaceFilmRegionModelI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModelI.H b/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModelI.H
similarity index 90%
rename from src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModelI.H
rename to src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModelI.H
index 652c3d5724c0baa217dd295680606e59b1ca9932..e196babd4a30c6aebf7bb5f9c750440d29f5cedc 100644
--- a/src/regionModels/surfaceFilmModels/surfaceFilmModel/surfaceFilmModelI.H
+++ b/src/regionModels/surfaceFilmModels/surfaceFilmRegionModel/surfaceFilmRegionModelI.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
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "surfaceFilmModel.H"
+#include "surfaceFilmRegionModel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -36,7 +36,7 @@ namespace surfaceFilmModels
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-inline const Foam::dimensionedVector& surfaceFilmModel::g() const
+inline const Foam::dimensionedVector& surfaceFilmRegionModel::g() const
 {
     return g_;
 }
diff --git a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
index 9ac0e2d6fc8b6ebdf245b217a5ac1a92b293bec4..35930d3340f1359a7c182595d778796cec3b306e 100644
--- a/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
+++ b/src/regionModels/surfaceFilmModels/thermoSingleLayer/thermoSingleLayer.C
@@ -55,7 +55,7 @@ namespace surfaceFilmModels
 
 defineTypeNameAndDebug(thermoSingleLayer, 0);
 
-addToRunTimeSelectionTable(surfaceFilmModel, thermoSingleLayer, mesh);
+addToRunTimeSelectionTable(surfaceFilmRegionModel, thermoSingleLayer, mesh);
 
 // * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * * //
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/additionalControls b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/additionalControls
deleted file mode 100644
index b7902c8810dd06fe0e23dacad9595aa523084f70..0000000000000000000000000000000000000000
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/additionalControls
+++ /dev/null
@@ -1,20 +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;
-    location    "constant";
-    object      additionalControls;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-solvePrimaryRegion false; // true;
-
-// ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/additionalControls b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/additionalControls
deleted file mode 100644
index 47ec75e425a2af1a1700ac618f35996f1fea2db5..0000000000000000000000000000000000000000
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/additionalControls
+++ /dev/null
@@ -1,20 +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;
-    location    "constant";
-    object      additionalControls;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-solvePrimaryRegion true; // false; // true;
-
-// ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/0/p b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/0/p
index 82fd55d35b3b63a623d1cf77ba314bc6fbd9a50b..6310d409289f2df3f4d50968f1491347daee38a5 100644
--- a/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/0/p
+++ b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/0/p
@@ -23,17 +23,22 @@ boundaryField
 {
     fuel
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
+
     air
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
+
     outlet
     {
-        type            totalPressure;
-        p0              $internalField;
+        type            calculated;
+        value           $internalField;
     }
+
     frontAndBack
     {
         type            empty;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/additionalControls b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/0/p_rgh
similarity index 52%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/additionalControls
rename to tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/0/p_rgh
index 23353bc65acd758c26c57ccdd3573427ed5c3295..b51753afdff9f98c5738810e93ef1605f1d11c9c 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/additionalControls
+++ b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/0/p_rgh
@@ -1,20 +1,47 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
 {
     version     2.0;
     format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      additionalControls;
+    class       volScalarField;
+    location    "0";
+    object      p_rgh;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-solvePrimaryRegion true;
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 1e5;
+
+boundaryField
+{
+    fuel
+    {
+        type            fixedFluxPressure;
+    }
+
+    air
+    {
+        type            fixedFluxPressure;
+    }
+
+    outlet
+    {
+        type            prghTotalPressure;
+        p0              $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/system/fvSolution
index 295dfc6eef9b3b3ecbbe449c752622b712fa98d2..50c20257809ce6df45205651926cea632f71aa6a 100644
--- a/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/counterFlowFlame2DLTS/system/fvSolution
@@ -22,7 +22,7 @@ solvers
         solver          diagonal;
     }
 
-    p
+    p_rgh
     {
         solver          GAMG;
         tolerance       1e-6;
@@ -30,9 +30,9 @@ solvers
         smoother        GaussSeidel;
     }
 
-    pFinal
+    p_rghFinal
     {
-        $p;
+        $p_rgh;
         relTol           0;
     }
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/H2O b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/H2O
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/H2O
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/H2O
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/N2 b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/N2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/N2
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/N2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/O2 b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/O2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/O2
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/O2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/T b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/T
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/T
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/T
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/U b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/U
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/U
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/U
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/p
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/p
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/p
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/p_rgh
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/p_rgh
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/p_rgh
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/wallFilmRegion/Tf b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/wallFilmRegion/Tf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/wallFilmRegion/Tf
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/wallFilmRegion/Tf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/wallFilmRegion/Uf b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/wallFilmRegion/Uf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/wallFilmRegion/Uf
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/wallFilmRegion/Uf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/wallFilmRegion/deltaf b/tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/wallFilmRegion/deltaf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/0.orig/wallFilmRegion/deltaf
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/0.orig/wallFilmRegion/deltaf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/Allclean b/tutorials/lagrangian/reactingParcelFoam/cylinder/Allclean
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/Allclean
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/Allclean
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/Allrun b/tutorials/lagrangian/reactingParcelFoam/cylinder/Allrun
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/Allrun
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/Allrun
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/Allrun.pre b/tutorials/lagrangian/reactingParcelFoam/cylinder/Allrun.pre
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/Allrun.pre
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/Allrun.pre
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/chemistryProperties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/chemistryProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/chemistryProperties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/chemistryProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/combustionProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/combustionProperties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/combustionProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.dat b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/foam.dat
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.dat
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/foam.dat
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.inp b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/foam.inp
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/foam.inp
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/foam.inp
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/g b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/g
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/g
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/g
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/parcelInjectionProperties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/parcelInjectionProperties
similarity index 75%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/parcelInjectionProperties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/parcelInjectionProperties
index 342d01a182f4e2b1cedf054707d673a312555692..df450036e622dae3984a1b5b10658f8eab7a90d7 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/parcelInjectionProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/parcelInjectionProperties
@@ -14,11 +14,11 @@ FoamFile
     object      scalarListList;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-// (x y z) (u v w) d rho mDot T Cp (Y0..Y2)
+// (x y z) (u v w) d rho mDot T Cp (Y0..Y2) (Yg0..YgN) (Yl0..YlN) (Ys0..YsN)
 (
-    (0 1.95 -0.2) (0 -5 0) 0.001 1000 0.002 300 4200 (1)
-    (0 1.95    0) (0 -5 0) 0.001 1000 0.002 300 4200 (1)
-    (0 1.95  0.2) (0 -5 0) 0.001 1000 0.002 300 4200 (1)
+    (0 1.95 -0.2) (0 -5 0) 0.001 1000 0.002 300 4200 (0 1 0) () (1) ()
+    (0 1.95    0) (0 -5 0) 0.001 1000 0.002 300 4200 (0 1 0) () (1) ()
+    (0 1.95  0.2) (0 -5 0) 0.001 1000 0.002 300 4200 (0 1 0) () (1) ()
 );
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/radiationProperties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/radiationProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/radiationProperties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/radiationProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/reactingCloud1Properties
similarity index 86%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/reactingCloud1Properties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/reactingCloud1Properties
index 671958376bf39c9890fe1841dc56b8522099918a..b330a1967189169642480310697de59200a0a69e 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/reactingCloud1Properties
@@ -74,7 +74,7 @@ subModels
     {
         model1
         {
-            type            reactingLookupTableInjection;
+            type            reactingMultiphaseLookupTableInjection;
             massTotal       0.5;
             parcelBasisType mass;
             SOI             0;
@@ -91,10 +91,14 @@ subModels
 
     heatTransferModel none;
 
-    compositionModel singlePhaseMixture;
+    compositionModel singleMixtureFraction;
 
     phaseChangeModel none;
 
+    devolatilisationModel none;
+
+    surfaceReactionModel none;
+
     stochasticCollisionModel none;
 
     surfaceFilmModel thermoSurfaceFilm;
@@ -106,15 +110,24 @@ subModels
         type            rebound;
     }
 
-    singlePhaseMixtureCoeffs
+    singleMixtureFractionCoeffs
     {
         phases
         (
+            gas
+            {
+            }
             liquid
             {
-                H2O          1;
+                H2O         1;
+            }
+            solid
+            {
             }
         );
+        YGasTot0        0;
+        YLiquidTot0     1;
+        YSolidTot0      0;
     }
 
     thermoSurfaceFilmCoeffs
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/surfaceFilmProperties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/surfaceFilmProperties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/surfaceFilmProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/thermophysicalProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/turbulenceProperties b/tutorials/lagrangian/reactingParcelFoam/cylinder/constant/turbulenceProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/turbulenceProperties
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/constant/turbulenceProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/blockMeshDict b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/blockMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/blockMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/blockMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/controlDict b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/controlDict
similarity index 93%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/controlDict
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/controlDict
index 0e40fa759fd576515639fe794844f28c76e44d52..3b4b879368f49e99b0454e506628fe5e25a76932 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/controlDict
+++ b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/controlDict
@@ -15,9 +15,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-application     reactingParcelFilmFoam;
+application     reactingParcelFoam;
 
-startFrom       latestTime; // startTime;
+startFrom       latestTime;
 
 startTime       0;
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/createPatchDict b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/createPatchDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/createPatchDict
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/createPatchDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/decomposeParDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/decomposeParDict
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/decomposeParDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/extrudeToRegionMeshDict b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/extrudeToRegionMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/extrudeToRegionMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/extrudeToRegionMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/fvSolution
similarity index 97%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/fvSolution
index 12ec0ce96e1474b3a4fe89da1e491ec39c2de18e..dde799096bfb92cb6fa1aae535cbc0824340ce8d 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/fvSolution
@@ -97,10 +97,6 @@ PIMPLE
 
 relaxationFactors
 {
-    fields
-    {
-        ".*Final"       1;
-    }
     equations
     {
         ".*Final"       1;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/topoSetDict b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/topoSetDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/topoSetDict
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/topoSetDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/wallFilmRegion/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/wallFilmRegion/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/wallFilmRegion/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/wallFilmRegion/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/wallFilmRegion/fvSolution b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/wallFilmRegion/fvSolution
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/wallFilmRegion/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/cylinder/system/wallFilmRegion/fvSolution
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/filter/0.orig/p
index 0438b1fa572c95b1d627eda0e5fddf30338945c4..7d9e755a5d7278fccb0c0339050a0fb5300f8055 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/0.orig/p
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/0.orig/p
@@ -10,7 +10,6 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    location    "1";
     object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -23,33 +22,42 @@ boundaryField
 {
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
+
     inlet
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
+
     outlet
     {
-        type            fixedValue;
-        value           uniform 100000;
+        type            calculated;
+        value           $internalField;
     }
+
     cycLeft_half0
     {
         type            cyclic;
     }
+
     cycRight_half0
     {
         type            cyclic;
     }
+
     frontAndBack
     {
         type            empty;
     }
+
     cycLeft_half1
     {
         type            cyclic;
     }
+
     cycRight_half1
     {
         type            cyclic;
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/filter/0.orig/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..889e4cf111374c8bbb5eae7cdd4e47156ac8ddcd
--- /dev/null
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/0.orig/p_rgh
@@ -0,0 +1,66 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 100000;
+
+boundaryField
+{
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+
+    inlet
+    {
+        type            fixedFluxPressure;
+    }
+
+    outlet
+    {
+        type            prghPressure;
+        p               uniform 100000;
+    }
+
+    cycLeft_half0
+    {
+        type            cyclic;
+    }
+
+    cycRight_half0
+    {
+        type            cyclic;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+
+    cycLeft_half1
+    {
+        type            cyclic;
+    }
+
+    cycRight_half1
+    {
+        type            cyclic;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/Allrun b/tutorials/lagrangian/reactingParcelFoam/filter/Allrun
index 2c976e023babdf78cb0088faf33082fd5a4c81bf..183ac7a8643884f48d3bb308d7d93c1968dd0543 100755
--- a/tutorials/lagrangian/reactingParcelFoam/filter/Allrun
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/Allrun
@@ -5,6 +5,8 @@ cd ${0%/*} || exit 1    # Run from this directory
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 restore0Dir
+
+# create mesh
 runApplication blockMesh
 
 # create sets
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution
index 1e8637e63e8cb234f9e6745d1b364411638297d7..93cfefe3817e50c9fa7e763283636dbf9f29574e 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution
@@ -47,7 +47,7 @@ solvers
         relTol          0;
     }
 
-    p
+    p_rgh
     {
         solver          GAMG;
         tolerance       0;
@@ -55,9 +55,9 @@ solvers
         smoother        GaussSeidel;
     }
 
-    pFinal
+    p_rghFinal
     {
-        $p;
+        $p_rgh;
         tolerance       1e-06;
         relTol          0;
     }
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/H2O b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/H2O
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/H2O
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/H2O
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/N2 b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/N2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/N2
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/N2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/O2 b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/O2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/O2
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/O2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/T b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/T
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/T
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/T
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/U b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/U
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/U
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/U
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/alphat b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/alphat
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/alphat
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/alphat
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/epsilon b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/epsilon
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/epsilon
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/epsilon
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/htcConv b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/htcConv
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/htcConv
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/htcConv
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/k b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/k
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/k
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/k
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/nut b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/nut
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/nut
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/nut
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/p
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/p
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/p
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/p_rgh
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/p_rgh
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/p_rgh
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/wallFilmRegion/Tf b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/wallFilmRegion/Tf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/wallFilmRegion/Tf
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/wallFilmRegion/Tf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/wallFilmRegion/Uf b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/wallFilmRegion/Uf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/wallFilmRegion/Uf
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/wallFilmRegion/Uf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/wallFilmRegion/deltaf b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/wallFilmRegion/deltaf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/0.orig/wallFilmRegion/deltaf
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/0.orig/wallFilmRegion/deltaf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allclean b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allclean
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allclean
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allclean
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allrun b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allrun
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allrun
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allrun
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allrun-parallel b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allrun-parallel
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allrun-parallel
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allrun-parallel
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allrun.pre b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allrun.pre
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/Allrun.pre
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/Allrun.pre
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/chemistryProperties b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/chemistryProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/chemistryProperties
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/chemistryProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/combustionProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/combustionProperties
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/combustionProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.dat b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/foam.dat
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.dat
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/foam.dat
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.inp b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/foam.inp
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.inp
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/foam.inp
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/g b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/g
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/g
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/g
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/radiationProperties b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/radiationProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/radiationProperties
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/radiationProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/reactingCloud1Properties
similarity index 91%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/reactingCloud1Properties
index b6e4c5d8cfddcb9b227489a5a4cc4f6b28eb5deb..593d1c3cc3bbbc778a55a55c480b23d3765b4544 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/reactingCloud1Properties
@@ -112,10 +112,14 @@ subModels
 
     heatTransferModel none;
 
-    compositionModel singlePhaseMixture;
+    compositionModel singleMixtureFraction;
 
     phaseChangeModel none;
 
+    devolatilisationModel none;
+
+    surfaceReactionModel none;
+
     stochasticCollisionModel none;
 
     surfaceFilmModel thermoSurfaceFilm;
@@ -127,15 +131,24 @@ subModels
         type            rebound;
     }
 
-    singlePhaseMixtureCoeffs
+    singleMixtureFractionCoeffs
     {
         phases
         (
+            gas
+            {
+            }
             liquid
             {
                 H2O          1;
             }
+            solid
+            {
+            }
         );
+        YGasTot0        0;
+        YLiquidTot0     1;
+        YSolidTot0      0;
     }
 
     thermoSurfaceFilmCoeffs
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/surfaceFilmProperties b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/surfaceFilmProperties
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/surfaceFilmProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/thermophysicalProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/turbulenceProperties b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/turbulenceProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/turbulenceProperties
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/constant/turbulenceProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/createObstacle.setSet b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/createObstacle.setSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/createObstacle.setSet
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/createObstacle.setSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/createWallFilmZone.setSet b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/createWallFilmZone.setSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/createWallFilmZone.setSet
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/createWallFilmZone.setSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchify.setSet b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/patchify.setSet
similarity index 91%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchify.setSet
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/patchify.setSet
index 6b1a3a5ae3d78fb1cd25c17de9fdcf8b00df0939..e58687b914dfece1050796194e73ba07396345ad 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchify.setSet
+++ b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/patchify.setSet
@@ -25,6 +25,6 @@ faceSet cubeFaceSet add boxToFace (0.399 0.599 0.399) (0.601 0.601 0.601)
 faceSet cubeFaceSet add boxToFace (0.399 0.399 0.399) (0.601 0.401 0.601)
 cellSet cubeFacesCells new faceToCell cubeFaceSet owner
 faceZoneSet cubeFaces new setsToFaceZone cubeFaceSet cubeFacesCells
-faceSet floorFaces new boxToFace (-0.001 -0.001 -0.001) (1.001 1.001 0.001)
-cellSet floorCells new faceToCell floorFaces owner
-faceZoneSet floorFaces new setsToFaceZone floorFaces floorCells
+faceSet FloorFaces new boxToFace (-0.001 -0.001 -0.001) (1.001 1.001 0.001)
+cellSet floorCells new faceToCell FloorFaces owner
+faceZoneSet floorFaces new setsToFaceZone FloorFaces floorCells
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchifyObstacles b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/patchifyObstacles
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/patchifyObstacles
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/patchifyObstacles
diff --git a/tutorials/lagrangian/reactingParcelFoam/hotBoxes/si b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/si
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/blockMeshDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/blockMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/blockMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/blockMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/changeDictionaryDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/changeDictionaryDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/changeDictionaryDict
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/changeDictionaryDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/controlDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/controlDict
similarity index 96%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/controlDict
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/controlDict
index c4d96a03a655a43b4f24bf05d6e1e046748fb9fe..c71aafafd85e3f23911fef04dac1e5f1e5e8a8d7 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/controlDict
+++ b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/controlDict
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-application     reactingParcelFilmFoam;
+application     reactingParcelFoam;
 
 startForm       latestTime;
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/decomposeParDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/decomposeParDict
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/decomposeParDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/extrudeToRegionMeshDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/extrudeToRegionMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/extrudeToRegionMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/extrudeToRegionMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/fvSolution
similarity index 97%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/fvSolution
index c09bbc2858111fce6a0690fde0ee3310757b6a0d..3fd29f13dc6ca7dca02a0d22a1e9f01d7da69f7d 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/fvSolution
@@ -78,10 +78,6 @@ PIMPLE
 
 relaxationFactors
 {
-    fields
-    {
-        ".*Final"       1;
-    }
     equations
     {
         ".*Final"       1;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/topoSetDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/topoSetDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/topoSetDict
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/topoSetDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/wallFilmRegion.orig/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/wallFilmRegion.orig/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/wallFilmRegion.orig/fvSolution b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/fvSolution
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/wallFilmRegion.orig/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/fvSolution
diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/0/p b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/0/p
index 37853de1c915080c4b8f9e32be10e050fc3702df..46d4dec5800c215712a49373e838ef784ae61a30 100644
--- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/0/p
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/0/p
@@ -25,22 +25,28 @@ boundaryField
     {
         type            symmetryPlane;
     }
+
     front
     {
         type            symmetryPlane;
     }
+
     inlet
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
+
     outlet
     {
-        type            fixedValue;
-        value           uniform 100000;
+        type            calculated;
+        value           $internalField;
     }
+
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/additionalControls b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/0/p_rgh
similarity index 50%
rename from tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/additionalControls
rename to tutorials/lagrangian/reactingParcelFoam/parcelInBox/0/p_rgh
index 47ec75e425a2af1a1700ac618f35996f1fea2db5..14453a396814c902ca16ba512deea3dbb17c06e2 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/additionalControls
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/0/p_rgh
@@ -1,20 +1,52 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
 {
     version     2.0;
     format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      additionalControls;
+    class       volScalarField;
+    location    "0";
+    object      p_rgh;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-solvePrimaryRegion true; // false; // true;
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 100000;
+
+boundaryField
+{
+    back
+    {
+        type            symmetryPlane;
+    }
+
+    front
+    {
+        type            symmetryPlane;
+    }
+
+    inlet
+    {
+        type            fixedFluxPressure;
+    }
+
+    outlet
+    {
+        type            prghPressure;
+        p               uniform 100000;
+    }
+
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution
index fb30c548419216afc16e5b20612f9cb9df6eb96a..7800338759955c775ed049dc45638b90b427efbf 100644
--- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution
@@ -47,7 +47,7 @@ solvers
         relTol          0;
     }
 
-    p
+    p_rgh
     {
         solver          GAMG;
         tolerance       0;
@@ -56,9 +56,9 @@ solvers
         maxIter         20;
     }
 
-    pFinal
+    p_rghFinal
     {
-        $p;
+        $p_rgh;
         tolerance       1e-06;
         relTol          0;
     }
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/H2O b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/H2O
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/H2O
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/H2O
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/N2 b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/N2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/N2
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/N2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/O2 b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/O2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/O2
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/O2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/T b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/T
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/T
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/T
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/U b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/U
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/U
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/U
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/p
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/p
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/p
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/p_rgh
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/p_rgh
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/p_rgh
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/wallFilmRegion/Tf b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/wallFilmRegion/Tf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/wallFilmRegion/Tf
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/wallFilmRegion/Tf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/wallFilmRegion/Uf b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/wallFilmRegion/Uf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/wallFilmRegion/Uf
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/wallFilmRegion/Uf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/wallFilmRegion/deltaf b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/wallFilmRegion/deltaf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0.orig/wallFilmRegion/deltaf
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/0.orig/wallFilmRegion/deltaf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allclean b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/Allclean
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allclean
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/Allclean
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/Allrun
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/Allrun
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun.pre b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/Allrun.pre
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun.pre
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/Allrun.pre
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/chemistryProperties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/chemistryProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/chemistryProperties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/chemistryProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/combustionProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/combustionProperties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/combustionProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.dat b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/foam.dat
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/foam.dat
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/foam.dat
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.inp b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/foam.inp
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.inp
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/foam.inp
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/g b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/g
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/g
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/g
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/parcelInjectionProperties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/parcelInjectionProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/parcelInjectionProperties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/parcelInjectionProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/radiationProperties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/radiationProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/radiationProperties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/radiationProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/reactingCloud1Properties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/reactingCloud1Properties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/reactingCloud1Properties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/surfaceFilmProperties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/surfaceFilmProperties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/surfaceFilmProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/thermophysicalProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/turbulenceProperties b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/turbulenceProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/turbulenceProperties
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/constant/turbulenceProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/createWallFilmRegionPatches.setSet b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/createWallFilmRegionPatches.setSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/createWallFilmRegionPatches.setSet
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/createWallFilmRegionPatches.setSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/blockMeshDict b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/blockMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/blockMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/blockMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/controlDict b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/controlDict
similarity index 93%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/controlDict
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/controlDict
index 152db5be516b4111d4ef267660df5bf050da6c62..8a2e9acd65367ed0f3126ad7aeffac7c7ad2b7ed 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/controlDict
+++ b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/controlDict
@@ -15,9 +15,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-application     reactingParcelFilmFoam;
+application     reactingParcelFoam;
 
-startFrom       latestTime; // startTime;
+startFrom       latestTime;
 
 startTime       0;
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/createPatchDict b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/createPatchDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/createPatchDict
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/createPatchDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/decomposeParDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/decomposeParDict
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/decomposeParDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/extrudeToRegionMeshDict b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/extrudeToRegionMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/extrudeToRegionMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/extrudeToRegionMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/fvSolution
similarity index 97%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/fvSolution
index 6b33dbc7f4b60ab039bf8640a038bf5e83739a56..bb84e04232c12314399f5804574cc79fcf6a2f6e 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/fvSolution
@@ -78,14 +78,11 @@ PIMPLE
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
     momentumPredictor yes;
+    solvePrimaryRegion no;
 }
 
 relaxationFactors
 {
-    fields
-    {
-        ".*Final"       1;
-    }
     equations
     {
         ".*Final"       1;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion.topoSet b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion.topoSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion.topoSet
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion.topoSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion/createPatchDict b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion/createPatchDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion/createPatchDict
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion/createPatchDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion/fvSolution b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion/fvSolution
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/system/wallFilmRegion/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/wallFilmRegion/fvSolution
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/wallFilmRegion.setSet b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/wallFilmRegion.setSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/wallFilmRegion.setSet
rename to tutorials/lagrangian/reactingParcelFoam/rivuletPanel/wallFilmRegion.setSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/H2O b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/H2O
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/H2O
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/H2O
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/N2 b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/N2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/N2
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/N2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/O2 b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/O2
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/O2
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/O2
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/T b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/T
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/T
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/T
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/U b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/U
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/U
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/U
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/p
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/p
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/p
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/p_rgh
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/p_rgh
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/p_rgh
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/wallFilmRegion/Tf b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/wallFilmRegion/Tf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/wallFilmRegion/Tf
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/wallFilmRegion/Tf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/wallFilmRegion/Uf b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/wallFilmRegion/Uf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/wallFilmRegion/Uf
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/wallFilmRegion/Uf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/wallFilmRegion/deltaf b/tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/wallFilmRegion/deltaf
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.orig/wallFilmRegion/deltaf
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/0.orig/wallFilmRegion/deltaf
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/Allclean b/tutorials/lagrangian/reactingParcelFoam/splashPanel/Allclean
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/Allclean
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/Allclean
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/Allrun b/tutorials/lagrangian/reactingParcelFoam/splashPanel/Allrun
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/Allrun
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/Allrun
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/Allrun.pre b/tutorials/lagrangian/reactingParcelFoam/splashPanel/Allrun.pre
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/Allrun.pre
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/Allrun.pre
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/chemistryProperties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/chemistryProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/chemistryProperties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/chemistryProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/combustionProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/combustionProperties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/combustionProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.dat b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/foam.dat
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/foam.dat
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/foam.dat
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.inp b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/foam.inp
similarity index 98%
rename from tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.inp
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/foam.inp
index cf67d1ec7cd65fad3ba89bf9f0abbf1fd6ece495..fff06b38e5ea07c5e25cccc08e637384db2d568d 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/foam.inp
+++ b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/foam.inp
@@ -8,4 +8,3 @@ species
 
 reactions
 {}
-
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/g b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/g
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/g
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/g
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/parcelInjectionProperties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/parcelInjectionProperties
similarity index 92%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/parcelInjectionProperties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/parcelInjectionProperties
index 71d9ef11db6f6ae9184a300c4a6592ef0182080a..5776a0c4b4be95c4c0c89538f63981d48754009f 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/parcelInjectionProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/parcelInjectionProperties
@@ -16,7 +16,7 @@ FoamFile
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 // (x y z) (u v w) d rho mDot T cp (Y0..Y2) (Yg0..YgN) (Yl0..YlN) (Ys0..YsN)
 (
-    (0.050 0.025 0.09) (0 0 -5) 0.001 1000 0.002 300 4200 (1)
+    (0.050 0.025 0.09) (0 0 -5) 0.001 1000 0.002 300 4200 (0 1 0) () (1) ()
 );
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/radiationProperties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/radiationProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/radiationProperties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/radiationProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/reactingCloud1Properties
similarity index 89%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/reactingCloud1Properties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/reactingCloud1Properties
index ec5b0e3f566686bfed79e5e9e34ca61f7c82695c..d100cb13a039314aa49e0eb57391617935143f2c 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/reactingCloud1Properties
@@ -74,7 +74,7 @@ subModels
     {
         model1
         {
-            type            reactingLookupTableInjection;
+            type            reactingMultiphaseLookupTableInjection;
             massTotal       0.1;
             parcelBasisType mass;
             SOI             0.01;
@@ -91,10 +91,14 @@ subModels
 
     heatTransferModel none;
 
-    compositionModel singlePhaseMixture;
+    compositionModel singleMixtureFraction;
 
     phaseChangeModel none;
 
+    devolatilisationModel none;
+
+    surfaceReactionModel none;
+
     stochasticCollisionModel none;
 
     surfaceFilmModel thermoSurfaceFilm;
@@ -106,15 +110,24 @@ subModels
         type            rebound;
     }
 
-    singlePhaseMixtureCoeffs
+    singleMixtureFractionCoeffs
     {
         phases
         (
+            gas
+            {
+            }
             liquid
             {
                 H2O          1;
             }
+            solid
+            {
+            }
         );
+        YGasTot0        0;
+        YLiquidTot0     1;
+        YSolidTot0      0;
     }
 
     thermoSurfaceFilmCoeffs
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/surfaceFilmProperties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/surfaceFilmProperties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/surfaceFilmProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/thermophysicalProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/turbulenceProperties b/tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/turbulenceProperties
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/turbulenceProperties
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/constant/turbulenceProperties
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/createWallFilmRegionPatches.setSet b/tutorials/lagrangian/reactingParcelFoam/splashPanel/createWallFilmRegionPatches.setSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/createWallFilmRegionPatches.setSet
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/createWallFilmRegionPatches.setSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/blockMeshDict b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/blockMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/blockMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/blockMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/controlDict b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/controlDict
similarity index 92%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/controlDict
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/controlDict
index c0d58ea671030b23f68282d2e1bac5329534d5fe..42ba783f7ea22d041e58c1c9e83204d42bd1add0 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/controlDict
+++ b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/controlDict
@@ -15,9 +15,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-application     reactingParcelFilmFoam;
+application     reactingParcelFoam;
 
-startFrom       latestTime; // startTime;
+startFrom       latestTime;
 
 startTime       0;
 
@@ -29,7 +29,7 @@ deltaT          1e-04;
 
 writeControl    adjustableRunTime;
 
-writeInterval   0.02;
+writeInterval   0.01;
 
 purgeWrite      0;
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/createPatchDict b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/createPatchDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/createPatchDict
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/createPatchDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/decomposeParDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/decomposeParDict
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/decomposeParDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/extrudeToRegionMeshDict b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/extrudeToRegionMeshDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/extrudeToRegionMeshDict
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/extrudeToRegionMeshDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/fvSolution
similarity index 97%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/fvSolution
index aaee5a108a8a3a7bc68ac42547dc2b07926949ce..275f303fc82bcd63c5a09c5d504ec957541c452c 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/fvSolution
@@ -89,10 +89,6 @@ PIMPLE
 
 relaxationFactors
 {
-    fields
-    {
-        ".*"       1;
-    }
     equations
     {
         ".*"       1;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion.topoSet b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion.topoSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion.topoSet
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion.topoSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/createPatchDict b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/createPatchDict
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/createPatchDict
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/createPatchDict
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/createWallFilmRegionPatches.topoSet b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/createWallFilmRegionPatches.topoSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/createWallFilmRegionPatches.topoSet
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/createWallFilmRegionPatches.topoSet
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/fvSchemes
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSchemes
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/fvSchemes
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSolution b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/fvSolution
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSolution
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/system/wallFilmRegion/fvSolution
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/wallFilmRegion.setSet b/tutorials/lagrangian/reactingParcelFoam/splashPanel/wallFilmRegion.setSet
similarity index 100%
rename from tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/wallFilmRegion.setSet
rename to tutorials/lagrangian/reactingParcelFoam/splashPanel/wallFilmRegion.setSet
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.orig/p
index bef7aaa77adf9b09852de5ec0b4ae64e36a7162a..bdfaddaedb199d06685f83df76be953e1273c092 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.orig/p
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.orig/p
@@ -31,20 +31,23 @@ boundaryField
     }
     inletCentral
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
     inletSides
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
     outlet
     {
-        type            fixedValue;
-        value           uniform 100000;
+        type            calculated;
+        value           $internalField;
     }
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.orig/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..462a0fa1054c950170c41ea1a898adaff3a6607e
--- /dev/null
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.orig/p_rgh
@@ -0,0 +1,57 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 100000;
+
+boundaryField
+{
+    back
+    {
+        type            symmetryPlane;
+    }
+
+    front
+    {
+        type            symmetryPlane;
+    }
+
+    inletCentral
+    {
+        type            fixedFluxPressure;
+    }
+
+    inletSides
+    {
+        type            fixedFluxPressure;
+    }
+
+    outlet
+    {
+        type            prghPressure;
+        p               uniform 100000;
+    }
+
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution
index c2d01dbf6d2351515051fee7ea426ebd67c49aa9..59c7dfc7c1cdacd8297c2d659b1b9e736895fd10 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution
@@ -17,68 +17,61 @@ FoamFile
 
 solvers
 {
-    rho
+    "rho.*"
     {
-        solver          PCG;
-        preconditioner  DIC;
-        tolerance       1e-05;
-        relTol          0.1;
+        solver          diagonal;
     }
 
-    rhoFinal
+    p_rgh
     {
-        $rho;
-        tolerance       1e-05;
-        relTol          0;
-    }
+        solver          GAMG;
+        smoother        DICGaussSeidel;
 
-    "(U|k|omega)"
-    {
-        solver          smoothSolver;
-        smoother        symGaussSeidel;
-        tolerance       1e-06;
-        relTol          0.1;
+        tolerance       1e-6;
+        relTol          0.05;
     }
 
-    "(U|k|omega)Final"
+    p_rghFinal
     {
-        $U;
-        tolerance       1e-06;
+        $p_rgh;
         relTol          0;
     }
 
-    p
+    Phi
     {
-        solver          GAMG;
-        tolerance       0;
-        relTol          0.05;
-        smoother        DICGaussSeidel;
+        $p_rgh;
     }
 
-    pFinal
+    "(U|k|omega)"
     {
-        $p;
-        tolerance       1e-06;
-        relTol          0;
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+
+        tolerance       1e-6;
+        relTol          0.1;
     }
 
-    Phi
+    "(U|k|omega)Final"
     {
-        $p;
+        $U;
+        relTol          0;
     }
 
     "(Yi|O2|N2|H2O)"
     {
         solver          PBiCGStab;
         preconditioner  DILU;
+
         tolerance       1e-6;
         relTol          0;
     }
+
     h
     {
         $Yi;
         relTol          0.1;
     }
+
     hFinal
     {
         $Yi;
@@ -93,11 +86,13 @@ potentialFlow
 
 PIMPLE
 {
-    transonic       no;
     nOuterCorrectors 1;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
     momentumPredictor yes;
+
+    pMaxFactor          1.5;
+    pMinFactor          0.9;
 }
 
 relaxationFactors
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/U b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/U
index f82a26ecb6f5d3a6031376efe411209dda29432a..94f4db394805ca5f0a994f014812815549208007 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/U
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/U
@@ -33,15 +33,14 @@ boundaryField
     {
         type            flowRateInletVelocity;
         massFlowRate    constant 0.00379;
-        rhoInlet        1.22;
         value           uniform (0 14.68 0);
+        rhoInlet        1.22;    // fallback value for e.g. potentialFoam
     }
     inletSides
     {
         type            flowRateInletVelocity;
         massFlowRate    constant 0.00832;
-        rhoInlet        1.22;
-        value           uniform (0 17.79 0);
+        rhoInlet        1.22;    // fallback value for e.g. potentialFoam
     }
     outlet
     {
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/p
index bef7aaa77adf9b09852de5ec0b4ae64e36a7162a..bdfaddaedb199d06685f83df76be953e1273c092 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/p
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/p
@@ -31,20 +31,23 @@ boundaryField
     }
     inletCentral
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
     inletSides
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
     outlet
     {
-        type            fixedValue;
-        value           uniform 100000;
+        type            calculated;
+        value           $internalField;
     }
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..bab3fe3b901be867037acf4bf692114cdb4fd87d
--- /dev/null
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/0.orig/p_rgh
@@ -0,0 +1,57 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 100000;
+
+boundaryField
+{
+    back
+    {
+        type            symmetryPlane;
+    }
+
+    front
+    {
+        type            symmetryPlane;
+    }
+
+    inletCentral
+    {
+        type            zeroGradient;
+    }
+
+    inletSides
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            prghPressure;
+        p               uniform 100000;
+    }
+
+    walls
+    {
+        type            zeroGradient;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSchemes
index 9dcec905c6a92c95b4b569083fcce309cfb30829..50a58cafb6f3c9037c97c7e615ff5cb8353977ed 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSchemes
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSchemes
@@ -23,7 +23,6 @@ ddtSchemes
 gradSchemes
 {
     default         Gauss linear;
-    grad(p)         Gauss linear;
 }
 
 divSchemes
@@ -31,7 +30,7 @@ divSchemes
     default         none;
     div(phi,U)      Gauss upwind;
     div(phid,p)     Gauss upwind;
-    div(phi,K)      Gauss linear;
+    div(phi,K)      Gauss upwind;
     div(phi,h)     Gauss upwind;
     div(phi,k)      Gauss upwind;
     div(phi,epsilon) Gauss upwind;
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSolution
index 4471858fd9af7021aa54fe5c51daa52c9b858802..56272e8c0716abceaa21947d19890a2156f7629b 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSolution
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/system/fvSolution
@@ -22,27 +22,28 @@ solvers
         solver          PCG;
         preconditioner  DIC;
         tolerance       0;
-        relTol          0.1;
+        relTol          0;
     }
 
-    p
+    p_rgh
     {
         solver           GAMG;
-
-        tolerance        0;
-        relTol           0.05;
-
         smoother         DICGaussSeidel;
 
-
+        tolerance        1e-6;
+        relTol           0.05;
 
         maxIter          50;
     };
 
-    pFinal
+    p_rghFinal
     {
-        $p;
-        tolerance        1e-4;
+        $p_rgh;
+    }
+
+    Phi
+    {
+        $p_rgh;
     }
 
     "(U|Yi|h|k|omega|.*Final)"
@@ -61,14 +62,21 @@ solvers
 
 }
 
+potentialFlow
+{
+    // Used for potentialFoam initialisation
+    nNonOrthogonalCorrectors 5;
+}
+
 PIMPLE
 {
-    nOuterCorrectors 1;
-    nCorrectors     2;
+    nOuterCorrectors    1;
+    nCorrectors         2;
     nNonOrthogonalCorrectors 0;
-    momentumPredictor yes;
-    rhoMin          0.1;
-    rhoMax          1.5;
+    momentumPredictor   yes;
+
+    pMaxFactor          1.5;
+    pMinFactor          0.9;
 
     maxCo           2.5;
     rDeltaTSmoothingCoeff 0.5;