From 417a2f6a734e6bf7a95cada828680d545013cf31 Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Thu, 24 May 2018 09:52:33 +0100 Subject: [PATCH] BUG: reference FO: allocate interpolator on all processors. Fixes #823. --- .../field/reference/referenceTemplates.C | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/functionObjects/field/reference/referenceTemplates.C b/src/functionObjects/field/reference/referenceTemplates.C index a09b89ca804..f32150d2333 100644 --- a/src/functionObjects/field/reference/referenceTemplates.C +++ b/src/functionObjects/field/reference/referenceTemplates.C @@ -53,13 +53,15 @@ bool Foam::functionObjects::reference::calcType() { cellValue.value() = -pTraits<Type>::one*GREAT; + // Might trigger parallel comms (e.g. volPointInterpolation, if + // result is not yet cached) so have all processors do it + autoPtr<interpolation<Type>> interpolator + ( + interpolation<Type>::New(interpolationScheme_, vf) + ); + if (celli_ != -1) { - autoPtr<interpolation<Type>> interpolator - ( - interpolation<Type>::New(interpolationScheme_, vf) - ); - cellValue.value() = interpolator().interpolate(position_, celli_, -1); } -- GitLab