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