diff --git a/applications/solvers/rcfdemSolverRhoSteadyPimple/limitP.H b/applications/solvers/rcfdemSolverRhoSteadyPimple/limitP.H new file mode 100644 index 00000000..f0971a14 --- /dev/null +++ b/applications/solvers/rcfdemSolverRhoSteadyPimple/limitP.H @@ -0,0 +1,2 @@ +p = max(p, pMin); +p = min(p, pMax); diff --git a/applications/solvers/rcfdemSolverRhoSteadyPimple/limitU.H b/applications/solvers/rcfdemSolverRhoSteadyPimple/limitU.H new file mode 100644 index 00000000..f699b25c --- /dev/null +++ b/applications/solvers/rcfdemSolverRhoSteadyPimple/limitU.H @@ -0,0 +1,11 @@ +if (UMax.value() > 0) +{ + forAll(U,cellI) + { + scalar mU(mag(U[cellI])); + if (mU > UMax.value()) + { + U[cellI] *= UMax.value() / mU; + } + } +} diff --git a/src/lagrangian/cfdemParticle/Make/files b/src/lagrangian/cfdemParticle/Make/files index 286b53f3..ae2e5b9a 100644 --- a/src/lagrangian/cfdemParticle/Make/files +++ b/src/lagrangian/cfdemParticle/Make/files @@ -76,6 +76,7 @@ $(forceModels)/volWeightedAverage/volWeightedAverage.C $(forceModels)/deactivateForce/deactivateForce.C $(forceModels)/freeStreaming/freeStreaming.C $(forceModels)/isotropicFluctuations/isotropicFluctuations.C +$(forceModels)/directionForcedFluctuations/directionForcedFluctuations.C $(forceModels)/evaluateFluctuations/evaluateFluctuations.C $(forceModels)/directedDiffusiveRelaxation/directedDiffusiveRelaxation.C $(forceModels)/potentialRelaxation/potentialRelaxation.C diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C index 8cc7a0c0..6c9c5579 100644 --- a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.C @@ -51,11 +51,12 @@ addToRunTimeSelectionTable isotropicFluctuations::isotropicFluctuations ( const dictionary& dict, - cfdemCloud& sm + cfdemCloud& sm, + word type ) : forceModel(dict,sm), - propsDict_(dict.subDict(typeName + "Props")), + propsDict_(dict.subDict(type + "Props")), interpolate_(propsDict_.lookupOrDefault("interpolation", false)), measureDiff_(propsDict_.lookupOrDefault("measureDiff", false)), recErrorFile_("recurrenceError"), @@ -87,7 +88,7 @@ isotropicFluctuations::isotropicFluctuations if(ignoreCellsName_ != "none") { ignoreCells_.set(new cellSet(particleCloud_.mesh(),ignoreCellsName_)); - Info << "isotropicFluctuations: ignoring fluctuations in cellSet " << ignoreCells_().name() << + Info << type << ": ignoring fluctuations in cellSet " << ignoreCells_().name() << " with " << ignoreCells_().size() << " cells." << endl; } else existIgnoreCells_ = false; @@ -156,7 +157,7 @@ void isotropicFluctuations::setForce() const if(deltaVoidfrac>0) { D = D0Field_[cellI]; - flucU=unitRndVec()*fluctuationMag(relVolfractionExcess,D); + flucU=unitFlucDir()*fluctuationMag(relVolfractionExcess,D); } // write particle based data to global array @@ -192,8 +193,9 @@ scalar isotropicFluctuations::fluctuationMag(const scalar relVolfractionExcess, } } -vector isotropicFluctuations::unitRndVec() const +vector isotropicFluctuations::unitFlucDir() const { + // unit random vector // algorithm according to: // Marsaglia. "Choosing a point from the surface of a sphere." The Annals of Mathematical Statistics 43.2 (1972): 645-646. scalar v1(0.0); diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H index f1f0c915..47c74e58 100644 --- a/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/isotropicFluctuations/isotropicFluctuations.H @@ -44,7 +44,7 @@ class isotropicFluctuations : public forceModel { -private: +protected: dictionary propsDict_; bool interpolate_; @@ -78,7 +78,7 @@ private: const scalar dtDEM_; - vector unitRndVec() const; + virtual vector unitFlucDir() const; scalar fluctuationMag(const scalar, const scalar) const; @@ -98,7 +98,8 @@ public: isotropicFluctuations ( const dictionary& dict, - cfdemCloud& sm + cfdemCloud& sm, + word type = "isotropicFluctuations" ); // Destructor diff --git a/src/lagrangian/cfdemParticleComp/Make/files b/src/lagrangian/cfdemParticleComp/Make/files index af8b8d34..8387f7bd 100644 --- a/src/lagrangian/cfdemParticleComp/Make/files +++ b/src/lagrangian/cfdemParticleComp/Make/files @@ -71,6 +71,7 @@ $(forceModels)/particleCellVolume/particleCellVolume.C $(forceModels)/deactivateForce/deactivateForce.C $(forceModels)/freeStreaming/freeStreaming.C $(forceModels)/isotropicFluctuations/isotropicFluctuations.C +$(forceModels)/directionForcedFluctuations/directionForcedFluctuations.C $(forceModels)/evaluateFluctuations/evaluateFluctuations.C $(forceModels)/directedDiffusiveRelaxation/directedDiffusiveRelaxation.C $(forceModels)/BeetstraDrag/BeetstraDrag.C