populationBalanceModel: Corrected handling of residual control

Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
This commit is contained in:
Will Bainbridge
2018-05-16 15:26:35 +01:00
parent ab610d20ad
commit 1a2bbc8701
7 changed files with 11 additions and 20 deletions

View File

@ -1174,15 +1174,9 @@ void Foam::diameterModels::populationBalanceModel::solve()
}
int iCorr = 0;
scalar initialResidual = 0;
scalar maxInitialResidual = 1;
while
(
maxInitialResidual > tolerance
&&
++iCorr <= nCorr
)
while (++iCorr <= nCorr && maxInitialResidual > tolerance)
{
Info<< "populationBalance "
<< this->name()
@ -1194,6 +1188,8 @@ void Foam::diameterModels::populationBalanceModel::solve()
dmdt();
maxInitialResidual = 0;
forAll(sizeGroups_, i)
{
sizeGroup& fi = *sizeGroups_[i];
@ -1223,16 +1219,11 @@ void Foam::diameterModels::populationBalanceModel::solve()
- fvm::ddt(residualAlpha*rho, fi)
);
sizeGroupEqn.relax
(
fi.mesh().equationRelaxationFactor("f")
);
initialResidual = sizeGroupEqn.solve().initialResidual();
sizeGroupEqn.relax();
maxInitialResidual = max
(
initialResidual,
sizeGroupEqn.solve().initialResidual(),
maxInitialResidual
);
}