diff --git a/src/lagrangian/cfdemParticle/Make/files b/src/lagrangian/cfdemParticle/Make/files
index a9338ca1..9baa9dfe 100644
--- a/src/lagrangian/cfdemParticle/Make/files
+++ b/src/lagrangian/cfdemParticle/Make/files
@@ -68,6 +68,7 @@ $(forceModels)/Fines/Fines.C
$(forceModels)/Fines/FinesFields.C
$(forceModels)/Fines/FanningDynFines.C
$(forceModels)/Fines/ErgunStatFines.C
+$(forceModels)/granKineticEnergy/granKineticEnergy.C
$(forceModelsMS)/forceModelMS/forceModelMS.C
$(forceModelsMS)/forceModelMS/newForceModelMS.C
diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/granKineticEnergy/granKineticEnergy.C b/src/lagrangian/cfdemParticle/subModels/forceModel/granKineticEnergy/granKineticEnergy.C
new file mode 100644
index 00000000..350b20cb
--- /dev/null
+++ b/src/lagrangian/cfdemParticle/subModels/forceModel/granKineticEnergy/granKineticEnergy.C
@@ -0,0 +1,136 @@
+/*---------------------------------------------------------------------------*\
+License
+ This 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.
+ This code 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 this code. If not, see .
+
+ Copyright (C) 2015- Thomas Lichtenegger, JKU Linz, Austria
+
+Description
+ calculates the Sauter mean diameter \sum d_i^3 / \sum d_i^2
+
+SourceFiles
+ granKineticEnergy.C
+\*---------------------------------------------------------------------------*/
+
+#include "error.H"
+
+#include "granKineticEnergy.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(granKineticEnergy, 0);
+
+addToRunTimeSelectionTable
+(
+ forceModel,
+ granKineticEnergy,
+ dictionary
+);
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+// Construct from components
+granKineticEnergy::granKineticEnergy
+(
+ const dictionary& dict,
+ cfdemCloud& sm
+)
+:
+ forceModel(dict,sm),
+ propsDict_(dict.subDict(typeName + "Props")),
+ vfluc_(NULL),
+ UsFieldName_(propsDict_.lookup("granVelFieldName")),
+ UsField_(sm.mesh().lookupObject (UsFieldName_)),
+ granKineticEnergy_
+ ( IOobject
+ (
+ "granKineticEnergy",
+ sm.mesh().time().timeName(),
+ sm.mesh(),
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE
+ ),
+ sm.mesh(),
+ dimensionedScalar("zero", dimensionSet(0,2,-2,0,0), 0),
+ "zeroGradient"
+ )
+{
+ allocateMyArrays();
+ granKineticEnergy_.write();
+
+
+ // init force sub model
+ setForceSubModels(propsDict_);
+}
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+granKineticEnergy::~granKineticEnergy()
+{
+ delete vfluc_;
+}
+
+// * * * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * * //
+void granKineticEnergy::allocateMyArrays() const
+{
+ // get memory for 2d arrays
+ double initVal=0.0;
+ particleCloud_.dataExchangeM().allocateArray(vfluc_,initVal,1);
+}
+// * * * * * * * * * * * * * * * public Member Functions * * * * * * * * * * * * * //
+
+void granKineticEnergy::setForce() const
+{
+ allocateMyArrays();
+
+ label cellI=0;
+ vector velfluc(0,0,0);
+
+
+ for(int index = 0;index < particleCloud_.numberOfParticles(); ++index)
+ {
+ cellI = particleCloud_.cellIDs()[index][0];
+ if(cellI >= 0)
+ {
+ velfluc = particleCloud_.velocity(index) - UsField_[cellI];
+ vfluc_[index][0] = magSqr(velfluc);
+ }
+ }
+
+ granKineticEnergy_.primitiveFieldRef() = 0.0;
+
+ particleCloud_.averagingM().resetWeightFields();
+ particleCloud_.averagingM().setScalarAverage
+ (
+ granKineticEnergy_,
+ vfluc_,
+ particleCloud_.particleWeights(),
+ particleCloud_.averagingM().UsWeightField(),
+ NULL
+ );
+
+ granKineticEnergy_ *= 0.5;
+
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/granKineticEnergy/granKineticEnergy.H b/src/lagrangian/cfdemParticle/subModels/forceModel/granKineticEnergy/granKineticEnergy.H
new file mode 100644
index 00000000..8cc189b6
--- /dev/null
+++ b/src/lagrangian/cfdemParticle/subModels/forceModel/granKineticEnergy/granKineticEnergy.H
@@ -0,0 +1,89 @@
+/*---------------------------------------------------------------------------*\
+License
+ This 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.
+ This code 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 this code. If not, see .
+
+ Copyright (C) 2015- Thomas Lichtenegger, JKU Linz, Austria
+
+Description
+ calculates the granular kinetic energy
+
+SourceFiles
+ granKineticEnergy.C
+\*---------------------------------------------------------------------------*/
+
+#ifndef granKineticEnergy_H
+#define granKineticEnergy_H
+
+#include "forceModel.H"
+#include "averagingModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class granKineticEnergy Declaration
+\*---------------------------------------------------------------------------*/
+
+class granKineticEnergy
+:
+ public forceModel
+{
+private:
+
+ dictionary propsDict_;
+
+ mutable double **vfluc_;
+
+ mutable volScalarField granKineticEnergy_;
+
+ word UsFieldName_;
+
+ const volVectorField& UsField_;
+
+ void allocateMyArrays() const;
+
+public:
+
+ //- Runtime type information
+ TypeName("granKineticEnergy");
+
+ // Constructors
+
+ //- Construct from components
+ granKineticEnergy
+ (
+ const dictionary& dict,
+ cfdemCloud& sm
+ );
+
+ // Destructor
+
+ ~granKineticEnergy();
+
+
+ // Member Functions
+ void setForce() const;
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/cfdemParticleComp/Make/files b/src/lagrangian/cfdemParticleComp/Make/files
index 93f07759..df0d4379 100644
--- a/src/lagrangian/cfdemParticleComp/Make/files
+++ b/src/lagrangian/cfdemParticleComp/Make/files
@@ -64,6 +64,7 @@ $(forceModels)/Fines/Fines.C
$(forceModels)/Fines/FinesFields.C
$(forceModels)/Fines/FanningDynFines.C
$(forceModels)/Fines/ErgunStatFines.C
+$(forceModels)/granKineticEnergy/granKineticEnergy.C
$(forceSubModels)/forceSubModel/newForceSubModel.C
$(forceSubModels)/forceSubModel/forceSubModel.C