From e6416f6c03f085fb5055f86e6e196ed47d238244 Mon Sep 17 00:00:00 2001
From: Cristian C Lalescu <Cristian.Lalescu@mpcdf.mpg.de>
Date: Wed, 16 Dec 2020 11:54:26 +0100
Subject: [PATCH] fixes usage of thread local p2p computer

---
 cpp/particles/p2p/p2p_distr_mpi.hpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/cpp/particles/p2p/p2p_distr_mpi.hpp b/cpp/particles/p2p/p2p_distr_mpi.hpp
index 34281d61..694cae9a 100644
--- a/cpp/particles/p2p/p2p_distr_mpi.hpp
+++ b/cpp/particles/p2p/p2p_distr_mpi.hpp
@@ -652,6 +652,7 @@ public:
 
                                 #pragma omp task default(shared) firstprivate(idxPart, nb_parts_in_cell, current_cell_idx)
                                 {
+                                    computer_class& computer_thread_task = (omp_get_thread_num() == 0 ? in_computer : *computer_for_all_threads[omp_get_thread_num()-1]);
                                     const std::vector<std::pair<partsize_t,partsize_t>>* neighbors[27];
                                     long int neighbors_indexes[27];
                                     std::array<real_number,3> shift[27];
@@ -684,7 +685,7 @@ public:
                                                                     diff_y,
                                                                     diff_z);
                                                     if(dist_r2 < cutoff_radius_compute*cutoff_radius_compute){
-                                                        computer_thread.template compute_interaction<size_particle_positions, size_particle_rhs>(
+                                                        computer_thread_task.template compute_interaction<size_particle_positions, size_particle_rhs>(
                                                                             descriptor.indexes[(idxPart+idx_p1)],
                                                                             &descriptor.toCompute[(idxPart+idx_p1)*size_particle_positions],
                                                                             &descriptor.results[(idxPart+idx_p1)*size_particle_rhs],
-- 
GitLab