cellSource: Added weightedVolAverage option

faceSource: Added weightedAreaAverage option
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1769
This commit is contained in:
Henry Weller
2015-06-30 11:20:02 +01:00
parent 72300041df
commit ce844e6f5b
6 changed files with 41 additions and 23 deletions

View File

@ -102,17 +102,22 @@ Type Foam::fieldValues::cellSource::processValues
}
case opWeightedAverage:
{
result = sum(values)/sum(weightField);
result = sum(weightField*values)/sum(weightField);
break;
}
case opVolAverage:
{
result = sum(values*V)/sum(V);
result = sum(V*values)/sum(V);
break;
}
case opWeightedVolAverage:
{
result = sum(weightField*V*values)/sum(weightField*V);
break;
}
case opVolIntegrate:
{
result = sum(values*V);
result = sum(V*values);
break;
}
case opMin:
@ -175,14 +180,11 @@ bool Foam::fieldValues::cellSource::writeValues(const word& fieldName)
combineFields(V);
combineFields(weightField);
// apply weight field
values *= weightField;
if (Pstream::master())
{
Type result = processValues(values, V, weightField);
// add to result dictionary, over-writing any previous entry
// Add to result dictionary, over-writing any previous entry
resultDict_.add(fieldName, result, true);
if (valueOutput_)
@ -198,7 +200,7 @@ bool Foam::fieldValues::cellSource::writeValues(const word& fieldName)
IOobject::NO_READ,
IOobject::NO_WRITE
),
values
weightField*values
).write();
}