diff --git a/cpp/particles/p2p/p2p_distr_mpi.hpp b/cpp/particles/p2p/p2p_distr_mpi.hpp index 34281d6180800fc0ea4bda7d747289947181c1db..694cae9af622b17f4d0151fb84ab936c82aee980 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],