ENH: Re-inistated weighted-average fieldAverage usage

This commit is contained in:
andy
2012-03-02 17:13:46 +00:00
parent edccfce28e
commit 04033b6968
6 changed files with 35 additions and 12 deletions

View File

@ -53,12 +53,13 @@ namespace Foam
const char* Foam::NamedEnum
<
Foam::fieldValues::faceSource::operationType,
8
9
>::names[] =
{
"none",
"sum",
"average",
"weightedAverage",
"areaAverage",
"areaIntegrate",
"min",
@ -72,7 +73,7 @@ namespace Foam
const Foam::NamedEnum<Foam::fieldValues::faceSource::sourceType, 3>
Foam::fieldValues::faceSource::sourceTypeNames_;
const Foam::NamedEnum<Foam::fieldValues::faceSource::operationType, 8>
const Foam::NamedEnum<Foam::fieldValues::faceSource::operationType, 9>
Foam::fieldValues::faceSource::operationTypeNames_;

View File

@ -59,6 +59,7 @@ Description
- none
- sum
- average
- weightedAverage
- areaAverage
- areaIntegrate
- min
@ -132,6 +133,7 @@ public:
opNone,
opSum,
opAverage,
opWeightedAverage,
opAreaAverage,
opAreaIntegrate,
opMin,
@ -140,7 +142,7 @@ public:
};
//- Operation type names
static const NamedEnum<operationType, 8> operationTypeNames_;
static const NamedEnum<operationType, 9> operationTypeNames_;
private:
@ -215,7 +217,8 @@ protected:
Type processValues
(
const Field<Type>& values,
const scalarField& magSf
const scalarField& magSf,
const scalarField& weightField
) const;
//- Output file header information

View File

@ -97,7 +97,9 @@ template<class Type>
Type Foam::fieldValues::faceSource::processValues
(
const Field<Type>& values,
const scalarField& magSf
const scalarField& magSf,
const scalarField& weightField
) const
{
Type result = pTraits<Type>::zero;
@ -113,6 +115,11 @@ Type Foam::fieldValues::faceSource::processValues
result = sum(values)/values.size();
break;
}
case opWeightedAverage:
{
result = sum(values)/sum(weightField);
break;
}
case opAreaAverage:
{
result = sum(values*magSf)/sum(magSf);
@ -203,7 +210,7 @@ bool Foam::fieldValues::faceSource::writeValues(const word& fieldName)
if (Pstream::master())
{
Type result = processValues(values, magSf);
Type result = processValues(values, magSf, weightField);
if (valueOutput_)
{