diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files
index 505638dcc71e979a185f4bf6b06db6f705ed1a92..5fe7e8c5e81a46d5315c6ccb03060a41b09e0121 100644
--- a/src/regionModels/surfaceFilmModels/Make/files
+++ b/src/regionModels/surfaceFilmModels/Make/files
@@ -7,7 +7,7 @@ thermoSingleLayer/thermoSingleLayer.C
 
 
 /* Sub-models */
-submodels/subModelBase.C
+submodels/filmSubModelBase.C
 
 KINEMATICMODELS=submodels/kinematic
 $(KINEMATICMODELS)/force/force/force.C
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
new file mode 100644
index 0000000000000000000000000000000000000000..c205882dadcb93d1aafbee280d79fdc5218975c8
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
@@ -0,0 +1,100 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "filmSubModelBase.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+filmSubModelBase::filmSubModelBase(surfaceFilmModel& owner)
+:
+    subModelBase(owner.outputProperties()),
+    owner_(owner)
+{}
+
+
+filmSubModelBase::filmSubModelBase
+(
+    surfaceFilmModel& owner,
+    const dictionary& dict,
+    const word& baseName,
+    const word& modelType,
+    const word& dictExt
+)
+:
+    subModelBase
+    (
+        owner.outputProperties(),
+        dict,
+        baseName,
+        modelType,
+        dictExt
+    ),
+    owner_(owner)
+{}
+
+
+filmSubModelBase::filmSubModelBase
+(
+    const word& modelName,
+    surfaceFilmModel& owner,
+    const dictionary& dict,
+    const word& baseName,
+    const word& modelType
+)
+:
+    subModelBase
+    (
+        modelName,
+        owner.outputProperties(),
+        dict,
+        baseName,
+        modelType
+    ),
+    owner_(owner)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+filmSubModelBase::~filmSubModelBase()
+{}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
new file mode 100644
index 0000000000000000000000000000000000000000..9b9a66cff8f1af4872df181ddee55369fc70e85f
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
@@ -0,0 +1,131 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::subModelBase
+
+Description
+    Base class for surface film sub-models
+
+SourceFiles
+    filmSubModelBaseI.H
+    filmSubModelBase.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef filmSubModelBase_H
+#define filmSubModelBase_H
+
+#include "surfaceFilmModel.H"
+#include "subModelBase.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class filmSubModelBase Declaration
+\*---------------------------------------------------------------------------*/
+
+class filmSubModelBase
+:
+    public subModelBase
+{
+protected:
+
+    // Protected data
+
+        //- Reference to the owner surface film model
+        const surfaceFilmModel& owner_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct null
+        filmSubModelBase(surfaceFilmModel& owner);
+
+        //- Construct from owner film wihout name
+        filmSubModelBase
+        (
+            surfaceFilmModel& owner,
+            const dictionary& dict,
+            const word& baseName,
+            const word& modelType,
+            const word& dictExt = "Coeffs"
+        );
+
+        //- Construct from owner film with name
+        filmSubModelBase
+        (
+            const word& modelName,
+            surfaceFilmModel& owner,
+            const dictionary& dict,
+            const word& baseName,
+            const word& modelType
+        );
+
+
+    //- Destructor
+    virtual ~filmSubModelBase();
+
+
+    // Member Functions
+
+        // Access
+
+            //- Return the reference to the owner surface film model
+            inline const surfaceFilmModel& owner() const;
+
+            template<class FilmType>
+            inline const FilmType& filmType() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "filmSubModelBaseI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "filmSubModelBaseTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..e7a7e98bee774fcb1138592f2f9f433cf6aa1387
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
@@ -0,0 +1,56 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template<class FilmType>
+const FilmType& filmSubModelBase::filmType() const
+{
+    if (!isA<FilmType>(owner_))
+    {
+        FatalErrorIn("FilmType& surfaceFilmModel::film() const")
+            << "Model " << this->modelType() << " requested film type "
+            << FilmType::typeName << " but film is type " << owner_.type()
+            << abort(FatalError);
+    }
+
+    return refCast<const FilmType>(owner_);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //