Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
multiphaseEulerFoam: Improved stabilisation of Yi, fi and kappa when …
…alpha -> 0

The new stabilisation approach avoids any conservation error where the
phase-fraction is greater than residualAlpha by only applying the stabilising
terms to the transport equations in regions where the phase-fraction is less
than residualAlpha.
  • Loading branch information
Henry Weller committed Feb 28, 2022
1 parent f6e8193 commit 3df883d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 8 deletions.
Expand Up @@ -210,8 +210,16 @@ void Foam::diameterModels::shapeModels::fractal::correct()
- sinteringModel_->R()
+ Su_
- fvm::Sp(popBal.Sp(fi.i()())*fi, kappa_)
+ fvc::ddt(fi.phase().residualAlpha(), kappa_)
- fvm::ddt(fi.phase().residualAlpha(), kappa_)

- correction
(
fvm::Sp
(
max(phase.residualAlpha() - alpha, scalar(0))
/sizeGroup_.mesh().time().deltaT(),
kappa_
)
)
);

kappaEqn.relax();
Expand Down
Expand Up @@ -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
Expand Down Expand Up @@ -110,8 +110,15 @@ Foam::MultiComponentPhaseModel<BasePhaseModel>::YiEqn(volScalarField& Yi)
==
alpha*this->R(Yi)

+ fvc::ddt(residualAlpha_*rho, Yi)
- fvm::ddt(residualAlpha_*rho, Yi)
- correction
(
fvm::Sp
(
max(residualAlpha_ - alpha, scalar(0))*rho
/this->mesh().time().deltaT(),
Yi
)
)
);
}

Expand Down
Expand Up @@ -1066,7 +1066,6 @@ void Foam::diameterModels::populationBalanceModel::solve()
sizeGroup& fi = sizeGroups_[i];
const phaseModel& phase = fi.phase();
const volScalarField& alpha = phase;
const dimensionedScalar& residualAlpha = phase.residualAlpha();
const volScalarField& rho = phase.thermo().rho();

fvScalarMatrix sizeGroupEqn
Expand All @@ -1077,8 +1076,16 @@ void Foam::diameterModels::populationBalanceModel::solve()
Su_[i]
- fvm::Sp(Sp_[i], fi)
+ fluid_.fvModels().source(alpha, rho, fi)/rho
+ fvc::ddt(residualAlpha, fi)
- fvm::ddt(residualAlpha, fi)

- correction
(
fvm::Sp
(
max(phase.residualAlpha() - alpha, scalar(0))
/this->mesh().time().deltaT(),
fi
)
)
);

sizeGroupEqn.relax();
Expand Down

0 comments on commit 3df883d

Please sign in to comment.