From e5cc374d8ed68b94a3fa598886a6cb33042435fb Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Wed, 22 Feb 2017 15:34:13 +0000 Subject: [PATCH] MULES: Adjust limiter only at boundaries for which the field value is fixed Resolves bug-report https://bugs.openfoam.org/view.php?id=2470 --- .../fvMatrices/solvers/MULES/CMULESTemplates.C | 2 +- .../fvMatrices/solvers/MULES/MULESTemplates.C | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C index 34ee43bede3..b9ffcc9bc4d 100644 --- a/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C +++ b/src/finiteVolume/fvMatrices/solvers/MULES/CMULESTemplates.C @@ -249,7 +249,7 @@ void Foam::MULES::limiterCorr psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPNf[pFacei]); } } - else + else if (psiPf.fixesValue()) { forAll(phiCorrPf, pFacei) { diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C index 743cb8eae5c..675e4a3bd66 100644 --- a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C +++ b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C @@ -195,6 +195,11 @@ void Foam::MULES::limiter MULEScontrols.lookupOrDefault<scalar>("smoothLimiter", 0) ); + const scalar extremaCoeff + ( + MULEScontrols.lookupOrDefault<scalar>("extremaCoeff", 0) + ); + const scalarField& psi0 = psi.oldTime(); const labelUList& owner = mesh.owner(); @@ -286,7 +291,7 @@ void Foam::MULES::limiter psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPNf[pFacei]); } } - else + else if (psiPf.fixesValue()) { forAll(phiCorrPf, pFacei) { @@ -316,8 +321,8 @@ void Foam::MULES::limiter } } - psiMaxn = min(psiMaxn, psiMax); - psiMinn = max(psiMinn, psiMin); + psiMaxn = min(psiMaxn + extremaCoeff*(psiMax - psiMin), psiMax); + psiMinn = max(psiMinn - extremaCoeff*(psiMax - psiMin), psiMin); if (smoothLimiter > SMALL) { -- GitLab