This class is an helper for the communication of grid_dist_id. More...
This class is an helper for the communication of grid_dist_id.
| dim | Dimensionality of the grid | 
| St | Type of space where the grid is living | 
| T | object the grid is storing | 
| Decomposition | Class that decompose the grid for example CartDecomposition | 
| Memory | Is the allocator | 
| device_grid | of base structure is going to store the data | 
Definition at line 177 of file grid_dist_id_comm.hpp.
#include <grid_dist_id_comm.hpp>
 Inheritance diagram for grid_dist_id_comm< dim, St, T, Decomposition, Memory, device_grid >:Public Member Functions | |
| void | grids_reconstruct (openfpm::vector< openfpm::vector< aggregate< device_grid, SpaceBox< dim, long int >>>> &m_oGrid_recv, openfpm::vector< device_grid > &loc_grid, openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, CellDecomposer_sm< dim, St, shift< dim, St >> &cd_sm) | 
| Reconstruct the local grids.  More... | |
| void | labelIntersectionGridsProcessor (Decomposition &dec, CellDecomposer_sm< dim, St, shift< dim, St >> &cd_sm, openfpm::vector< device_grid > &loc_grid_old, openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext_old, openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext_global, openfpm::vector< openfpm::vector< aggregate< device_grid, SpaceBox< dim, long int >>>> &lbl_b, openfpm::vector< size_t > &prc_sz) | 
| Label intersection grids for mappings.  More... | |
| void | map_ (Decomposition &dec, CellDecomposer_sm< dim, St, shift< dim, St >> &cd_sm, openfpm::vector< device_grid > &loc_grid, openfpm::vector< device_grid > &loc_grid_old, openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext_old, openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext_global) | 
| Moves all the grids that does not belong to the local processor to the respective processor.  More... | |
| template<int... prp> | |
| void | ghost_get_ (const openfpm::vector< ip_box_grid< dim >> &ig_box, const openfpm::vector< ep_box_grid< dim >> &eg_box, const openfpm::vector< i_lbox_grid< dim >> &loc_ig_box, const openfpm::vector< e_lbox_grid< dim >> &loc_eg_box, const openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, openfpm::vector< device_grid > &loc_grid, std::unordered_map< size_t, size_t > &g_id_to_external_ghost_box) | 
| It fill the ghost part of the grids.  More... | |
| template<template< typename, typename > class op, int... prp> | |
| void | ghost_put_ (const openfpm::vector< ip_box_grid< dim >> &ig_box, const openfpm::vector< ep_box_grid< dim >> &eg_box, const openfpm::vector< i_lbox_grid< dim >> &loc_ig_box, const openfpm::vector< e_lbox_grid< dim >> &loc_eg_box, const openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, openfpm::vector< device_grid > &loc_grid, openfpm::vector< std::unordered_map< size_t, size_t >> &g_id_to_internal_ghost_box) | 
| It merge the information in the ghost with the real information.  More... | |
| grid_dist_id_comm () | |
| Constructor.  More... | |
Private Member Functions | |
| template<int... prp> | |
| void | ghost_get_local (const openfpm::vector< i_lbox_grid< dim >> &loc_ig_box, const openfpm::vector< e_lbox_grid< dim >> &loc_eg_box, const openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, openfpm::vector< device_grid > &loc_grid, std::unordered_map< size_t, size_t > &g_id_to_external_ghost_box) | 
| Sync the local ghost part.  More... | |
| template<template< typename, typename > class op, int... prp> | |
| void | ghost_put_local (const openfpm::vector< i_lbox_grid< dim >> &loc_ig_box, const openfpm::vector< e_lbox_grid< dim >> &loc_eg_box, const openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, openfpm::vector< device_grid > &loc_grid, openfpm::vector< std::unordered_map< size_t, size_t >> &g_id_to_external_ghost_box) | 
| Sync the local ghost part.  More... | |
| template<int... prp> | |
| void | send_and_receive_ghost (ExtPreAlloc< Memory > **prAlloc_prp, ExtPreAlloc< Memory > **prRecv_prp, const openfpm::vector< ip_box_grid< dim >> &ig_box, const openfpm::vector< ep_box_grid< dim >> &eg_box, const openfpm::vector< GBoxes< device_grid::dims >> &gdb_ext, openfpm::vector< device_grid > &loc_grid, size_t &req) | 
| this function create send and receive asynchronously to receive ghosts part  More... | |
| template<int... prp> | |
| void | process_received (ExtPreAlloc< Memory > *prRecv_prp, const openfpm::vector< ep_box_grid< dim >> &eg_box, openfpm::vector< device_grid > &loc_grid, std::unordered_map< size_t, size_t > &g_id_to_external_ghost_box) | 
| Process the received data.  More... | |
Private Attributes | |
| Vcluster & | v_cl | 
| VCluster.  | |
| openfpm::vector< size_t > | p_map_req | 
| Maps the processor id with the communication request into map procedure.  | |
| openfpm::vector< size_t > | prc_recv_map | 
| Stores the list of processors that communicate with us (local processor)  | |
| openfpm::vector< size_t > | recv_sz_map | 
| Stores the size of the elements added for each processor that communicate with us (local processor)  | |
| openfpm::vector < openfpm::vector< aggregate < device_grid, SpaceBox< dim, long int > > > >  | m_oGrid | 
| Memory | g_send_prp_mem | 
| Memory for the ghost sending buffer.  | |
| Memory | g_recv_prp_mem | 
| Memory for the ghost sending buffer.  | |
      
  | 
  inline | 
Constructor.
Definition at line 1036 of file grid_dist_id_comm.hpp.
      
  | 
  inline | 
It fill the ghost part of the grids.
| ig_box | internal ghost box | 
| eg_box | external ghost box | 
| loc_ig_box | local internal ghost box | 
| loc_eg_box | local external ghost box | 
| gdb_ext | local grids information | 
| loc_grid | set of local grid | 
| g_id_to_external_ghost_box | index to external ghost box | 
Definition at line 817 of file grid_dist_id_comm.hpp.
      
  | 
  inlineprivate | 
Sync the local ghost part.
| prp... | properties to sync | 
| loc_ig_box | local internel ghost boxes | 
| loc_eg_box | local external ghost boxes | 
| gdb_ext | information about the local grids | 
| loc_grid | local grids | 
| g_id_to_external_ghost_box | from global index to external ghost box | 
For all the sub-domains
For all the internal ghost boxes of each sub-domain
Definition at line 215 of file grid_dist_id_comm.hpp.
      
  | 
  inline | 
It merge the information in the ghost with the real information.
| op | merge operation | 
| ig_box | internal ghost box | 
| eg_box | external ghost box | 
| loc_ig_box | local internal ghost box | 
| loc_eg_box | local external ghost box | 
| gdb_ext | local grids information | 
| loc_grid | set of local grid | 
| g_id_to_internal_ghost_box | index to internal ghost box | 
Receive the information from each processors
Resize the receiving buffer
Definition at line 860 of file grid_dist_id_comm.hpp.
      
  | 
  inlineprivate | 
Sync the local ghost part.
| prp... | properties to sync | 
| loc_ig_box | local internel ghost boxes | 
| loc_eg_box | local external ghost boxes | 
| gdb_ext | information about the local grids | 
| loc_grid | local grids | 
| g_id_to_external_ghost_box | global-if to external ghost box | 
For all the sub-domains
For all the external ghost boxes of each sub-domain
Definition at line 298 of file grid_dist_id_comm.hpp.
      
  | 
  inline | 
Reconstruct the local grids.
| m_oGrid_recv | Vector of labeled grids to combine into a local grid | 
| loc_grid | local grids | 
| gdb_ext | information of the local grids | 
| cd_sm | Cell-decomposer | 
Definition at line 552 of file grid_dist_id_comm.hpp.
      
  | 
  inline | 
Label intersection grids for mappings.
| dec | Decomposition | 
| loc_grid_old | old local grids | 
| cd_sm | Cell-decomposer | 
| gdb_ext | information of the local grids | 
| gdb_ext_old | information of the old local grids | 
| gdb_ext_global | information of the grids globaly | 
| lbl_b | label for each grid | 
| prc_sz | For each processor the number of grids to send to | 
Definition at line 631 of file grid_dist_id_comm.hpp.
      
  | 
  inline | 
Moves all the grids that does not belong to the local processor to the respective processor.
This function in general is called if the decomposition change
| dec | Decomposition | 
| cd_sm | cell-decomposer | 
| loc_grid | set of local grids | 
| loc_grid_old | set of old local grids | 
| gdb_ext | information of the local grids | 
| gdb_ext_old | information of the old local grids | 
| gdb_ext_global | it contain the decomposition at global level | 
Definition at line 756 of file grid_dist_id_comm.hpp.
      
  | 
  inlineprivate | 
Process the received data.
| eg_box | external ghost box | 
Definition at line 493 of file grid_dist_id_comm.hpp.
      
  | 
  inlineprivate | 
this function create send and receive asynchronously to receive ghosts part
| ig_box | internal ghost box | 
| eg_box | external ghost box | 
Receive the information from each processors
Resize the receiving buffer
Definition at line 368 of file grid_dist_id_comm.hpp.
      
  | 
  private | 
For each near processor, outgoing intersection grid
Definition at line 195 of file grid_dist_id_comm.hpp.