diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C index ebf14d47f0..3bbb078c86 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C +++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C @@ -50,7 +50,7 @@ namespace Foam const char* Foam::NamedEnum < Foam::fieldValues::cellSource::operationType, - 7 + 8 >::names[] = { "none", @@ -59,7 +59,8 @@ namespace Foam "volIntegrate", "weightedAverage", "min", - "max" + "max", + "CoV" }; } @@ -67,7 +68,7 @@ namespace Foam const Foam::NamedEnum Foam::fieldValues::cellSource::sourceTypeNames_; -const Foam::NamedEnum +const Foam::NamedEnum Foam::fieldValues::cellSource::operationTypeNames_; diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H index b3231481f6..259c2aff88 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H +++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H @@ -52,6 +52,7 @@ Description - volAverage - volIntegrate - weightedAverage + - CoV (Coefficient of variation: standard deviation/mean) SourceFiles cellSource.C @@ -106,11 +107,12 @@ public: opVolIntegrate, opWeightedAverage, opMin, - opMax + opMax, + opCoV }; //- Operation type names - static const NamedEnum operationTypeNames_; + static const NamedEnum operationTypeNames_; private: diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.C b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.C index 6c3fe94438..9a3263465c 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.C +++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceTemplates.C @@ -115,6 +115,23 @@ Type Foam::fieldValues::cellSource::processValues result = max(values); break; } + case opCoV: + { + Type meanValue = sum(values*V)/sum(V); + + const label nComp = pTraits::nComponents; + + for (direction d=0; d::names[] = { "none", @@ -62,7 +62,8 @@ namespace Foam "areaIntegrate", "weightedAverage", "min", - "max" + "max", + "CoV" }; } @@ -71,7 +72,7 @@ namespace Foam const Foam::NamedEnum Foam::fieldValues::faceSource::sourceTypeNames_; -const Foam::NamedEnum +const Foam::NamedEnum Foam::fieldValues::faceSource::operationTypeNames_; diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H index 4ff40c837d..90f972c574 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H +++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H @@ -62,6 +62,7 @@ Description - weightedAverage - min - max + - CoV (Coefficient of variation: standard deviation/mean) Notes: - faces on empty patches get ignored @@ -132,11 +133,12 @@ public: opAreaIntegrate, opWeightedAverage, opMin, - opMax + opMax, + opCoV }; //- Operation type names - static const NamedEnum operationTypeNames_; + static const NamedEnum operationTypeNames_; private: diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C index 47fb3a61e1..821fda5f6a 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C +++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C @@ -134,6 +134,25 @@ Type Foam::fieldValues::faceSource::processValues result = max(values); break; } + case opCoV: + { + Type meanValue = sum(values*magSf)/sum(magSf); + + const label nComp = pTraits::nComponents; + + for (direction d=0; d