diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C index ea8ec320..9b0be1df 100644 --- a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C @@ -82,6 +82,7 @@ isotropicFluctuations::isotropicFluctuations sm.mesh(), dimensionedScalar("D0", dimensionSet(0,0,0,0,0,0,0), D0_) ), + maxDisplacement_(propsDict_.lookupOrDefault("maxDisplacement", -1.0)), dtDEM_(particleCloud_.dataExchangeM().DEMts()), ranGen_(clock::getTime()+pid()) { @@ -126,6 +127,9 @@ void isotropicFluctuations::setForce() const interpolationCellPoint voidfractionInterpolator_(voidfraction_); interpolationCellPoint voidfractionRecInterpolator_(voidfractionRec_); + scalar maxVel = maxDisplacement_ / dtDEM_; + scalar magFlucU = 0.0; + for(int index = 0;index < particleCloud_.numberOfParticles(); ++index) { cellI = particleCloud_.cellIDs()[index][0]; @@ -157,7 +161,15 @@ void isotropicFluctuations::setForce() const if(deltaVoidfrac>0) { D = D0Field_[cellI]; - flucU=unitFlucDir()*fluctuationMag(relVolfractionExcess,D); + magFlucU = fluctuationMag(relVolfractionExcess,D); + if (maxVel > 0.0 && magFlucU > maxVel) + { + flucU=unitFlucDir()*maxVel; + } + else + { + flucU=unitFlucDir()*fluctuationMag(relVolfractionExcess,D); + } } // write particle based data to global array diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H index 47c74e58..360b128f 100644 --- a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H @@ -1,6 +1,6 @@ /*---------------------------------------------------------------------------*\ CFDEMcoupling academic - Open Source CFD-DEM coupling - + Contributing authors: Thomas Lichtenegger Copyright (C) 2015- Johannes Kepler University, Linz @@ -46,24 +46,24 @@ class isotropicFluctuations { protected: dictionary propsDict_; - + bool interpolate_; - + bool measureDiff_; - + mutable OFstream recErrorFile_; // ignore fluctuations in region word ignoreCellsName_; autoPtr ignoreCells_; - + bool existIgnoreCells_; word voidfractionFieldName_; - + const volScalarField& voidfraction_; - + word voidfractionRecFieldName_; const volScalarField& voidfractionRec_; @@ -76,6 +76,8 @@ protected: volScalarField D0Field_; + scalar maxDisplacement_; + const scalar dtDEM_; virtual vector unitFlucDir() const;