From f2e4aac14cd866e39c1d63c4bdf580e36197d71f Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Wed, 3 May 2017 19:18:30 +0100 Subject: [PATCH] BUG: reactingEulerFoam: Corrected definition of Reynolds number in Beetstra and Tenneti drag laws Patch contributed by Alberto Passalacqua, Iowa State University --- .../dragModels/Beetstra/Beetstra.C | 15 +++++------ .../dragModels/Tenneti/Tenneti.C | 25 ++++++++----------- .../dragModels/Tenneti/Tenneti.H | 5 +--- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.C index 932bff3fb6..a76814e711 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2016-2017 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -73,11 +73,12 @@ Foam::tmp Foam::dragModels::Beetstra::CdRe() const max(scalar(1) - pair_.dispersed(), pair_.continuous().residualAlpha()) ); - volScalarField Re(pair_.Re()); - volScalarField ReLim + volScalarField Res(alpha2*pair_.Re()); + + volScalarField ResLim ( "ReLim", - max(Re, residualRe_) + max(Res, residualRe_) ); volScalarField F0 @@ -89,9 +90,9 @@ Foam::tmp Foam::dragModels::Beetstra::CdRe() const volScalarField F1 ( "F1", - 0.413*Re/(24.0*sqr(alpha2))*(1.0/alpha2 - + 3.0*alpha1*alpha2 + 8.4*pow(ReLim, -0.343)) - /(1.0 + pow(10.0, 3*alpha1)*pow(ReLim, -(1.0 + 4.0*alpha1)/2.0)) + 0.413*Res/(24.0*sqr(alpha2))*(1.0/alpha2 + + 3.0*alpha1*alpha2 + 8.4*pow(ResLim, -0.343)) + /(1.0 + pow(10.0, 3*alpha1)*pow(ResLim, -(1.0 + 4.0*alpha1)/2.0)) ); return 24.0*alpha2*(F0 + F1); diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.C index 7fcda489a9..9395700b72 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2016-2017 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -50,15 +50,6 @@ Foam::dragModels::Tenneti::Tenneti ) : dragModel(dict, pair, registerObject), - SchillerNaumann_ - ( - new SchillerNaumann - ( - dict, - pair, - false - ) - ), residualRe_("residualRe", dimless, dict.lookup("residualRe")) {} @@ -83,6 +74,14 @@ Foam::tmp Foam::dragModels::Tenneti::CdRe() const max(scalar(1) - pair_.dispersed(), pair_.continuous().residualAlpha()) ); + volScalarField Res(alpha2*pair_.Re()); + + volScalarField CdReIsolated + ( + neg(Res - 1000)*24.0*(1.0 + 0.15*pow(Res, 0.687)) + + pos(Res - 1000)*0.44*max(Res, residualRe_) + ); + volScalarField F0 ( 5.81*alpha1/pow3(alpha2) + 0.48*pow(alpha1, 1.0/3.0)/pow4(alpha2) @@ -90,16 +89,14 @@ Foam::tmp Foam::dragModels::Tenneti::CdRe() const volScalarField F1 ( - pow(alpha1, 3)*max(pair_.Re(), residualRe_) - *(0.95 + 0.61*pow3(alpha1)/sqr(alpha2)) + pow3(alpha1)*Res*(0.95 + 0.61*pow3(alpha1)/sqr(alpha2)) ); // Tenneti et al. correlation includes the mean pressure drag. // This was removed here by multiplying F by alpha2 for consistency with // the formulation used in OpenFOAM return - SchillerNaumann_->CdRe()/(alpha2*max(pair_.Re(), residualRe_)) + - 24.0*sqr(alpha2)*(F0 + F1); + CdReIsolated + 24.0*sqr(alpha2)*(F0 + F1); } diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H index 7c9f64d57b..ae5c3c401f 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2016-2017 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -69,9 +69,6 @@ class Tenneti { // Private data - //- SchillerNaumann drag model - autoPtr SchillerNaumann_; - //- Residual Reynolds Number const dimensionedScalar residualRe_;