OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > Class Template Reference

This class is an helper for the communication of vector_dist. More...

Detailed Description

template<unsigned int dim, typename St, typename prop, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
class vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >

This class is an helper for the communication of vector_dist.

Template Parameters
dimDimensionality of the space where the elements lives
Sttype of space float, double ...
propproperties the vector element store in OpenFPM data structure format
DecompositionDecomposition strategy to use CartDecomposition ...
MemoryMemory pool where store the information HeapMemory ...
See also
vector_dist

Definition at line 346 of file vector_dist_comm.hpp.

#include <vector_dist_comm.hpp>

+ Inheritance diagram for vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >:

Data Structures

struct  proc_with_prp
 process the particle with properties More...
 
struct  set_mem_retained_buffers
 
struct  set_mem_retained_buffers< true, send_vector, v_mpl >
 
struct  set_mem_retained_buffers_inte
 Set the buffer for each property. More...
 

Public Member Functions

 vector_dist_comm (const vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &v)
 Copy Constructor.
 
 vector_dist_comm (const Decomposition &dec)
 Constructor.
 
 vector_dist_comm (Decomposition &&dec)
 Constructor.
 
 vector_dist_comm ()
 Constructor.
 
 ~vector_dist_comm ()
 Destructor.
 
size_t getDecompositionGranularity ()
 Get the number of minimum sub-domain per processor.
 
void setDecompositionGranularity (size_t n_sub)
 Set the minimum number of sub-domain per processor.
 
void init_decomposition (Box< dim, St > &box, const size_t(&bc)[dim], const Ghost< dim, St > &g, size_t opt, const grid_sm< dim, void > &gdist)
 Initialize the decomposition.
 
void init_decomposition_gr_cell (Box< dim, St > &box, const size_t(&bc)[dim], const Ghost< dim, St > &g, size_t opt, const grid_sm< dim, void > &gdist)
 Initialize the decomposition.
 
template<unsigned int impl, int ... prp>
void ghost_get_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt=WITH_POSITION)
 It synchronize the properties and position of the ghost particles.
 
template<int ... prp>
void ghost_wait_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt=WITH_POSITION)
 It synchronize the properties and position of the ghost particles.
 
template<unsigned int ... prp>
void map_list_ (openfpm::vector< Point< dim, St > > &v_pos, openfpm::vector< prop > &v_prp, size_t &g_m, size_t opt)
 It move all the particles that does not belong to the local processor to the respective processor.
 
template<typename obp = KillParticle>
void map_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt)
 It move all the particles that does not belong to the local processor to the respective processor.
 
DecompositiongetDecomposition ()
 Get the decomposition.
 
const DecompositiongetDecomposition () const
 Get the decomposition.
 
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > & operator= (const vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &vc)
 Copy a vector.
 
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > & operator= (vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &&vc)
 Copy a vector.
 
template<template< typename, typename > class op, int ... prp>
void ghost_put_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt)
 Ghost put.
 

Private Types

typedef openfpm::vector< Point< dim, St >, Memory, layout_base, openfpm::grow_policy_identitysend_pos_vector
 definition of the send vector for position
 

Private Member Functions

size_t get_last_ghost_get_received_parts (size_t i)
 Get the number of particles received from each processor during the last ghost_get.
 
size_t get_last_ghost_get_num_proc ()
 Get the number of processor involved during the last ghost_get.
 
openfpm::vector< size_t > & get_last_ghost_get_num_proc_vector ()
 Get the number of processor involved during the last ghost_get.
 
void calc_send_buffers (openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &prc_sz, openfpm::vector< size_t > &prc_sz_r, openfpm::vector< size_t > &prc_r, size_t opt)
 Calculate sending buffer size for each processor.
 
void createShiftBox ()
 For every internal ghost box we create a structure that order such internal local ghost box in shift vectors.
 
void local_ghost_from_opart (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t opt)
 Local ghost from labeled particles.
 
void local_ghost_from_dec (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t g_m, size_t opt)
 Local ghost from decomposition.
 
void add_loc_particles_bc (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt)
 Add local particles based on the boundary conditions.
 
void fill_send_ghost_pos_buf (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< size_t > &prc_sz, openfpm::vector< send_pos_vector > &g_pos_send, size_t opt, bool async)
 This function fill the send buffer for the particle position after the particles has been label with labelParticles.
 
template<typename send_vector , typename prp_object , int ... prp>
void fill_send_ghost_put_prp_buf (openfpm::vector< prop, Memory, layout_base > &v_prp, openfpm::vector< send_vector > &g_send_prp, size_t &g_m, size_t opt)
 This function fill the send buffer for ghost_put.
 
void resize_retained_buffer (openfpm::vector_fr< Memory > &rt_buf, size_t nbf)
 resize the retained buffer by nbf
 
template<typename send_vector , typename prp_object , int ... prp>
void fill_send_ghost_prp_buf (openfpm::vector< prop, Memory, layout_base > &v_prp, openfpm::vector< size_t > &prc_sz, openfpm::vector< send_vector > &g_send_prp, size_t opt)
 This function fill the send buffer for properties after the particles has been label with labelParticles.
 
void fill_send_map_buf (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, openfpm::vector< size_t > &prc_sz_r, openfpm::vector< size_t > &prc_r, openfpm::vector< openfpm::vector< Point< dim, St >, Memory, layout_base, openfpm::grow_policy_identity > > &m_pos, openfpm::vector< openfpm::vector< prop, Memory, layout_base, openfpm::grow_policy_identity > > &m_prp, openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &prc_sz, size_t opt)
 allocate and fill the send buffer for the map function
 
template<typename prp_object , int ... prp>
void fill_send_map_buf_list (openfpm::vector< Point< dim, St > > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, openfpm::vector< size_t > &prc_sz_r, openfpm::vector< openfpm::vector< Point< dim, St > > > &m_pos, openfpm::vector< openfpm::vector< prp_object > > &m_prp)
 allocate and fill the send buffer for the map function
 
template<typename obp >
void labelParticleProcessor (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< aggregate< int, int, int >, Memory, layout_base > &lbl_p, openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &prc_sz, size_t opt)
 Label particles for mappings.
 
void labelParticlesGhost (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, openfpm::vector< size_t > &prc, openfpm::vector< size_t > &prc_sz, openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &prc_offset, size_t &g_m, size_t opt)
 Label the particles.
 

Static Private Member Functions

static void * message_alloc_map (size_t msg_i, size_t total_msg, size_t total_p, size_t i, size_t ri, void *ptr)
 Call-back to allocate buffer to receive incoming elements (particles)
 

Private Attributes

size_t v_sub_unit_factor = 64
 Number of units for each sub-domain.
 
Vcluster< Memory > & v_cl
 VCluster.
 
Decomposition dec
 Domain decomposition.
 
openfpm::vector< size_t > p_map_req
 It map the processor id with the communication request into map procedure.
 
openfpm::vector< aggregate< int, int, int >, Memory, layout_base > m_opart
 
openfpm::vector< openfpm::vector< aggregate< size_t, size_t > > > g_opart
 
openfpm::vector< aggregate< unsigned int, unsigned long int >, CudaMemory, memory_traits_integ_opart_device
 Same as g_opart but on device, the vector of vector is flatten into a single vector.
 
openfpm::vector< Point< dim, St >, Memory, layout_base > v_pos_tmp
 Helper buffer for computation (on GPU) of local particles (position)
 
openfpm::vector< prop, Memory, layout_base > v_prp_tmp
 Helper buffer for computation (on GPU) of local particles (properties)
 
openfpm::vector< size_t > g_opart_sz
 Per processor number of particle g_opart_sz.get(i) = g_opart.get(i).size()
 
openfpm::vector< size_t > prc_g_opart
 processor rank list of g_opart
 
openfpm::vector< size_t > prc_recv_get_pos
 
openfpm::vector< size_t > prc_recv_get_prp
 
openfpm::vector< size_t > prc_recv_put
 the same as prc_recv_get but for put
 
openfpm::vector< size_t > prc_recv_map
 the same as prc_recv_get but for map
 
openfpm::vector< size_t > recv_sz_get_pos
 
openfpm::vector< size_t > recv_sz_get_prp
 
openfpm::vector< size_t > recv_sz_get_byte
 Conversion to byte of recv_sz_get.
 
openfpm::vector< size_t > recv_sz_put
 The same as recv_sz_get but for put.
 
openfpm::vector< size_t > recv_sz_map
 The same as recv_sz_get but for map.
 
openfpm::vector< size_t > prc_sz_gg
 elements sent for each processors (ghost_get)
 
openfpm::vector< aggregate< unsigned int >, Memory, layout_base > proc_id_out
 temporary buffer to processors ids
 
openfpm::vector< aggregate< unsigned int >, Memory, layout_base > starts
 temporary buffer for the scan result
 
openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > prc_offset
 Processor communication size.
 
CudaMemory mem
 Temporary CudaMemory to do stuff.
 
size_t lg_m
 
openfpm::vector_fr< Memory > hsmem
 Sending buffer.
 
long int shift_box_ndec = -1
 From which decomposition the shift boxes are calculated.
 
std::unordered_map< size_t, size_t > map_cmb
 this map is used to check if a combination is already present
 
openfpm::vector_std< openfpm::vector_std< Box< dim, St > > > box_f
 
openfpm::vector< Box< dim, St >, Memory, layout_base > box_f_dev
 The boxes touching the border of the domain + shift vector linearized from where they come from.
 
openfpm::vector< aggregate< unsigned int >, Memory, layout_base > box_f_sv
 
openfpm::vector_std< comb< dim > > box_cmb
 Store the sector for each group (previous vector)
 
openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > o_part_loc
 Id of the local particle to replicate for ghost_get.
 
openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > prc_sz
 Processor communication size.
 

Member Typedef Documentation

◆ send_pos_vector

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
typedef openfpm::vector<Point<dim, St>,Memory,layout_base,openfpm::grow_policy_identity> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::send_pos_vector
private

definition of the send vector for position

Definition at line 352 of file vector_dist_comm.hpp.

Constructor & Destructor Documentation

◆ vector_dist_comm() [1/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::vector_dist_comm ( const vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &  v)
inline

Copy Constructor.

Parameters
vvector to copy

Definition at line 1629 of file vector_dist_comm.hpp.

◆ vector_dist_comm() [2/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::vector_dist_comm ( const Decomposition dec)
inline

Constructor.

Parameters
decDomain decompositon

Definition at line 1641 of file vector_dist_comm.hpp.

◆ vector_dist_comm() [3/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::vector_dist_comm ( Decomposition &&  dec)
inline

Constructor.

Parameters
decDomain decompositon

Definition at line 1652 of file vector_dist_comm.hpp.

◆ vector_dist_comm() [4/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::vector_dist_comm ( )
inline

Constructor.

Definition at line 1661 of file vector_dist_comm.hpp.

◆ ~vector_dist_comm()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::~vector_dist_comm ( )
inline

Destructor.

Release the retained buffer

Definition at line 1671 of file vector_dist_comm.hpp.

Member Function Documentation

◆ add_loc_particles_bc()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::add_loc_particles_bc ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
size_t &  g_m,
size_t  opt 
)
inlineprivate

Add local particles based on the boundary conditions.

In order to understand what this function use the following

    [1,1]
    +---------+------------------------+---------+
    | (1,-1)  |                        | (1,1)   |
    |   |     |    (1,0) --> 7         |   |     |
    |   v     |                        |   v     |
    |   6     |                        |   8     |
    +--------------------------------------------+
    |         |                        |         |
    |         |                        |         |
    |         |                        |         |
    | (-1,0)  |                        | (1,0)   |
    |    |    |                        |   |     |
    |    v    |      (0,0) --> 4       |   v     |
    |    3    |                        |   5     |
    |         |                        |         |
B    |         |                        |     A   |
*    |         |                        |    *    |
    |         |                        |         |
    |         |                        |         |
    |         |                        |         |
    +--------------------------------------------+
    | (-1,-1) |                        | (-1,1)  |
    |    |    |   (-1,0) --> 1         |    |    |
    |    v    |                        |    v    |
    |    0    |                        |    2    |
    +---------+------------------------+---------+
   The box is the domain, while all boxes at the border (so not (0,0) ) are the
   ghost part at the border of the domain. If a particle A is in the position in figure
   a particle B must be created. This function duplicate the particle A, if A and B are
   local

  \param v_pos vector of particle of positions
  \param v_prp vector of particle properties
  \param g_m ghost marker
  \param opt options

Definition at line 845 of file vector_dist_comm.hpp.

◆ calc_send_buffers()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::calc_send_buffers ( openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &  prc_sz,
openfpm::vector< size_t > &  prc_sz_r,
openfpm::vector< size_t > &  prc_r,
size_t  opt 
)
inlineprivate

Calculate sending buffer size for each processor.

Parameters
prc_sz_rprocessor size
prc_rprocessor ids

Definition at line 509 of file vector_dist_comm.hpp.

◆ createShiftBox()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::createShiftBox ( )
inlineprivate

For every internal ghost box we create a structure that order such internal local ghost box in shift vectors.

Definition at line 588 of file vector_dist_comm.hpp.

◆ fill_send_ghost_pos_buf()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::fill_send_ghost_pos_buf ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< size_t > &  prc_sz,
openfpm::vector< send_pos_vector > &  g_pos_send,
size_t  opt,
bool  async 
)
inlineprivate

This function fill the send buffer for the particle position after the particles has been label with labelParticles.

Parameters
v_posvector of particle positions
g_pos_sendSend buffer to fill

Definition at line 873 of file vector_dist_comm.hpp.

◆ fill_send_ghost_prp_buf()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<typename send_vector , typename prp_object , int ... prp>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::fill_send_ghost_prp_buf ( openfpm::vector< prop, Memory, layout_base > &  v_prp,
openfpm::vector< size_t > &  prc_sz,
openfpm::vector< send_vector > &  g_send_prp,
size_t  opt 
)
inlineprivate

This function fill the send buffer for properties after the particles has been label with labelParticles.

Template Parameters
send_vectortype used to send data
prp_objectobject containing only the properties to send
prpset of properties to send
Parameters
v_prpvector of particle properties
g_send_prpSend buffer to fill

Definition at line 1151 of file vector_dist_comm.hpp.

◆ fill_send_ghost_put_prp_buf()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<typename send_vector , typename prp_object , int ... prp>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::fill_send_ghost_put_prp_buf ( openfpm::vector< prop, Memory, layout_base > &  v_prp,
openfpm::vector< send_vector > &  g_send_prp,
size_t &  g_m,
size_t  opt 
)
inlineprivate

This function fill the send buffer for ghost_put.

Template Parameters
send_vectortype used to send data
prp_objectobject containing only the properties to send
prpset of properties to send
Parameters
v_prpvector of particle properties
g_send_prpSend buffer to fill
g_mghost marker

Definition at line 962 of file vector_dist_comm.hpp.

◆ fill_send_map_buf()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::fill_send_map_buf ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
openfpm::vector< size_t > &  prc_sz_r,
openfpm::vector< size_t > &  prc_r,
openfpm::vector< openfpm::vector< Point< dim, St >, Memory, layout_base, openfpm::grow_policy_identity > > &  m_pos,
openfpm::vector< openfpm::vector< prop, Memory, layout_base, openfpm::grow_policy_identity > > &  m_prp,
openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &  prc_sz,
size_t  opt 
)
inlineprivate

allocate and fill the send buffer for the map function

Parameters
v_posvector of particle positions
v_prpvector of particles properties
prc_sz_rFor each processor in the list the size of the message to send
m_possending buffer for position
m_prpsending buffer for properties
offsetfrom where start the list of the particles that migrate in o_part This parameter is used only in case of RUN_ON_DEVICE option

Definition at line 1242 of file vector_dist_comm.hpp.

◆ fill_send_map_buf_list()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<typename prp_object , int ... prp>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::fill_send_map_buf_list ( openfpm::vector< Point< dim, St > > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
openfpm::vector< size_t > &  prc_sz_r,
openfpm::vector< openfpm::vector< Point< dim, St > > > &  m_pos,
openfpm::vector< openfpm::vector< prp_object > > &  m_prp 
)
inlineprivate

allocate and fill the send buffer for the map function

Template Parameters
prp_objectobject type to send
prpproperties to send
Parameters
v_posvector of particle positions
v_prpvector of particle properties
prc_sz_rnumber of particles to send for each processor
m_possending buffer for position
m_prpsending buffer for properties

Definition at line 1356 of file vector_dist_comm.hpp.

◆ get_last_ghost_get_num_proc()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
size_t vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::get_last_ghost_get_num_proc ( )
inlineprivate

Get the number of processor involved during the last ghost_get.

Returns
the number of processor

Definition at line 483 of file vector_dist_comm.hpp.

◆ get_last_ghost_get_num_proc_vector()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector< size_t > & vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::get_last_ghost_get_num_proc_vector ( )
inlineprivate

Get the number of processor involved during the last ghost_get.

Returns
the number of processor

Definition at line 495 of file vector_dist_comm.hpp.

◆ get_last_ghost_get_received_parts()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
size_t vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::get_last_ghost_get_received_parts ( size_t  i)
inlineprivate

Get the number of particles received from each processor during the last ghost_get.

Parameters
iprocessor (list index)
Returns
the number of particles

Definition at line 469 of file vector_dist_comm.hpp.

◆ getDecomposition() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
Decomposition & vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::getDecomposition ( )
inline

Get the decomposition.

Returns

Definition at line 2045 of file vector_dist_comm.hpp.

◆ getDecomposition() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
const Decomposition & vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::getDecomposition ( ) const
inline

Get the decomposition.

Returns

Definition at line 2055 of file vector_dist_comm.hpp.

◆ getDecompositionGranularity()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
size_t vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::getDecompositionGranularity ( )
inline

Get the number of minimum sub-domain per processor.

Returns
minimum number

Definition at line 1688 of file vector_dist_comm.hpp.

◆ ghost_get_()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<unsigned int impl, int ... prp>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::ghost_get_ ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
size_t &  g_m,
size_t  opt = WITH_POSITION 
)
inline

It synchronize the properties and position of the ghost particles.

Template Parameters
prplist of properties to get synchronize
Parameters
optoptions WITH_POSITION, it send also the positional information of the particles
v_posvector of position to update
v_prpvector of properties to update
g_mmarker between real and ghost particles

Definition at line 1778 of file vector_dist_comm.hpp.

◆ ghost_put_()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<template< typename, typename > class op, int ... prp>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::ghost_put_ ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
size_t &  g_m,
size_t  opt 
)
inline

Ghost put.

Template Parameters
opoperation to apply
prpset of properties
Parameters
v_posvector of particle positions
v_prpvector od particle properties
g_mghost marker
optoptions

Definition at line 2100 of file vector_dist_comm.hpp.

◆ ghost_wait_()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<int ... prp>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::ghost_wait_ ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
size_t &  g_m,
size_t  opt = WITH_POSITION 
)
inline

It synchronize the properties and position of the ghost particles.

Template Parameters
prplist of properties to get synchronize
Parameters
optoptions WITH_POSITION, it send also the positional information of the particles
v_posvector of position to update
v_prpvector of properties to update
g_mmarker between real and ghost particles

Definition at line 1865 of file vector_dist_comm.hpp.

◆ init_decomposition()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::init_decomposition ( Box< dim, St > &  box,
const size_t(&)  bc[dim],
const Ghost< dim, St > &  g,
size_t  opt,
const grid_sm< dim, void > &  gdist 
)
inline

Initialize the decomposition.

Parameters
boxdomain
bcboundary conditions
gghost extension
optadditional options

Definition at line 1711 of file vector_dist_comm.hpp.

◆ init_decomposition_gr_cell()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::init_decomposition_gr_cell ( Box< dim, St > &  box,
const size_t(&)  bc[dim],
const Ghost< dim, St > &  g,
size_t  opt,
const grid_sm< dim, void > &  gdist 
)
inline

Initialize the decomposition.

Parameters
boxdomain
bcboundary conditions
gghost extension
optadditional options

Definition at line 1751 of file vector_dist_comm.hpp.

◆ labelParticleProcessor()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<typename obp >
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::labelParticleProcessor ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< aggregate< int, int, int >, Memory, layout_base > &  lbl_p,
openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &  prc_sz,
size_t  opt 
)
inlineprivate

Label particles for mappings.

Parameters
v_posvector of particle positions
lbl_pParticle labeled
prc_szFor each processor the number of particles to send
optoptions

Definition at line 1398 of file vector_dist_comm.hpp.

◆ labelParticlesGhost()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::labelParticlesGhost ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
openfpm::vector< size_t > &  prc,
openfpm::vector< size_t > &  prc_sz,
openfpm::vector< aggregate< unsigned int, unsigned int >, Memory, layout_base > &  prc_offset,
size_t &  g_m,
size_t  opt 
)
inlineprivate

Label the particles.

It count the number of particle to send to each processors and save its ids

See also
nn_prcs::getShiftvectors()
Parameters
v_posvector of particle positions
v_prpvector of particle properties
prcfor each particle it label the processor id (the owner of the particle, or where it should go the particle)
g_mghost marker
optghost_get options

Definition at line 1530 of file vector_dist_comm.hpp.

◆ local_ghost_from_dec()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::local_ghost_from_dec ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
size_t  g_m,
size_t  opt 
)
inlineprivate

Local ghost from decomposition.

Parameters
v_posvector of particle positions
v_prpvector of particle properties
g_mghost marker

Definition at line 734 of file vector_dist_comm.hpp.

◆ local_ghost_from_opart()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::local_ghost_from_opart ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
size_t  opt 
)
inlineprivate

Local ghost from labeled particles.

Parameters
v_posvector of particle positions
v_prpvector of particles properties
optoptions

Definition at line 677 of file vector_dist_comm.hpp.

◆ map_()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<typename obp = KillParticle>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::map_ ( openfpm::vector< Point< dim, St >, Memory, layout_base > &  v_pos,
openfpm::vector< prop, Memory, layout_base > &  v_prp,
size_t &  g_m,
size_t  opt 
)
inline

It move all the particles that does not belong to the local processor to the respective processor.

Template Parameters
outof bound policy it specify what to do when the particles are detected out of bound

In general this function is called after moving the particles to move the elements out the local processor. Or just after initialization if each processor contain non local particles

Parameters
v_posvector of particle positions
v_prpvector of particle properties
g_mghost marker

position vector

properties vector

Definition at line 1982 of file vector_dist_comm.hpp.

◆ map_list_()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
template<unsigned int ... prp>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::map_list_ ( openfpm::vector< Point< dim, St > > &  v_pos,
openfpm::vector< prop > &  v_prp,
size_t &  g_m,
size_t  opt 
)
inline

It move all the particles that does not belong to the local processor to the respective processor.

Template Parameters
outof bound policy it specify what to do when the particles are detected out of bound

In general this function is called after moving the particles to move the elements out the local processor. Or just after initialization if each processor contain non local particles

Template Parameters
prpproperties to communicate
Parameters
v_posvector of particle positions
v_prpvector of particle properties
g_mghost marker
optoptions

position vector

properties vector

Definition at line 1905 of file vector_dist_comm.hpp.

◆ message_alloc_map()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
static void * vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::message_alloc_map ( size_t  msg_i,
size_t  total_msg,
size_t  total_p,
size_t  i,
size_t  ri,
void *  ptr 
)
inlinestaticprivate

Call-back to allocate buffer to receive incoming elements (particles)

Parameters
msg_isize required to receive the message from i
total_msgtotal size to receive from all the processors
total_pthe total number of processor that want to communicate with you
iprocessor id
rirequest id (it is an id that goes from 0 to total_p, and is unique every time message_alloc is called)
ptra pointer to the vector_dist structure
Returns
the pointer where to store the message for the processor i

Definition at line 1611 of file vector_dist_comm.hpp.

◆ operator=() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > & vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::operator= ( const vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &  vc)
inline

Copy a vector.

Parameters
vcvector to copy
Returns
iteself

Definition at line 2067 of file vector_dist_comm.hpp.

◆ operator=() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > & vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::operator= ( vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &&  vc)
inline

Copy a vector.

Parameters
vcvector to copy
Returns
itself

Definition at line 2081 of file vector_dist_comm.hpp.

◆ resize_retained_buffer()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::resize_retained_buffer ( openfpm::vector_fr< Memory > &  rt_buf,
size_t  nbf 
)
inlineprivate

resize the retained buffer by nbf

Definition at line 1056 of file vector_dist_comm.hpp.

◆ setDecompositionGranularity()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
void vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::setDecompositionGranularity ( size_t  n_sub)
inline

Set the minimum number of sub-domain per processor.

Parameters
n_sub

Definition at line 1698 of file vector_dist_comm.hpp.

Field Documentation

◆ box_cmb

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector_std<comb<dim> > vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::box_cmb
private

Store the sector for each group (previous vector)

Definition at line 576 of file vector_dist_comm.hpp.

◆ box_f

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector_std<openfpm::vector_std<Box<dim, St> > > vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::box_f
private

The boxes touching the border of the domain are divided in groups (first vector) each group contain internal ghost coming from sub-domains of the same section

Definition at line 569 of file vector_dist_comm.hpp.

◆ box_f_dev

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<Box<dim, St>,Memory,layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::box_f_dev
private

The boxes touching the border of the domain + shift vector linearized from where they come from.

Definition at line 572 of file vector_dist_comm.hpp.

◆ box_f_sv

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<unsigned int>,Memory,layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::box_f_sv
private

Definition at line 573 of file vector_dist_comm.hpp.

◆ dec

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
Decomposition vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::dec
private

Domain decomposition.

Definition at line 358 of file vector_dist_comm.hpp.

◆ g_opart

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<openfpm::vector<aggregate<size_t,size_t> > > vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::g_opart
private

Per processor ordered particles id for ghost_get (see prc_g_opart) For each processor the internal vector store the id of the particles that must be communicated to the other processors

Definition at line 375 of file vector_dist_comm.hpp.

◆ g_opart_device

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<unsigned int,unsigned long int>, CudaMemory, memory_traits_inte> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::g_opart_device
private

Same as g_opart but on device, the vector of vector is flatten into a single vector.

Definition at line 380 of file vector_dist_comm.hpp.

◆ g_opart_sz

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::g_opart_sz
private

Per processor number of particle g_opart_sz.get(i) = g_opart.get(i).size()

Definition at line 389 of file vector_dist_comm.hpp.

◆ hsmem

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector_fr<Memory> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::hsmem
private

Sending buffer.

Definition at line 444 of file vector_dist_comm.hpp.

◆ lg_m

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
size_t vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::lg_m
private

Local ghost marker (across the ghost particles it mark from where we have the) replicated ghost particles that are local

Definition at line 441 of file vector_dist_comm.hpp.

◆ m_opart

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<int,int,int>, Memory, layout_base > vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::m_opart
private

For each near processor, outgoing particle id

Warning
opart is assumed to be an ordered list first id particle id second id shift id third id is the processor id

Definition at line 370 of file vector_dist_comm.hpp.

◆ map_cmb

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
std::unordered_map<size_t, size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::map_cmb
private

this map is used to check if a combination is already present

Definition at line 565 of file vector_dist_comm.hpp.

◆ mem

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
CudaMemory vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::mem
private

Temporary CudaMemory to do stuff.

Definition at line 437 of file vector_dist_comm.hpp.

◆ o_part_loc

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<unsigned int,unsigned int>,Memory,layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::o_part_loc
private

Id of the local particle to replicate for ghost_get.

Definition at line 579 of file vector_dist_comm.hpp.

◆ p_map_req

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::p_map_req
private

It map the processor id with the communication request into map procedure.

Definition at line 361 of file vector_dist_comm.hpp.

◆ prc_g_opart

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_g_opart
private

processor rank list of g_opart

Definition at line 392 of file vector_dist_comm.hpp.

◆ prc_offset

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<unsigned int, unsigned int>,Memory,layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_offset
private

Processor communication size.

Definition at line 433 of file vector_dist_comm.hpp.

◆ prc_recv_get_pos

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_recv_get_pos
private

It store the list of processor that communicate with us (local processor) from the last ghost get

Definition at line 396 of file vector_dist_comm.hpp.

◆ prc_recv_get_prp

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_recv_get_prp
private

Definition at line 397 of file vector_dist_comm.hpp.

◆ prc_recv_map

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_recv_map
private

the same as prc_recv_get but for map

Definition at line 403 of file vector_dist_comm.hpp.

◆ prc_recv_put

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_recv_put
private

the same as prc_recv_get but for put

Definition at line 400 of file vector_dist_comm.hpp.

◆ prc_sz

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<unsigned int, unsigned int>,Memory,layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_sz
private

Processor communication size.

Definition at line 582 of file vector_dist_comm.hpp.

◆ prc_sz_gg

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::prc_sz_gg
private

elements sent for each processors (ghost_get)

Definition at line 420 of file vector_dist_comm.hpp.

◆ proc_id_out

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<unsigned int>, Memory, layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::proc_id_out
private

temporary buffer to processors ids

Definition at line 425 of file vector_dist_comm.hpp.

◆ recv_sz_get_byte

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::recv_sz_get_byte
private

Conversion to byte of recv_sz_get.

Definition at line 410 of file vector_dist_comm.hpp.

◆ recv_sz_get_pos

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::recv_sz_get_pos
private

It store the size of the elements added for each processor that communicate with us (local processor) from the last ghost get

Definition at line 407 of file vector_dist_comm.hpp.

◆ recv_sz_get_prp

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::recv_sz_get_prp
private

Definition at line 408 of file vector_dist_comm.hpp.

◆ recv_sz_map

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::recv_sz_map
private

The same as recv_sz_get but for map.

Definition at line 417 of file vector_dist_comm.hpp.

◆ recv_sz_put

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<size_t> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::recv_sz_put
private

The same as recv_sz_get but for put.

Definition at line 414 of file vector_dist_comm.hpp.

◆ shift_box_ndec

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
long int vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::shift_box_ndec = -1
private

From which decomposition the shift boxes are calculated.

Definition at line 562 of file vector_dist_comm.hpp.

◆ starts

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<aggregate<unsigned int>, Memory, layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::starts
private

temporary buffer for the scan result

Definition at line 430 of file vector_dist_comm.hpp.

◆ v_cl

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
Vcluster<Memory>& vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::v_cl
private

VCluster.

Definition at line 355 of file vector_dist_comm.hpp.

◆ v_pos_tmp

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<Point<dim, St>,Memory,layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::v_pos_tmp
private

Helper buffer for computation (on GPU) of local particles (position)

Definition at line 383 of file vector_dist_comm.hpp.

◆ v_prp_tmp

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
openfpm::vector<prop,Memory,layout_base> vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::v_prp_tmp
private

Helper buffer for computation (on GPU) of local particles (properties)

Definition at line 386 of file vector_dist_comm.hpp.

◆ v_sub_unit_factor

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin>
size_t vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >::v_sub_unit_factor = 64
private

Number of units for each sub-domain.

Definition at line 349 of file vector_dist_comm.hpp.


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