OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
CartDecomposition_gpu< dim, T, Memory, layout_base > Class Template Reference

Detailed Description

template<unsigned int dim, typename T, typename Memory, template< typename > class layout_base>
class CartDecomposition_gpu< dim, T, Memory, layout_base >

Definition at line 77 of file CartDecomposition_gpu.cuh.

+ Inheritance diagram for CartDecomposition_gpu< dim, T, Memory, layout_base >:

Public Member Functions

 CartDecomposition_gpu (CellList_cpu_ker< dim, T, Mem_fast_ker< Memory, memory_traits_lin, int >, shift< dim, T >> clk, ie_ghost_gpu< dim, T, Memory, layout_base > ieg, openfpm::vector_gpu_ker< Box_map< dim, T >, layout_base > sub_domains_global, const Box< dim, T > &domain, const int(&bc)[dim])
 
 CartDecomposition_gpu (const CartDecomposition_gpu< dim, T, Memory, layout_base > &dec)
 
__device__ __host__ int processorIDBC (const Point< dim, T > &p)
 Given a point return in which processor the point/particle should go. More...
 
template<typename Mem >
__device__ __host__ void applyPointBC (encapc< 1, Point< dim, T >, Mem > &&pt) const
 Apply boundary condition to the point. More...
 
__device__ __host__ int processorID (const Point< dim, T > &pt)
 Given a point return in which processor the particle should go. More...
 
- Public Member Functions inherited from ie_ghost_gpu< dim, T, Memory, layout_base >
 ie_ghost_gpu (CellList_cpu_ker< dim, T, Mem_fast_ker< Memory, memory_traits_lin, int >, shift< dim, T >> geo_cell, openfpm::vector_gpu_ker< Box< dim, T >, layout_base > vb_int_box, openfpm::vector_gpu_ker< aggregate< unsigned int, unsigned int, unsigned int >, layout_base > vb_int)
 
 ie_ghost_gpu (const ie_ghost_gpu< dim, T, Memory, layout_base > &ieg)
 
__device__ unsigned int ghost_processorID_cell (const Point< dim, T > &p)
 Get the cell from the particle position. More...
 
__device__ unsigned int ghost_processorID_N (const Point< dim, T > &p)
 Get the number of processor a particle must sent. More...
 
template<typename output_type >
__device__ void ghost_processor_ID (const Point< dim, T > &p, output_type &output, unsigned int base, unsigned int pi)
 Get the number of processor a particle must sent. More...
 

Private Member Functions

__device__ __host__ void applyPointBC (Point< dim, T > &pt) const
 Apply boundary condition to the point. More...
 

Private Attributes

CellList_cpu_ker< dim, T, Mem_fast_ker< Memory, memory_traits_lin, int >, shift< dim, T > > clk
 
Box< dim, T > domain
 
int bc [dim]
 
openfpm::vector_gpu_ker< Box_map< dim, T >, layout_base > sub_domains_global
 

Member Function Documentation

◆ applyPointBC() [1/2]

template<unsigned int dim, typename T, typename Memory, template< typename > class layout_base>
__device__ __host__ void CartDecomposition_gpu< dim, T, Memory, layout_base >::applyPointBC ( Point< dim, T > &  pt) const
inlineprivate

Apply boundary condition to the point.

If the particle go out to the right, bring back the particle on the left in case of periodic, nothing in case of non periodic

Parameters
ptPoint to apply the boundary conditions.(it's coordinated are changed according the the explanation before)

Definition at line 96 of file CartDecomposition_gpu.cuh.

◆ applyPointBC() [2/2]

template<unsigned int dim, typename T, typename Memory, template< typename > class layout_base>
template<typename Mem >
__device__ __host__ void CartDecomposition_gpu< dim, T, Memory, layout_base >::applyPointBC ( encapc< 1, Point< dim, T >, Mem > &&  pt) const
inline

Apply boundary condition to the point.

If the particle go out to the right, bring back the particle on the left in case of periodic, nothing in case of non periodic

Parameters
ptencapsulated point object (it's coordinated are changed according the the explanation before)

Definition at line 151 of file CartDecomposition_gpu.cuh.

◆ processorID()

template<unsigned int dim, typename T, typename Memory, template< typename > class layout_base>
__device__ __host__ int CartDecomposition_gpu< dim, T, Memory, layout_base >::processorID ( const Point< dim, T > &  pt)
inline

Given a point return in which processor the particle should go.

Parameters
ppoint
Returns
processorID

Definition at line 168 of file CartDecomposition_gpu.cuh.

◆ processorIDBC()

template<unsigned int dim, typename T, typename Memory, template< typename > class layout_base>
__device__ __host__ int CartDecomposition_gpu< dim, T, Memory, layout_base >::processorIDBC ( const Point< dim, T > &  p)
inline

Given a point return in which processor the point/particle should go.

Boundary conditions are considered

Parameters
ppoint
Returns
processorID

Definition at line 134 of file CartDecomposition_gpu.cuh.


The documentation for this class was generated from the following file: