diff --git a/src/TurbulenceModels/incompressible/incompressibleTurbulenceModels.C b/src/TurbulenceModels/incompressible/incompressibleTurbulenceModels.C
index 2c4072105d8e92a089aeb6bc200443b1781240b9..ab7890ebc6a76bd973d1e472a9c3fe07a9e12696 100644
--- a/src/TurbulenceModels/incompressible/incompressibleTurbulenceModels.C
+++ b/src/TurbulenceModels/incompressible/incompressibleTurbulenceModels.C
@@ -107,6 +107,7 @@ namespace Foam
 
 #include "LESModel.H"
 #include "Smagorinsky.H"
+#include "kEqn.H"
 
 namespace Foam
 {
@@ -138,6 +139,22 @@ namespace Foam
             dictionary
         );
     }
+
+
+    namespace LESModels
+    {
+        typedef kEqn<incompressibleTransportTurbulenceModel>
+            incompressiblekEqn;
+
+        defineNamedTemplateTypeNameAndDebug(incompressiblekEqn, 0);
+
+        addToRunTimeSelectionTable
+        (
+            incompressibleLESModel,
+            incompressiblekEqn,
+            dictionary
+        );
+    }
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/Smagorinsky/Smagorinsky.H b/src/TurbulenceModels/turbulenceModels/LES/Smagorinsky/Smagorinsky.H
index 35930f0802ecd8657fc296e3975c2bdf55e52c30..8467525c8545beb4282c88eefa611a7d3f954174 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/Smagorinsky/Smagorinsky.H
+++ b/src/TurbulenceModels/turbulenceModels/LES/Smagorinsky/Smagorinsky.H
@@ -145,7 +145,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct();
 
-        //- Re-read model coefficients if they have changed
+        //- Read model coefficients if they have changed
         virtual bool read();
 };
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.C b/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.C
new file mode 100644
index 0000000000000000000000000000000000000000..a1bd27d1bf1ab443a2d82ef4dada035b14fb9ac2
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.C
@@ -0,0 +1,217 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 "kEqn.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace LESModels
+{
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+kEqn<BasicTurbulenceModel>::kEqn
+(
+    const alphaField& alpha,
+    const rhoField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& alphaPhi,
+    const surfaceScalarField& phi,
+    const transportModel& transport,
+    const word& propertiesName,
+    const word& type
+)
+:
+    eddyViscosity<LESModel<BasicTurbulenceModel> >
+    (
+        type,
+        alpha,
+        rho,
+        U,
+        alphaPhi,
+        phi,
+        transport,
+        propertiesName
+    ),
+
+    k_
+    (
+        IOobject
+        (
+            IOobject::groupName("k", this->U_.group()),
+            this->runTime_.timeName(),
+            this->mesh_,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        this->mesh_
+    ),
+
+    ck_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "ck",
+            this->coeffDict_,
+            0.094
+        )
+    ),
+
+    ce_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "ce",
+            this->coeffDict_,
+            1.048
+        )
+    )
+{
+    if (type == typeName)
+    {
+        correctNut();
+        this->printCoeffs(type);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+bool kEqn<BasicTurbulenceModel>::read()
+{
+    if (eddyViscosity<LESModel<BasicTurbulenceModel> >::read())
+    {
+        ck_.readIfPresent(this->coeffDict());
+        ce_.readIfPresent(this->coeffDict());
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+template<class BasicTurbulenceModel>
+tmp<volScalarField> kEqn<BasicTurbulenceModel>::epsilon() const
+{
+    return tmp<volScalarField>
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                IOobject::groupName("epsilon", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            ce_*k()*sqrt(k())/this->delta()
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+void kEqn<BasicTurbulenceModel>::correctNut()
+{
+    this->nut_ = ck_*sqrt(k_)*this->delta();
+    this->nut_.correctBoundaryConditions();
+}
+
+
+template<class BasicTurbulenceModel>
+tmp<fvScalarMatrix> kEqn<BasicTurbulenceModel>::kSource() const
+{
+    return tmp<fvScalarMatrix>
+    (
+        new fvScalarMatrix
+        (
+            k_,
+            dimVolume*this->rho_.dimensions()*k_.dimensions()
+            /dimTime
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+void kEqn<BasicTurbulenceModel>::correct()
+{
+    // Local references
+    const alphaField& alpha = this->alpha_;
+    const rhoField& rho = this->rho_;
+    const surfaceScalarField& alphaPhi = this->alphaPhi_;
+    const surfaceScalarField& phi = this->phi_;
+    const volVectorField& U = this->U_;
+    volScalarField& nut = this->nut_;
+
+    if (!this->turbulence_)
+    {
+        correctNut();
+        return;
+    }
+
+    eddyViscosity<LESModel<BasicTurbulenceModel> >::correct();
+
+    volScalarField divU(fvc::div(fvc::absolute(phi/fvc::interpolate(rho), U)));
+
+    tmp<volTensorField> tgradU(fvc::grad(U));
+    volScalarField G(this->GName(), nut*(tgradU() && dev(twoSymm(tgradU()))));
+    tgradU.clear();
+
+    tmp<fvScalarMatrix> kEqn
+    (
+        fvm::ddt(alpha, rho, k_)
+      + fvm::div(alphaPhi, k_)
+      - fvm::Sp(fvc::ddt(alpha, rho) + fvc::div(alphaPhi), k_)
+      - fvm::laplacian(alpha*rho*DkEff(), k_)
+     ==
+        alpha*rho*G
+      - fvm::SuSp((2.0/3.0)*alpha*rho*divU, k_)
+      - fvm::Sp(ce_*alpha*rho*sqrt(k_)/this->delta(), k_)
+      + kSource()
+    );
+
+    kEqn().relax();
+    solve(kEqn);
+    bound(k_, this->kMin_);
+
+    correctNut();
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace LESModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.H b/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..ac065c0be7ec748cbe4e2a56cd8d0b09421e59cc
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.H
@@ -0,0 +1,180 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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::LESModels::kEqn
+
+Group
+    grpLESTurbulence
+
+Description
+    One Equation Eddy Viscosity Model
+
+    Eddy viscosity SGS model using a modeled balance equation to simulate the
+    behaviour of k, hence,
+    \verbatim
+        d/dt(rho*k) + div(rho*U*k) - div(rho*nuEff*grad(k))
+        =
+        -rho*D:B - ce*rho*k^(3/2)/delta
+
+    and
+
+        B = 2/3*k*I - 2*nuSgs*dev(D)
+
+    where
+
+        D = symm(grad(U));
+        nuSgs = ck*sqrt(k)*delta
+        nuEff = nuSgs + nu
+    \endverbatim
+
+SourceFiles
+    kEqn.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef kEqn_H
+#define kEqn_H
+
+#include "LESModel.H"
+#include "eddyViscosity.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace LESModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class kEqn Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class BasicTurbulenceModel>
+class kEqn
+:
+    public eddyViscosity<LESModel<BasicTurbulenceModel> >
+{
+
+protected:
+
+    // Protected data
+
+        volScalarField k_;
+
+        dimensionedScalar ck_;
+        dimensionedScalar ce_;
+
+
+    // Private Member Functions
+
+        //- Update sub-grid scale fields
+        void updateSubGridScaleFields();
+
+        // Disallow default bitwise copy construct and assignment
+        kEqn(const kEqn&);
+        kEqn& operator=(const kEqn&);
+
+
+    // Protected member functions
+
+        virtual void correctNut();
+        virtual tmp<fvScalarMatrix> kSource() const;
+
+
+public:
+
+    typedef typename BasicTurbulenceModel::alphaField alphaField;
+    typedef typename BasicTurbulenceModel::rhoField rhoField;
+    typedef typename BasicTurbulenceModel::transportModel transportModel;
+
+
+    //- Runtime type information
+    TypeName("kEqn");
+
+
+    // Constructors
+
+        //- Constructor from components
+        kEqn
+        (
+            const alphaField& alpha,
+            const rhoField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& alphaPhi,
+            const surfaceScalarField& phi,
+            const transportModel& transport,
+            const word& propertiesName = turbulenceModel::propertiesName,
+            const word& type = typeName
+        );
+
+
+    //- Destructor
+    virtual ~kEqn()
+    {}
+
+
+    // Member Functions
+
+        //- Return SGS kinetic energy
+        virtual tmp<volScalarField> k() const
+        {
+            return k_;
+        }
+
+        //- Return sub-grid disipation rate
+        virtual tmp<volScalarField> epsilon() const;
+
+        //- Return the effective diffusivity for k
+        tmp<volScalarField> DkEff() const
+        {
+            return tmp<volScalarField>
+            (
+                new volScalarField("DkEff", this->nut_ + this->nu())
+            );
+        }
+
+        //- Correct Eddy-Viscosity and related properties
+        virtual void correct();
+
+        //- Read model coefficients if they have changed
+        virtual bool read();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace LESModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+#   include "kEqn.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //