From d7fd626e41d4160eadc13d2ae9446c09855cd69c Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Fri, 15 Jan 2021 15:25:18 +0000 Subject: [PATCH] multiphaseEulerFoam: Added minimum diameter limit to KochFriedlander sintering model Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum Dresden - Rossendorf (HZDR) --- .../sinteringModels/KochFriedlander/KochFriedlander.C | 10 ++++++---- .../sinteringModels/KochFriedlander/KochFriedlander.H | 11 +++++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.C b/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.C index 3d62213f7f..302bb7c33e 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2019-2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2019-2021 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -59,7 +59,8 @@ KochFriedlander Cs_(dict_.lookup("Cs")), n_(dict_.lookup("n")), m_(dict_.lookup("m")), - Ta_(dict_.lookup("Ta")) + Ta_(dict_.lookup("Ta")), + dpMin_(dict_.lookupOrDefault("dpMin", 0)) {} @@ -93,9 +94,10 @@ Foam::diameterModels::shapeModels::sinteringModels::KochFriedlander::tau() const forAll(tau, celli) { + const scalar dp = 6/max(6/fi.dSph().value(), kappai[celli]); + tau[celli] = - Cs_*pow(6.0/max(6.0/fi.dSph().value(), kappai[celli]), n_) - *pow(T[celli], m_)*exp(Ta_/T[celli]); + Cs_*pow(dp, n_)*pow(T[celli], m_)*exp(Ta_/T[celli]*(1 - dpMin_/dp)); } return tTau; diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.H b/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.H index bf40de0b3d..7f657bd3be 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/diameterModels/velocityGroup/sizeGroup/shapeModels/fractal/sinteringModels/KochFriedlander/KochFriedlander.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2019-2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2019-2021 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,9 +29,12 @@ Description sintering is given by \f[ - \tau = c_s d_{p_i}^n T^m \exp\left(\frac{T_a}{T}\right)\;. + \tau = c_s d_{p_i}^n T^m \exp(T_a/T \cdot [1 - d_{p,min}/d_{p_i}])\;. \f] + Note that the correction factor in the exponential function can be + eliminated by setting \f$d_{p,min}\f$ to zero which is done by default. + Reference: \verbatim Koch, W., & Friedlander, S. K. (1990). @@ -47,6 +50,7 @@ Usage n | Particle diameter exponent | yes | none m | Temperature exponent | yes | none Ta | Activation temperature | yes | none + dpMin | Minimum primary particle diameter | no | 0 \endtable SourceFiles @@ -95,6 +99,9 @@ class KochFriedlander //- Activation temperature scalar Ta_; + //- Minimum primary particle diameter, defaults to Zero + scalar dpMin_; + public: