twoPhaseEulerFoam/interfacialModels/dragModels: Corrections for parallel operation

This commit is contained in:
Henry
2011-07-05 17:02:21 +01:00
parent 012dc7ecba
commit 729bdbb640
5 changed files with 40 additions and 65 deletions

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -73,34 +73,23 @@ Foam::tmp<Foam::volScalarField> Foam::GidaspowErgunWenYu::K
volScalarField bp(pow(beta, -2.65)); volScalarField bp(pow(beta, -2.65));
volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3))); volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3)));
volScalarField Cds(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re); volScalarField Cds
(
forAll(Re, celli) neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
{ + pos(Re - 1000)*0.44
if (Re[celli] > 1000.0) );
{
Cds[celli] = 0.44;
}
}
// Wen and Yu (1966) // Wen and Yu (1966)
tmp<volScalarField> tKWenYu = 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d(); return
volScalarField& KWenYu = tKWenYu(); (
pos(beta - 0.8)
// Ergun *(0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d())
forAll (beta, cellj) + neg(beta - 0.8)
{ *(
if (beta[cellj] <= 0.8) 150.0*alpha_*phaseb_.nu()*phaseb_.rho()/(sqr(beta*phasea_.d()))
{ + 1.75*phaseb_.rho()*Ur/(beta*phasea_.d())
KWenYu[cellj] = )
150.0*alpha_[cellj]*phaseb_.nu().value()*phaseb_.rho().value() );
/sqr(beta[cellj]*phasea_.d().value())
+ 1.75*phaseb_.rho().value()*Ur[cellj]
/(beta[cellj]*phasea_.d().value());
}
}
return tKWenYu;
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -72,15 +72,12 @@ Foam::tmp<Foam::volScalarField> Foam::GidaspowSchillerNaumann::K
volScalarField bp(pow(beta, -2.65)); volScalarField bp(pow(beta, -2.65));
volScalarField Re(max(beta*Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3))); volScalarField Re(max(beta*Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3)));
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
forAll(Re, celli) volScalarField Cds
{ (
if (Re[celli] > 1000.0) neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
{ + pos(Re - 1000)*0.44
Cds[celli] = 0.44; );
}
}
return 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d(); return 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d();
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -69,15 +69,12 @@ Foam::tmp<Foam::volScalarField> Foam::SchillerNaumann::K
) const ) const
{ {
volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3))); volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3)));
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
forAll(Re, celli) volScalarField Cds
{ (
if (Re[celli] > 1000.0) neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
{ + pos(Re - 1000)*0.44
Cds[celli] = 0.44; );
}
}
return 0.75*Cds*phaseb_.rho()*Ur/phasea_.d(); return 0.75*Cds*phaseb_.rho()*Ur/phasea_.d();
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -70,15 +70,11 @@ Foam::tmp<Foam::volScalarField> Foam::SyamlalOBrien::K
{ {
volScalarField beta(max(scalar(1) - alpha_, scalar(1.0e-6))); volScalarField beta(max(scalar(1) - alpha_, scalar(1.0e-6)));
volScalarField A(pow(beta, 4.14)); volScalarField A(pow(beta, 4.14));
volScalarField B(0.8*pow(beta, 1.28)); volScalarField B
(
forAll (beta, celli) neg(beta - 0.85)*(0.8*pow(beta, 1.28))
{ + pos(beta - 0.85)*(pow(beta, 2.65))
if (beta[celli] > 0.85) );
{
B[celli] = pow(beta[celli], 2.65);
}
}
volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3))); volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3)));

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -72,15 +72,11 @@ Foam::tmp<Foam::volScalarField> Foam::WenYu::K
volScalarField bp(pow(beta, -2.65)); volScalarField bp(pow(beta, -2.65));
volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3))); volScalarField Re(max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3)));
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re); volScalarField Cds
(
forAll(Re, celli) neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
{ + pos(Re - 1000)*0.44
if (Re[celli] > 1000.0) );
{
Cds[celli] = 0.44;
}
}
return 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d(); return 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d();
} }