From c44a9d10973b968fc25bfbd66c4b64a6672234b5 Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Fri, 20 Jan 2023 19:25:04 +0000 Subject: [PATCH] populationBalanceModel: Stabilise dilatation error term A small SuSp stabilisation has been added to the dilation error term to prevent edge-cases in which the dilation correction exactly cancels out all implicit transport terms and sources. --- .../populationBalanceModel/populationBalanceModel.C | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/applications/solvers/modules/multiphaseEuler/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C b/applications/solvers/modules/multiphaseEuler/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C index 88b9578963..09c324d462 100644 --- a/applications/solvers/modules/multiphaseEuler/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C +++ b/applications/solvers/modules/multiphaseEuler/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C @@ -1176,7 +1176,8 @@ void Foam::diameterModels::populationBalanceModel::solve() ( fvm::ddt(alpha, fi) + fvm::div(phase.alphaPhi(), fi) - - fvm::Sp(dilatationError, fi) + + fvm::Sp(-(1 - small)*dilatationError, fi) + + fvm::SuSp(-small*dilatationError, fi) == fvc::Su(Su_[i], fi) - fvm::Sp(Sp_[i], fi) @@ -1193,6 +1194,7 @@ void Foam::diameterModels::populationBalanceModel::solve() ); sizeGroupEqn.relax(); + fluid_.fvConstraints().constrain(sizeGroupEqn); maxInitialResidual = max