diff --git a/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh b/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh index 2bb33694d1f92c87155ec9491b3b518299d9db65..4e01ade281c4c144f33de2359c78d9f1a2a40d5c 100644 --- a/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh +++ b/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh @@ -117,20 +117,20 @@ public: insideCoeff *= insideVolVars.extrusionFactor(); outsideCoeff *= outsideVolVars.extrusionFactor(); - // average and distance - Scalar coeff = arithmeticMean(insideCoeff, outsideCoeff, - (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), - (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); - Scalar distance = 0.0; - // adapt boundary handling + Scalar coeff = 0.0; + Scalar distance = 0.0; if (scvf.boundary()) { - distance = (insideScv.dofPosition() - scvf.ipGlobal()).two_norm(); coeff = insideCoeff; + distance = (insideScv.dofPosition() - scvf.ipGlobal()).two_norm(); } else { + // average and distance + coeff = arithmeticMean(insideCoeff, outsideCoeff, + (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), + (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); distance = (outsideScv.dofPosition() - insideScv.dofPosition()).two_norm(); } diff --git a/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh b/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh index 44de0c1857c0571aee7f1528a9543c10ae34261d..e5d41d17e5ce1f72b3a2a60f87cc9d767f7365b6 100644 --- a/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh +++ b/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh @@ -135,21 +135,21 @@ public: insideCoeff_e *= insideVolVars.extrusionFactor(); outsideCoeff_e *= outsideVolVars.extrusionFactor(); - // average and distance - // is more stable with simple/unweighted arithmetic mean - Scalar coeff_k = arithmeticMean(insideCoeff_k, outsideCoeff_k); - Scalar coeff_e = arithmeticMean(insideCoeff_e, outsideCoeff_e); + Scalar coeff_k = 0.0; + Scalar coeff_e = 0.0; Scalar distance = 0.0; - - // adapt boundary handling if (scvf.boundary()) { - distance = (insideScv.dofPosition() - scvf.ipGlobal()).two_norm(); coeff_k = insideCoeff_k; coeff_e = insideCoeff_e; + distance = (insideScv.dofPosition() - scvf.ipGlobal()).two_norm(); } else { + // average and distance + // is more stable with simple/unweighted arithmetic mean + coeff_k = arithmeticMean(insideCoeff_k, outsideCoeff_k); + coeff_e = arithmeticMean(insideCoeff_e, outsideCoeff_e); distance = (outsideScv.dofPosition() - insideScv.dofPosition()).two_norm(); } diff --git a/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh b/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh index 23547d429c0933ebe9ad9bbcd150cb60d7a9d20d..910fbe0bd4fc08a6dd05c1bdd274a43106638b9c 100644 --- a/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh +++ b/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh @@ -130,16 +130,9 @@ public: insideCoeff_w *= insideVolVars.extrusionFactor(); outsideCoeff_w *= outsideVolVars.extrusionFactor(); - // average and distance - Scalar coeff_k = arithmeticMean(insideCoeff_k, outsideCoeff_k, - (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), - (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); - Scalar coeff_w = arithmeticMean(insideCoeff_w, outsideCoeff_w, - (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), - (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); Scalar distance = 0.0; - - // adapt boundary handling + Scalar coeff_k = 0.0; + Scalar coeff_w = 0.0; if (scvf.boundary()) { distance = (insideScv.dofPosition() - scvf.ipGlobal()).two_norm(); @@ -148,6 +141,13 @@ public: } else { + // average and distance + coeff_k = arithmeticMean(insideCoeff_k, outsideCoeff_k, + (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), + (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); + coeff_w = arithmeticMean(insideCoeff_w, outsideCoeff_w, + (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), + (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); distance = (outsideScv.dofPosition() - insideScv.dofPosition()).two_norm(); } diff --git a/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh b/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh index 1d6ff8452378cb6c9e8be729bce66c6ffec1bd3a..e4e1a2c53b7dfcf98ab9fa4465c77836bbfc2c5f 100644 --- a/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh +++ b/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh @@ -130,24 +130,24 @@ public: insideCoeff_e *= insideVolVars.extrusionFactor(); outsideCoeff_e *= outsideVolVars.extrusionFactor(); - // average and distance - Scalar coeff_k = arithmeticMean(insideCoeff_k, outsideCoeff_k, - (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), - (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); - Scalar coeff_e = arithmeticMean(insideCoeff_e, outsideCoeff_e, - (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), - (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); + Scalar coeff_k = 0.0; + Scalar coeff_e = 0.0; Scalar distance = 0.0; - - // adapt boundary handling if (scvf.boundary()) { - distance = (insideScv.dofPosition() - scvf.ipGlobal()).two_norm(); coeff_k = insideCoeff_k; coeff_e = insideCoeff_e; + distance = (insideScv.dofPosition() - scvf.ipGlobal()).two_norm(); } else { + // average and distance + coeff_k = arithmeticMean(insideCoeff_k, outsideCoeff_k, + (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), + (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); + coeff_e = arithmeticMean(insideCoeff_e, outsideCoeff_e, + (outsideScv.dofPosition() - scvf.ipGlobal()).two_norm(), + (insideScv.dofPosition() - scvf.ipGlobal()).two_norm()); distance = (outsideScv.dofPosition() - insideScv.dofPosition()).two_norm(); }