From f69deec7c1cdba758dab0fc63a7ae7a9d3b7a01c Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Sun, 23 Feb 2020 18:18:08 +0100
Subject: [PATCH] Avoid calling .get in BoundaryHandling.to_cpu which does not
 work for OpenCL

---
 pystencils/boundaries/boundaryhandling.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/pystencils/boundaries/boundaryhandling.py b/pystencils/boundaries/boundaryhandling.py
index 4056874ed..5a60ca6eb 100644
--- a/pystencils/boundaries/boundaryhandling.py
+++ b/pystencils/boundaries/boundaryhandling.py
@@ -96,21 +96,21 @@ class BoundaryHandling:
         fi = flag_interface
         self.flag_interface = fi if fi is not None else FlagInterface(data_handling, name + "Flags")
 
+        if ParallelDataHandling and isinstance(self.data_handling, ParallelDataHandling):
+            array_handler = PyCudaArrayHandler()
+        else:
+            array_handler = self.data_handling.array_handler
+
         def to_cpu(gpu_version, cpu_version):
             gpu_version = gpu_version.boundary_object_to_index_list
             cpu_version = cpu_version.boundary_object_to_index_list
             for obj, cpu_arr in cpu_version.items():
-                gpu_version[obj].get(cpu_arr)
+                array_handler.download(gpu_version[obj], cpu_arr)
 
         def to_gpu(gpu_version, cpu_version):
             gpu_version = gpu_version.boundary_object_to_index_list
             cpu_version = cpu_version.boundary_object_to_index_list
 
-            if ParallelDataHandling and isinstance(self.data_handling, ParallelDataHandling):
-                array_handler = PyCudaArrayHandler()
-            else:
-                array_handler = self.data_handling.array_handler
-
             for obj, cpu_arr in cpu_version.items():
                 if obj not in gpu_version or gpu_version[obj].shape != cpu_arr.shape:
                     gpu_version[obj] = array_handler.to_gpu(cpu_arr)
-- 
GitLab