diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files
index 7a9fd19f7a..c78c93da87 100644
--- a/src/regionModels/surfaceFilmModels/Make/files
+++ b/src/regionModels/surfaceFilmModels/Make/files
@@ -65,6 +65,7 @@ $(THERMOMODELS)/filmViscosityModel/constantViscosity/constantViscosity.C
$(THERMOMODELS)/filmViscosityModel/liquidViscosity/liquidViscosity.C
$(THERMOMODELS)/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C
$(THERMOMODELS)/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C
+$(THERMOMODELS)/filmViscosityModel/function1Viscosity/function1Viscosity.C
/* Boundary conditions */
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C
new file mode 100644
index 0000000000..ea7437c767
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C
@@ -0,0 +1,94 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "function1Viscosity.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(function1Viscosity, 0);
+
+addToRunTimeSelectionTable
+(
+ filmViscosityModel,
+ function1Viscosity,
+ dictionary
+);
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+function1Viscosity::function1Viscosity
+(
+ surfaceFilmModel& film,
+ const dictionary& dict,
+ volScalarField& mu
+)
+:
+ filmViscosityModel(typeName, film, dict, mu),
+ viscosity_(filmViscosityModel::New(film, coeffDict_, mu)),
+ function_
+ (
+ Function1::New("function", coeffDict_)
+ )
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+function1Viscosity::~function1Viscosity()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
+
+void function1Viscosity::correct
+(
+ const volScalarField& p,
+ const volScalarField& T
+)
+{
+ viscosity_->correct(p, T);
+ mu_.primitiveFieldRef() *= function_->value(T)();
+ mu_.correctBoundaryConditions();
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H
new file mode 100644
index 0000000000..6d4aeea40c
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H
@@ -0,0 +1,121 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::regionModels::surfaceFilmModels::function1Viscosity
+
+Description
+ The Foam::Function1 temperature-dependent viscosity model multiplies the
+ viscosity of a base model by a Function1 temperature function.
+
+SourceFiles
+ function1Viscosity.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef function1Viscosity_H
+#define function1Viscosity_H
+
+#include "filmViscosityModel.H"
+#include "Function1.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class function1Viscosity Declaration
+\*---------------------------------------------------------------------------*/
+
+class function1Viscosity
+:
+ public filmViscosityModel
+{
+ // Private member functions
+
+ //- Disallow default bitwise copy construct
+ function1Viscosity(const function1Viscosity&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const function1Viscosity&);
+
+
+protected:
+
+ // Protected data
+
+ //- Base viscosity model
+ autoPtr viscosity_;
+
+ //- Viscosity factor as a function of temperature
+ autoPtr> function_;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("function1");
+
+
+ // Constructors
+
+ //- Construct from surface film model
+ function1Viscosity
+ (
+ surfaceFilmModel& film,
+ const dictionary& dict,
+ volScalarField& mu
+ );
+
+
+ //- Destructor
+ virtual ~function1Viscosity();
+
+
+ // Member Functions
+
+ //- Correct
+ virtual void correct
+ (
+ const volScalarField& p,
+ const volScalarField& T
+ );
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //