Rationalize the "pos" function

"pos" now returns 1 if the argument is greater than 0, otherwise it returns 0.
This is consistent with the common mathematical definition of the "pos" function:

https://en.wikipedia.org/wiki/Sign_(mathematics)

However the previous implementation in which 1 was also returned for a 0
argument is useful in many situations so the "pos0" has been added which returns
1 if the argument is greater or equal to 0.  Additionally the "neg0" has been
added which returns 1 if if the argument is less than or equal to 0.
This commit is contained in:
Henry Weller
2017-06-22 14:32:18 +01:00
committed by Andrew Heather
parent 639305e960
commit 56bfc75949
96 changed files with 269 additions and 196 deletions

View File

@ -687,14 +687,14 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::processValues
case opSumDirection:
{
const vector n(dict_.lookup("direction"));
return gSum(pos(values*(Sf & n))*mag(values));
return gSum(pos0(values*(Sf & n))*mag(values));
}
case opSumDirectionBalance:
{
const vector n(dict_.lookup("direction"));
const scalarField nv(values*(Sf & n));
return gSum(pos(nv)*mag(values) - neg(nv)*mag(values));
return gSum(pos0(nv)*mag(values) - neg(nv)*mag(values));
}
default:
{
@ -722,7 +722,7 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::processValues
n /= mag(n) + ROOTVSMALL;
const scalarField nv(n & values);
return gSum(pos(nv)*n*(nv));
return gSum(pos0(nv)*n*(nv));
}
case opSumDirectionBalance:
{
@ -730,7 +730,7 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::processValues
n /= mag(n) + ROOTVSMALL;
const scalarField nv(n & values);
return gSum(pos(nv)*n*(nv));
return gSum(pos0(nv)*n*(nv));
}
case opAreaNormalAverage:
{