multiphaseEuler::dragModels: Refactored to remove the need for the residualRe entry

This commit is contained in:
Henry Weller
2023-03-16 15:51:59 +00:00
parent 496850ebb2
commit e62ddc2f62
33 changed files with 38 additions and 163 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2016-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,8 +47,7 @@ Foam::dragModels::Beetstra::Beetstra
const bool registerObject
)
:
dispersedDragModel(dict, interface, registerObject),
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
dispersedDragModel(dict, interface, registerObject)
{}
@ -72,13 +71,7 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::Beetstra::CdRe() const
max(1 - interface_.dispersed(), interface_.continuous().residualAlpha())
);
const volScalarField Res(alpha2*interface_.Re());
const volScalarField ResLim
(
"ReLim",
max(Res, residualRe_)
);
const volScalarField Res(max(alpha2*interface_.Re(), scalar(0)));
const volScalarField F0
(
@ -90,8 +83,8 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::Beetstra::CdRe() const
(
"F1",
0.413*Res/(24*sqr(alpha2))*(1.0/alpha2
+ 3*alpha1*alpha2 + 8.4*pow(ResLim, -0.343))
/(1 + pow(10.0, 3*alpha1)*pow(ResLim, -(1 + 4*alpha1)/2.0))
+ 3*alpha1*alpha2 + 8.4*pow(Res, -0.343))
/(1 + pow(10.0, 3*alpha1)*pow(Res, -(1 + 4*alpha1)/2.0))
);
return 24*alpha2*(F0 + F1);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2016-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -62,11 +62,6 @@ class Beetstra
:
public dispersedDragModel
{
// Private Data
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
public:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,8 +47,7 @@ Foam::dragModels::GidaspowSchillerNaumann::GidaspowSchillerNaumann
const bool registerObject
)
:
dispersedDragModel(dict, interface, registerObject),
residualRe_("residualRe", dimless, dict)
dispersedDragModel(dict, interface, registerObject)
{}
@ -73,7 +72,7 @@ Foam::dragModels::GidaspowSchillerNaumann::CdRe() const
const volScalarField CdsRe
(
neg(Re - 1000)*24*(1.0 + 0.15*pow(Re, 0.687))/alpha2
+ pos0(Re - 1000)*0.44*max(Re, residualRe_)
+ pos0(Re - 1000)*0.44*Re
);
return

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -65,11 +65,6 @@ class GidaspowSchillerNaumann
:
public dispersedDragModel
{
// Private Data
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
public:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,8 +47,7 @@ Foam::dragModels::SchillerNaumann::SchillerNaumann
const bool registerObject
)
:
dispersedDragModel(dict, interface, registerObject),
residualRe_("residualRe", dimless, dict)
dispersedDragModel(dict, interface, registerObject)
{}
@ -62,11 +61,11 @@ Foam::dragModels::SchillerNaumann::~SchillerNaumann()
Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::CdRe() const
{
volScalarField Re(interface_.Re());
const volScalarField Re(interface_.Re());
return
neg(Re - 1000)*24*(1.0 + 0.15*pow(Re, 0.687))
+ pos0(Re - 1000)*0.44*max(Re, residualRe_);
+ pos0(Re - 1000)*0.44*Re;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,11 +52,6 @@ class SchillerNaumann
:
public dispersedDragModel
{
// Private Data
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
public:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2016-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -48,8 +48,7 @@ Foam::dragModels::Tenneti::Tenneti
const bool registerObject
)
:
dispersedDragModel(dict, interface, registerObject),
residualRe_("residualRe", dimless, dict.lookup("residualRe"))
dispersedDragModel(dict, interface, registerObject)
{}
@ -78,7 +77,7 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::Tenneti::CdRe() const
const volScalarField CdReIsolated
(
neg(Res - 1000)*24*(1 + 0.15*pow(Res, 0.687))
+ pos0(Res - 1000)*0.44*max(Res, residualRe_)
+ pos0(Res - 1000)*0.44*Res
);
const volScalarField F0

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2016-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -64,11 +64,6 @@ class Tenneti
:
public dispersedDragModel
{
// Private Data
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
public:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -49,7 +49,6 @@ Foam::dragModels::TomiyamaAnalytic::TomiyamaAnalytic
)
:
dispersedDragModel(dict, interface, registerObject),
residualRe_("residualRe", dimless, dict),
residualEo_("residualEo", dimless, dict),
residualE_("residualE", dimless, dict),
aspectRatio_(aspectRatioModel::New(dict.subDict("aspectRatio"), interface))
@ -77,13 +76,8 @@ Foam::dragModels::TomiyamaAnalytic::CdRe() const
return
(8.0/3.0)
*Eo
/(
Eo*pow(E, 2.0/3.0)/OmEsq
+ 16*pow(E, 4.0/3.0)
)
/sqr(F)
*max(interface_.Re(), residualRe_);
*Eo/(Eo*pow(E, 2.0/3.0)/OmEsq + 16*pow(E, 4.0/3.0))/sqr(F)
*interface_.Re();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -65,9 +65,6 @@ class TomiyamaAnalytic
{
// Private Data
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
//- Residual Eotvos number
const dimensionedScalar residualEo_;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,9 +52,7 @@ Foam::dragModels::TomiyamaKataokaZunSakaguchi::TomiyamaKataokaZunSakaguchi
const bool registerObject
)
:
dispersedDragModel(dict, interface, registerObject),
residualRe_("residualRe", dimless, dict),
residualEo_("residualEo", dimless, dict)
dispersedDragModel(dict, interface, registerObject)
{}
@ -69,16 +67,10 @@ Foam::dragModels::TomiyamaKataokaZunSakaguchi::~TomiyamaKataokaZunSakaguchi()
Foam::tmp<Foam::volScalarField>
Foam::dragModels::TomiyamaKataokaZunSakaguchi::CdRe() const
{
volScalarField Re(interface_.Re());
volScalarField Eo(max(interface_.Eo(), residualEo_));
const volScalarField Re(interface_.Re());
const volScalarField Eo(interface_.Eo());
return
max
(
24*(1 + 0.15*pow(Re, 0.687))/max(Re, residualRe_),
8*Eo/(3*(Eo + 4.0))
)
*max(interface_.Re(), residualRe_);
return max(24*(1 + 0.15*pow(Re, 0.687)), 8*Eo*Re/(3*(Eo + 4.0)));
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -61,14 +61,6 @@ class TomiyamaKataokaZunSakaguchi
:
public dispersedDragModel
{
// Private Data
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
//- Residual Eotvos number
const dimensionedScalar residualEo_;
public:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,8 +47,7 @@ Foam::dragModels::WenYu::WenYu
const bool registerObject
)
:
dispersedDragModel(dict, interface, registerObject),
residualRe_("residualRe", dimless, dict)
dispersedDragModel(dict, interface, registerObject)
{}
@ -71,7 +70,7 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::CdRe() const
const volScalarField CdsRes
(
neg(Res - 1000)*24*(1.0 + 0.15*pow(Res, 0.687))
+ pos0(Res - 1000)*0.44*max(Res, residualRe_)
+ pos0(Res - 1000)*0.44*Res
);
return

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -60,11 +60,6 @@ class WenYu
:
public dispersedDragModel
{
// Private Data
//- Residual Reynolds Number
const dimensionedScalar residualRe_;
public:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -67,28 +67,17 @@ Foam::tmp<Foam::volScalarField> Foam::liftModels::LegendreMagnaudet::Cl() const
const volScalarField Sr
(
sqr(interface_.dispersed().d())
/(
Re
*interface_.continuous().thermo().nu()
)
/(Re*interface_.continuous().thermo().nu())
*mag(fvc::grad(interface_.continuous().U()))
);
const volScalarField ClLowSqr
(
sqr(6*2.255)
*sqr(Sr)
/(
pow4(constant::mathematical::pi)
*Re
*pow3(Sr + 0.2*Re)
)
sqr(6*2.255)*sqr(Sr)
/(pow4(constant::mathematical::pi)*Re*pow3(Sr + 0.2*Re))
);
const volScalarField ClHighSqr
(
sqr(0.5*(Re + 16)/(Re + 29))
);
const volScalarField ClHighSqr(sqr(0.5*(Re + 16)/(Re + 29)));
return sqrt(ClLowSqr + ClHighSqr);
}

View File

@ -78,13 +78,11 @@ drag
oil_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_oil
{
type SchillerNaumann;
residualRe 1e-3;
}
oil_segregatedWith_water

View File

@ -65,8 +65,6 @@ drag
solids_dispersedIn_gas
{
type GidaspowErgunWenYu;
residualAlpha 1e-5;
residualRe 1e-5;
}
}

View File

@ -94,7 +94,6 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water
@ -107,7 +106,6 @@ drag
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_water_displacedBy_solid

View File

@ -78,13 +78,11 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water

View File

@ -83,13 +83,11 @@ drag
gas_dispersedIn_liquid
{
type SchillerNaumann;
residualRe 1e-3;
}
liquid_dispersedIn_gas
{
type SchillerNaumann;
residualRe 1e-3;
}
}

View File

@ -83,13 +83,11 @@ drag
gas_dispersedIn_liquid
{
type SchillerNaumann;
residualRe 1e-3;
}
liquid_dispersedIn_gas
{
type SchillerNaumann;
residualRe 1e-3;
}
}

View File

@ -83,13 +83,11 @@ drag
gas_dispersedIn_liquid
{
type SchillerNaumann;
residualRe 1e-3;
}
liquid_dispersedIn_gas
{
type SchillerNaumann;
residualRe 1e-3;
}
}

View File

@ -100,13 +100,11 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water

View File

@ -78,13 +78,11 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water

View File

@ -83,13 +83,11 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water

View File

@ -141,13 +141,11 @@ drag
air1_dispersedIn_water
{
type IshiiZuber;
residualRe 1e-3;
}
air2_dispersedIn_water
{
type IshiiZuber;
residualRe 1e-3;
}
}

View File

@ -63,7 +63,6 @@ drag
particles_dispersedIn_air
{
type GidaspowErgunWenYu;
residualRe 1e-3;
}
}

View File

@ -62,7 +62,6 @@ drag
particles_dispersedIn_air
{
type GidaspowErgunWenYu;
residualRe 1e-3;
}
}

View File

@ -78,13 +78,11 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water

View File

@ -150,13 +150,11 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water
@ -169,13 +167,11 @@ drag
air_dispersedIn_oil
{
type SchillerNaumann;
residualRe 1e-3;
}
oil_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_oil
@ -188,13 +184,11 @@ drag
air_dispersedIn_mercury
{
type SchillerNaumann;
residualRe 1e-3;
}
mercury_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_mercury
@ -207,13 +201,11 @@ drag
water_dispersedIn_oil
{
type SchillerNaumann;
residualRe 1e-3;
}
oil_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_segregatedWith_oil
@ -226,13 +218,11 @@ drag
water_dispersedIn_mercury
{
type SchillerNaumann;
residualRe 1e-3;
}
mercury_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_segregatedWith_mercury
@ -245,13 +235,11 @@ drag
oil_dispersedIn_mercury
{
type SchillerNaumann;
residualRe 1e-3;
}
mercury_dispersedIn_oil
{
type SchillerNaumann;
residualRe 1e-3;
}
oil_segregatedWith_mercury

View File

@ -149,13 +149,11 @@ drag
air_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_water
@ -168,13 +166,11 @@ drag
air_dispersedIn_oil
{
type SchillerNaumann;
residualRe 1e-3;
}
oil_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_oil
@ -187,13 +183,11 @@ drag
air_dispersedIn_mercury
{
type SchillerNaumann;
residualRe 1e-3;
}
mercury_dispersedIn_air
{
type SchillerNaumann;
residualRe 1e-3;
}
air_segregatedWith_mercury
@ -206,13 +200,11 @@ drag
water_dispersedIn_oil
{
type SchillerNaumann;
residualRe 1e-3;
}
oil_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_segregatedWith_oil
@ -225,13 +217,11 @@ drag
water_dispersedIn_mercury
{
type SchillerNaumann;
residualRe 1e-3;
}
mercury_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
water_segregatedWith_mercury
@ -244,13 +234,11 @@ drag
oil_dispersedIn_mercury
{
type SchillerNaumann;
residualRe 1e-3;
}
mercury_dispersedIn_oil
{
type SchillerNaumann;
residualRe 1e-3;
}
oil_segregatedWith_mercury

View File

@ -136,7 +136,6 @@ drag
particles_dispersedIn_water
{
type WenYu;
residualRe 1e-3;
}
}
@ -172,7 +171,6 @@ turbulentDispersion
particles_dispersedIn_water
{
type Burns;
residualRe 1e-3;
sigma 1;
}
}

View File

@ -73,7 +73,6 @@ drag
steam_dispersedIn_water
{
type SchillerNaumann;
residualRe 1e-3;
}
}