From 1a2bbc8701d197eb4b4bfcfe58df0f7fd2f80373 Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Wed, 16 May 2018 15:26:35 +0100 Subject: [PATCH] populationBalanceModel: Corrected handling of residual control Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum Dresden - Rossendorf (HZDR) --- .../populationBalanceModel.C | 19 +++++-------------- .../binaryBreakup/system/fvSolution | 2 +- .../breakup/system/fvSolution | 2 +- .../coalescence/system/fvSolution | 2 +- .../system/fvSolution | 2 +- .../drift/system/fvSolution | 2 +- .../negativeDrift/system/fvSolution | 2 +- 7 files changed, 11 insertions(+), 20 deletions(-) diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C index 4406d39eb..429c22386 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/populationBalanceModel/populationBalanceModel.C @@ -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 ); } diff --git a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/binaryBreakup/system/fvSolution b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/binaryBreakup/system/fvSolution index d55ba8675..a9900b504 100644 --- a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/binaryBreakup/system/fvSolution +++ b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/binaryBreakup/system/fvSolution @@ -66,7 +66,7 @@ relaxationFactors { equations { - f 1.0; + "f.*" 1.0; } } diff --git a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/breakup/system/fvSolution b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/breakup/system/fvSolution index d55ba8675..a9900b504 100644 --- a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/breakup/system/fvSolution +++ b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/breakup/system/fvSolution @@ -66,7 +66,7 @@ relaxationFactors { equations { - f 1.0; + "f.*" 1.0; } } diff --git a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/coalescence/system/fvSolution b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/coalescence/system/fvSolution index db2be3b84..4a326bba0 100644 --- a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/coalescence/system/fvSolution +++ b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/coalescence/system/fvSolution @@ -66,7 +66,7 @@ relaxationFactors { equations { - f 1.0; + "f.*" 1.0; } } diff --git a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/simultaneousCoalescenceAndBreakup/system/fvSolution b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/simultaneousCoalescenceAndBreakup/system/fvSolution index d0808e00b..93a64fc55 100644 --- a/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/simultaneousCoalescenceAndBreakup/system/fvSolution +++ b/test/multiphase/reactingMultiphaseEulerFoam/populationBalanceModeling/simultaneousCoalescenceAndBreakup/system/fvSolution @@ -66,7 +66,7 @@ relaxationFactors { equations { - f 1.0; + "f.*" 1.0; } } diff --git a/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/drift/system/fvSolution b/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/drift/system/fvSolution index d55ba8675..a9900b504 100644 --- a/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/drift/system/fvSolution +++ b/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/drift/system/fvSolution @@ -66,7 +66,7 @@ relaxationFactors { equations { - f 1.0; + "f.*" 1.0; } } diff --git a/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/negativeDrift/system/fvSolution b/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/negativeDrift/system/fvSolution index d55ba8675..a9900b504 100644 --- a/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/negativeDrift/system/fvSolution +++ b/test/multiphase/reactingTwoPhaseEulerFoam/populationBalanceModeling/negativeDrift/system/fvSolution @@ -66,7 +66,7 @@ relaxationFactors { equations { - f 1.0; + "f.*" 1.0; } }