diff --git a/src/Vector/vector_dist.hpp b/src/Vector/vector_dist.hpp index 14e50cfd6c17821ec1bd9e94a05dc1302a2694a8..f32c0eaecc7cb7f212beb30ead314dc9d836fb41 100644 --- a/src/Vector/vector_dist.hpp +++ b/src/Vector/vector_dist.hpp @@ -219,6 +219,12 @@ struct cell_list_selector<vector,comp_host> } }; +#ifdef CUDA_GPU +typedef vector_dist_ker<dim,St,prop,layout_base> vdlk_type; +#else +typedef int vdlk_type; +#endif + /*! \brief Distributed vector * * This class represent a distributed vector, the distribution of the structure @@ -260,7 +266,7 @@ template<unsigned int dim, typename Memory = HeapMemory, template<typename> class layout_base = memory_traits_lin> class vector_dist : public vector_dist_comm<dim,St,prop,Decomposition,Memory,layout_base>, - private vector_dist_ker_list<vector_dist_ker<dim,St,prop,layout_base>> + private vector_dist_ker_list<vdlk_type> { public: @@ -2200,7 +2206,9 @@ public: this->template map_list_<prp...>(v_pos,v_prp,g_m,opt); +#ifdef CUDA_GPU this->update(this->toKernel()); +#endif #ifdef SE_CLASS3 se3.map_post(); @@ -2227,7 +2235,9 @@ public: this->template map_<obp>(v_pos,v_prp,g_m,opt); +#ifdef CUDA_GPU this->update(this->toKernel()); +#endif #ifdef SE_CLASS3 se3.map_post(); @@ -2257,7 +2267,9 @@ public: this->template ghost_get_<GHOST_SYNC,prp...>(v_pos,v_prp,g_m,opt); +#ifdef CUDA_GPU this->update(this->toKernel()); +#endif #ifdef SE_CLASS3 @@ -2311,7 +2323,9 @@ public: this->template ghost_wait_<prp...>(v_pos,v_prp,g_m,opt); +#ifdef CUDA_GPU this->update(this->toKernel()); +#endif #ifdef SE_CLASS3 @@ -2557,7 +2571,9 @@ public: g_m = rs; +#ifdef CUDA_GPU this->update(this->toKernel()); +#endif } /*! \brief Output particle position and properties @@ -2997,6 +3013,40 @@ public: boost::mpl::int_<prp> >::type,prp>::compare(v_prp,tol,near,silent); } +#else + + /*! \brief Move the memory from the device to host memory + * + * \tparam property to move use POS_PROP for position property + * + */ + template<unsigned int ... prp> void deviceToHostProp() + {} + + /*! \brief Move the memory from the device to host memory + * + * \tparam property to move use POS_PROP for position property + * + */ + void deviceToHostPos() + {} + + /*! \brief Move the memory from the device to host memory + * + * \tparam property to move use POS_PROP for position property + * + */ + template<unsigned int ... prp> void hostToDeviceProp() + {} + + /*! \brief Move the memory from the device to host memory + * + * \tparam property to move use POS_PROP for position property + * + */ + void hostToDevicePos() + {} + #endif