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

View File

@ -66,7 +66,7 @@ relaxationFactors
{ {
equations equations
{ {
f 1.0; "f.*" 1.0;
} }
} }

View File

@ -66,7 +66,7 @@ relaxationFactors
{ {
equations equations
{ {
f 1.0; "f.*" 1.0;
} }
} }

View File

@ -66,7 +66,7 @@ relaxationFactors
{ {
equations equations
{ {
f 1.0; "f.*" 1.0;
} }
} }

View File

@ -66,7 +66,7 @@ relaxationFactors
{ {
equations equations
{ {
f 1.0; "f.*" 1.0;
} }
} }

View File

@ -66,7 +66,7 @@ relaxationFactors
{ {
equations equations
{ {
f 1.0; "f.*" 1.0;
} }
} }

View File

@ -66,7 +66,7 @@ relaxationFactors
{ {
equations equations
{ {
f 1.0; "f.*" 1.0;
} }
} }