From 7668f381c8368fa74eba2ac1fcc94bd84fc9894c Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin <kutalmis.bercin@esi-group.com> Date: Wed, 17 Jun 2020 16:34:20 +0100 Subject: [PATCH] ENH: prevent natural-logarithm domain errors in nut wall functions (#1730) --- .../nutUWallFunction/nutUWallFunctionFvPatchScalarField.C | 3 ++- .../nutWallFunction/nutWallFunctionFvPatchScalarField.C | 7 +++++-- .../nutkWallFunction/nutkWallFunctionFvPatchScalarField.C | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C index f6a3a81136f..003bbc48764 100644 --- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C +++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C @@ -66,7 +66,8 @@ Foam::nutUWallFunctionFvPatchScalarField::calcNut() const // Inertial sublayer contribution const scalar nutLog = - nuw[facei]*(yPlus[facei]*kappa_/log(E_*yPlus[facei]) - 1.0); + nuw[facei] + *(yPlus[facei]*kappa_/log(max(E_*yPlus[facei], 1 + 1e-4)) - 1.0); nutw[facei] = blend(nutVis, nutLog, yPlus[facei]); } diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C index 4148a6157cc..46e9986b833 100644 --- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C +++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C @@ -180,8 +180,11 @@ Foam::nutWallFunctionFvPatchScalarField::nutWallFunctionFvPatchScalarField ), UName_(dict.getOrDefault<word>("U", word::null)), Cmu_(dict.getOrDefault<scalar>("Cmu", 0.09)), - kappa_(dict.getOrDefault<scalar>("kappa", 0.41)), - E_(dict.getOrDefault<scalar>("E", 9.8)), + kappa_ + ( + dict.getCheckOrDefault<scalar>("kappa", 0.41, scalarMinMax::ge(SMALL)) + ), + E_(dict.getCheckOrDefault<scalar>("E", 9.8, scalarMinMax::ge(SMALL))), yPlusLam_(yPlusLam(kappa_, E_)) { checkType(); diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C index 5244e290225..826a8f354fc 100644 --- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C +++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C @@ -71,7 +71,8 @@ calcNut() const const scalar nutVis = 0.0; // Inertial sublayer contribution - const scalar nutLog = nuw[facei]*(yPlus*kappa_/log(E_*yPlus) - 1.0); + const scalar nutLog = + nuw[facei]*(yPlus*kappa_/log(max(E_*yPlus, 1 + 1e-4)) - 1.0); nutw[facei] = blend(nutVis, nutLog, yPlus); } -- GitLab