From 6297f7b0fd0bed245b8d24d7e17c5243225edf1c Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 25 Feb 2019 18:40:35 +0100 Subject: [PATCH] ENH: use cellPoint interpolation directly for surfaceFieldValue (#1212) - prior to sampledSurface supporting different interpolation schemes a workaround means was used to simulate cellPoint -> face interpolation, with averaging of vertex interpolation. We instead now use cellPoint interpolation directly for the face values when 'interpolate=true'. --- .../surfaceFieldValue/surfaceFieldValue.H | 2 +- .../surfaceFieldValueTemplates.C | 19 +------------------ 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H index b79fa5a79d..2e29dbef9b 100644 --- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H +++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.H @@ -211,7 +211,7 @@ class surfaceFieldValue { public: - // Public data types + // Public Data Types //- Region type enumeration enum regionTypes diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C index fbb066cc40..7eb1abb57e 100644 --- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C +++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValueTemplates.C @@ -98,25 +98,8 @@ Foam::functionObjects::fieldValues::surfaceFieldValue::getFieldValues if (sampledPtr_().interpolate()) { const interpolationCellPoint interp(fld); - tmp> tintFld(sampledPtr_().interpolate(interp)); - const Field& intFld = tintFld(); - // Average - const faceList& faces = sampledPtr_().faces(); - auto tavg = tmp>::New(faces.size(), Zero); - auto& avg = tavg.ref(); - - forAll(faces, facei) - { - const face& f = faces[facei]; - for (const label labi : f) - { - avg[facei] += intFld[labi]; - } - avg[facei] /= f.size(); - } - - return tavg; + return sampledPtr_().sample(interp); } else {