diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/functionObjects/phaseForces/phaseForces.C b/applications/solvers/multiphase/multiphaseEulerFoam/functionObjects/phaseForces/phaseForces.C index 0f1774d5f6..90cfbc9d47 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/functionObjects/phaseForces/phaseForces.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/functionObjects/phaseForces/phaseForces.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2018-2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2018-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,6 +26,7 @@ License #include "phaseForces.H" #include "addToRunTimeSelectionTable.H" #include "BlendedInterfacialModel.H" +#include "fvcGrad.H" #include "dragModel.H" #include "virtualMassModel.H" #include "liftModel.H" @@ -277,7 +278,12 @@ bool Foam::functionObjects::phaseForces::execute() if (fluid_.foundBlendedSubModel(pair)) { *forceFields_[turbulentDispersionModel::typeName] += - nonDragForce(pair); + fluid_.lookupBlendedSubModel + ( + pair + ).D() + *(&pair.phase1() == &phase_ ? -1 : +1) + *fvc::grad(pair.phase1()/(pair.phase1() + pair.phase2())); } } } diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C index 390b4d639d..622eda16bf 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2014-2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -79,18 +79,4 @@ Foam::turbulentDispersionModels::noTurbulentDispersion::D() const } -Foam::tmp -Foam::turbulentDispersionModels::noTurbulentDispersion::F() const -{ - const fvMesh& mesh(this->pair_.phase1().mesh()); - - return volVectorField::New - ( - "zero", - mesh, - dimensionedVector(dimF, Zero) - ); -} - - // ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H index 790de2f1e2..e9b7a69052 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2014-2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -79,9 +79,6 @@ public: //- Turbulent diffusivity // multiplying the gradient of the phase-fraction virtual tmp D() const; - - //- Turbulent dispersion force - virtual tmp F() const; }; diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C index 22d2397037..26589133e0 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2014-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -25,9 +25,6 @@ License #include "turbulentDispersionModel.H" #include "phasePair.H" -#include "fvcGrad.H" -#include "surfaceInterpolate.H" -#include "fvcSnGrad.H" #include "phaseCompressibleMomentumTransportModel.H" #include "BlendedInterfacialModel.H" @@ -41,7 +38,6 @@ namespace Foam } const Foam::dimensionSet Foam::turbulentDispersionModel::dimD(1, -1, -2, 0, 0); -const Foam::dimensionSet Foam::turbulentDispersionModel::dimF(1, -2, -2, 0, 0); // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -82,41 +78,4 @@ Foam::turbulentDispersionModel::continuousTurbulence() const } -Foam::tmp -Foam::turbulentDispersionModel::F() const -{ - return - D() - *fvc::grad - ( - pair_.dispersed() - /max - ( - pair_.dispersed() + pair_.continuous(), - pair_.dispersed().residualAlpha() - ) - ); -} - - -Foam::tmp -Foam::turbulentDispersionModel::Ff() const -{ - return - pair_.phase1().mesh().magSf() - *( - fvc::interpolate(D()) - *fvc::snGrad - ( - pair_.dispersed() - /max - ( - pair_.dispersed() + pair_.continuous(), - pair_.dispersed().residualAlpha() - ) - ) - ); -} - - // ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H index 2c80dbc956..6f3de5b1d1 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2014-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -86,9 +86,6 @@ public: //- Diffusivity dimensions static const dimensionSet dimD; - //- Force dimensions - static const dimensionSet dimF; - // Constructors @@ -122,12 +119,6 @@ public: //- Turbulent diffusivity // multiplying the gradient of the phase-fraction virtual tmp D() const = 0; - - //- Turbulent dispersion force - virtual tmp F() const; - - //- Turbulent dispersion force on faces - virtual tmp Ff() const; }; diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C index 7f2e453617..a36c495e2b 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/phaseSystems/PhaseSystems/MomentumTransferPhaseSystem/MomentumTransferPhaseSystem.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2015-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2015-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -753,24 +753,35 @@ Foam::MomentumTransferPhaseSystem::phiFfs turbulentDispersionModelIter ) { - const surfaceScalarField Ff(turbulentDispersionModelIter()->Ff()); const phasePair& pair(this->phasePairs_[turbulentDispersionModelIter.key()]); - addField + const surfaceScalarField Df ( - pair.phase1(), - "phiFf", - rAUfs[pair.phase1().index()]*Ff, - phiFfs + fvc::interpolate(turbulentDispersionModelIter()->D()) ); - addField + + const surfaceScalarField DByA1f(rAUfs[pair.phase1().index()]*Df); + const surfaceScalarField DByA2f(rAUfs[pair.phase2().index()]*Df); + + const volScalarField alpha12(pair.phase1() + pair.phase2()); + const surfaceScalarField snGradAlpha1By12 ( - pair.phase2(), - "phiFf", - -rAUfs[pair.phase2().index()]*Ff, - phiFfs + fvc::snGrad + ( + pair.phase1()/max(alpha12, pair.phase1().residualAlpha()) + )*this->mesh_.magSf() ); + const surfaceScalarField snGradAlpha2By12 + ( + fvc::snGrad + ( + pair.phase2()/max(alpha12, pair.phase2().residualAlpha()) + )*this->mesh_.magSf() + ); + + addField(pair.phase1(), "phiF", DByA1f*snGradAlpha1By12, phiFfs); + addField(pair.phase2(), "phiF", DByA2f*snGradAlpha2By12, phiFfs); } if (this->fillFields_)