MULES: Adjust limiter only at boundaries for which the field value is fixed

Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
This commit is contained in:
Henry Weller
2017-02-22 15:34:13 +00:00
parent 12dd3c9c6b
commit e5cc374d8e
2 changed files with 9 additions and 4 deletions

View File

@ -249,7 +249,7 @@ void Foam::MULES::limiterCorr
psiMinn[pfCelli] = min(psiMinn[pfCelli], psiPNf[pFacei]);
}
}
else
else if (psiPf.fixesValue())
{
forAll(phiCorrPf, pFacei)
{

View File

@ -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)
{