BUG: viewFactor: smoothing when zero visible faces. Fixes #2622

This commit is contained in:
mattijs
2022-10-27 11:58:36 +01:00
parent 37e90dbad7
commit ac25608fbd

View File

@ -419,26 +419,30 @@ void Foam::radiation::viewFactor::initialise()
{ {
scalar maxDelta = 0; scalar maxDelta = 0;
scalar totalDelta = 0; scalar totalDelta = 0;
forAll (myF, i)
if (myF.size())
{ {
scalar sumF = 0.0; forAll (myF, i)
scalarList& myFij = myF[i];
forAll (myFij, j)
{ {
sumF += myFij[j]; scalar sumF = 0.0;
} scalarList& myFij = myF[i];
const scalar delta = sumF - 1.0; forAll (myFij, j)
forAll (myFij, j) {
{ sumF += myFij[j];
myFij[j] *= (1.0 - delta/(sumF + 0.001)); }
} const scalar delta = sumF - 1.0;
totalDelta += delta; forAll (myFij, j)
if (delta > maxDelta) {
{ myFij[j] *= (1.0 - delta/(sumF + 0.001));
maxDelta = delta; }
totalDelta += delta;
if (delta > maxDelta)
{
maxDelta = delta;
}
} }
totalDelta /= myF.size();
} }
totalDelta /= myF.size();
reduce(totalDelta, sumOp<scalar>()); reduce(totalDelta, sumOp<scalar>());
reduce(maxDelta, maxOp<scalar>()); reduce(maxDelta, maxOp<scalar>());
Info << "Smoothing average delta : " << totalDelta << endl; Info << "Smoothing average delta : " << totalDelta << endl;
@ -1122,7 +1126,7 @@ void Foam::radiation::viewFactor::calculate()
if (debug) if (debug)
{ {
forAll(qrBf, patchID) for (const label patchID : selectedPatches_)
{ {
const scalarField& qrp = qrBf[patchID]; const scalarField& qrp = qrBf[patchID];
const scalarField& magSf = mesh_.magSf().boundaryField()[patchID]; const scalarField& magSf = mesh_.magSf().boundaryField()[patchID];