mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
compressibleTwoPhaseEulerFoam, multiphaseEulerFoam: correct drag coeff boundary field
This commit is contained in:
@ -76,34 +76,23 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowErgunWenYu::K
|
||||
volScalarField bp(pow(beta, -2.65));
|
||||
volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3)));
|
||||
|
||||
volScalarField Cds(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
// Wen and Yu (1966)
|
||||
tmp<volScalarField> tKWenYu(0.75*Cds*phase2_.rho()*Ur*bp/d);
|
||||
volScalarField& KWenYu = tKWenYu();
|
||||
|
||||
// Ergun
|
||||
forAll (beta, cellj)
|
||||
{
|
||||
if (beta[cellj] <= 0.8)
|
||||
{
|
||||
KWenYu[cellj] =
|
||||
150.0*alpha_[cellj]*phase2_.nu().value()*phase2_.rho().value()
|
||||
/sqr(beta[cellj]*d[cellj])
|
||||
+ 1.75*phase2_.rho().value()*Ur[cellj]
|
||||
/(beta[cellj]*d[cellj]);
|
||||
}
|
||||
}
|
||||
|
||||
return tKWenYu;
|
||||
return
|
||||
(
|
||||
pos(beta - 0.8)
|
||||
*(0.75*Cds*phase2_.rho()*Ur*bp/d)
|
||||
+ neg(beta - 0.8)
|
||||
*(
|
||||
150.0*alpha_*phase2_.nu()*phase2_.rho()/(sqr(beta*d))
|
||||
+ 1.75*phase2_.rho()*Ur/(beta*d)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -75,15 +75,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowSchillerNaumann::K
|
||||
volScalarField bp(pow(beta, -2.65));
|
||||
|
||||
volScalarField Re(max(beta*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||
}
|
||||
|
||||
@ -72,15 +72,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::K
|
||||
) const
|
||||
{
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur/phase1_.d();
|
||||
}
|
||||
|
||||
@ -73,15 +73,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::K
|
||||
{
|
||||
volScalarField beta(max(scalar(1) - alpha_, scalar(1.0e-6)));
|
||||
volScalarField A(pow(beta, 4.14));
|
||||
volScalarField B(0.8*pow(beta, 1.28));
|
||||
|
||||
forAll (beta, celli)
|
||||
{
|
||||
if (beta[celli] > 0.85)
|
||||
{
|
||||
B[celli] = pow(beta[celli], 2.65);
|
||||
}
|
||||
}
|
||||
volScalarField B
|
||||
(
|
||||
neg(beta - 0.85)*(0.8*pow(beta, 1.28))
|
||||
+ pos(beta - 0.85)*(pow(beta, 2.65))
|
||||
);
|
||||
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
|
||||
|
||||
@ -75,15 +75,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::K
|
||||
volScalarField bp(pow(beta, -2.65));
|
||||
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||
}
|
||||
|
||||
@ -149,6 +149,8 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::muf
|
||||
}
|
||||
}
|
||||
|
||||
muff.correctBoundaryConditions();
|
||||
|
||||
return tmuf;
|
||||
}
|
||||
|
||||
|
||||
@ -75,34 +75,23 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowErgunWenYu::K
|
||||
volScalarField bp(pow(beta, -2.65));
|
||||
volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3)));
|
||||
|
||||
volScalarField Cds(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
// Wen and Yu (1966)
|
||||
tmp<volScalarField> tKWenYu = 0.75*Cds*phase2_.rho()*Ur*bp/d;
|
||||
volScalarField& KWenYu = tKWenYu();
|
||||
|
||||
// Ergun
|
||||
forAll (beta, cellj)
|
||||
{
|
||||
if (beta[cellj] <= 0.8)
|
||||
{
|
||||
KWenYu[cellj] =
|
||||
150.0*phase1_[cellj]*phase2_.nu().value()*phase2_.rho().value()
|
||||
/sqr(beta[cellj]*d[cellj])
|
||||
+ 1.75*phase2_.rho().value()*Ur[cellj]
|
||||
/(beta[cellj]*d[cellj]);
|
||||
}
|
||||
}
|
||||
|
||||
return tKWenYu;
|
||||
return
|
||||
(
|
||||
pos(beta - 0.8)
|
||||
*(0.75*Cds*phase2_.rho()*Ur*bp/d)
|
||||
+ neg(beta - 0.8)
|
||||
*(
|
||||
150.0*phase1_*phase2_.nu()*phase2_.rho()/(sqr(beta*d))
|
||||
+ 1.75*phase2_.rho()*Ur/(beta*d)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -74,15 +74,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowSchillerNaumann::K
|
||||
volScalarField bp(pow(beta, -2.65));
|
||||
|
||||
volScalarField Re(max(beta*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||
}
|
||||
|
||||
@ -71,15 +71,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::K
|
||||
) const
|
||||
{
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur/phase1_.d();
|
||||
}
|
||||
|
||||
@ -72,15 +72,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::K
|
||||
{
|
||||
volScalarField beta(max(phase2_, scalar(1.0e-6)));
|
||||
volScalarField A(pow(beta, 4.14));
|
||||
volScalarField B(0.8*pow(beta, 1.28));
|
||||
|
||||
forAll (beta, celli)
|
||||
{
|
||||
if (beta[celli] > 0.85)
|
||||
{
|
||||
B[celli] = pow(beta[celli], 2.65);
|
||||
}
|
||||
}
|
||||
volScalarField B
|
||||
(
|
||||
neg(beta - 0.85)*(0.8*pow(beta, 1.28))
|
||||
+ pos(beta - 0.85)*(pow(beta, 2.65))
|
||||
);
|
||||
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
|
||||
|
||||
@ -74,15 +74,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::K
|
||||
volScalarField bp(pow(beta, -2.65));
|
||||
|
||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
||||
|
||||
forAll(Re, celli)
|
||||
{
|
||||
if (Re[celli] > 1000.0)
|
||||
{
|
||||
Cds[celli] = 0.44;
|
||||
}
|
||||
}
|
||||
volScalarField Cds
|
||||
(
|
||||
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||
+ pos(Re - 1000)*0.44
|
||||
);
|
||||
|
||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||
}
|
||||
|
||||
@ -149,6 +149,8 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::muf
|
||||
}
|
||||
}
|
||||
|
||||
muff.correctBoundaryConditions();
|
||||
|
||||
return tmuf;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user