Commit f2e4aac1 authored by Henry Weller's avatar Henry Weller Committed by Andrew Heather
Browse files

BUG: reactingEulerFoam: Corrected definition of Reynolds number in Beetstra and Tenneti drag laws

Patch contributed by Alberto Passalacqua, Iowa State University
parent 9d1eb05b
......@@ -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::volScalarField> 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::volScalarField> 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);
......
......@@ -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::volScalarField> 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::volScalarField> 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);
}
......
......@@ -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> SchillerNaumann_;
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment