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

structure that store and compute the internal and external local ghost box More...

Detailed Description

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

structure that store and compute the internal and external local ghost box

Template Parameters
dimis the dimensionality of the physical domain we are going to decompose.
Ttype of the space we decompose, Real, Integer, Complex ...
See also
CartDecomposition

Definition at line 47 of file ie_ghost.hpp.

#include <ie_ghost.hpp>

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

Public Member Functions

 ie_ghost ()
 Default constructor.
 
 ie_ghost (const ie_ghost< dim, T, Memory, layout_base > &ie)
 Copy constructor.
 
 ie_ghost (ie_ghost< dim, T, Memory, layout_base > &&ie)
 Copy constructor.
 
ie_ghost< dim, T, Memory, layout_base > & operator= (ie_ghost< dim, T, Memory, layout_base > &&ie)
 Copy operator.
 
ie_ghost< dim, T, Memory, layout_base > & operator= (const ie_ghost< dim, T, Memory, layout_base > &ie)
 Copy operator.
 
template<typename Memory2 , template< typename > class layout_base2>
ie_ghost< dim, T, Memory, layout_base > & operator= (const ie_ghost< dim, T, Memory2, layout_base2 > &ie)
 Copy operator.
 
template<typename Memory2 , template< typename > class layout_base2>
ie_ghost< dim, T, Memory2, layout_base2 > duplicate ()
 duplicate this structure changing layout and Memory
 
const openfpm::vector< Point< dim, T >, Memory, layout_base > & getShiftVectors ()
 
size_t convertShift (const comb< dim > &cmb)
 
size_t getProcessorNIGhost (size_t id) const
 Get the number of Internal ghost boxes for one processor.
 
size_t getProcessorNEGhost (size_t id) const
 Get the number of External ghost boxes for one processor id.
 
const ::Box< dim, T > & getProcessorIGhostBox (size_t id, size_t j) const
 Get the j Internal ghost box for one processor.
 
const ::Box< dim, T > & getProcessorEGhostBox (size_t id, size_t j) const
 Get the j External ghost box.
 
const comb< dim > & getProcessorEGhostPos (size_t id, size_t j) const
 Get the j External ghost box sector.
 
const comb< dim > & getProcessorIGhostPos (size_t id, size_t j) const
 Get the ghost box sector of the external ghost box linked with the j internal ghost box.
 
size_t getProcessorIGhostId (size_t id, size_t j) const
 Get the j Internal ghost box id.
 
size_t getProcessorEGhostId (size_t id, size_t j) const
 Get the j External ghost box id.
 
size_t getProcessorIGhostSSub (size_t id, size_t j) const
 Get the sub-domain send-id at witch belong the internal ghost box.
 
size_t getProcessorIGhostSub (size_t id, size_t j) const
 Get the local sub-domain at witch belong the internal ghost box.
 
size_t getProcessorEGhostSub (size_t id, size_t j) const
 Get the local sub-domain at witch belong the external ghost box.
 
size_t getNIGhostBox () const
 Return the total number of the calculated internal ghost boxes.
 
inline ::Box< dim, T > getIGhostBox (size_t b_id) const
 Given the internal ghost box id, it return the internal ghost box.
 
size_t getIGhostBoxProcessor (size_t b_id) const
 Given the internal ghost box id, it return the near processor at witch belong or the near processor that produced this internal ghost box.
 
size_t getNEGhostBox () const
 Get the number of the calculated external ghost boxes.
 
inline ::Box< dim, T > getEGhostBox (size_t b_id) const
 Given the external ghost box id, it return the external ghost box.
 
size_t getEGhostBoxProcessor (size_t b_id) const
 Given the external ghost box id, it return the near processor at witch belong or the near processor that produced this external ghost box.
 
auto getInternalIDBoxes (Point< dim, T > &p) -> decltype(geo_cell.getCellIterator(geo_cell.getCell(p)))
 
auto labelPoint (Point< dim, T > &p) -> decltype(geo_cell.getCellIterator(geo_cell.getCell(p)))
 if the point fall into the ghost of some near processor it return the processors id's in which it fall
 
template<typename output_type >
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.
 
unsigned int ghost_processorID_N (const Point< dim, T > &p)
 Get the number of processor a particle must sent.
 
template<typename id1 , typename id2 >
const openfpm::vector< std::pair< size_t, size_t > > ghost_processorID_pair (Point< dim, T > &p, const int opt=MULTIPLE)
 Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)
 
template<typename id >
const openfpm::vector< size_t > ghost_processorID (const Point< dim, T > &p, const int opt=MULTIPLE)
 Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)
 
template<typename id1 , typename id2 , typename Mem >
const openfpm::vector< std::pair< size_t, size_t > > & ghost_processorID_pair (const encapc< 1, Point< dim, T >, Mem > &p, const int opt=MULTIPLE)
 Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)
 
template<typename id , typename Mem >
const openfpm::vector< size_t > & ghost_processorID (const encapc< 1, Point< dim, T >, Mem > &p, const int opt=MULTIPLE)
 Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)
 
bool write (std::string output, size_t p_id) const
 write the information about the ghost in vtk format
 
bool is_equal (ie_ghost< dim, T, Memory, layout_base > &ig)
 Check if the ie_ghosts contain the same information.
 
bool is_equal_ng (ie_ghost< dim, T, Memory, layout_base > &ig)
 Check if the ie_loc_ghosts contain the same information with the exception of the ghost part It is anyway required that the ghost come from the same sub-domains decomposition.
 
void reset ()
 Reset the nn_prcs structure.
 
const openfpm::vector< openfpm::vector< Box_proc< dim, T > > > & private_get_box_nn_processor_int () const
 Return the internal data structure box_nn_processor_int.
 
openfpm::vector< openfpm::vector< Box_proc< dim, T > > > & private_get_box_nn_processor_int ()
 Return the internal data structure box_nn_processor_int.
 
openfpm::vector< Box_dom< dim, T > > & private_get_proc_int_box ()
 Return the internal data structure proc_int_box.
 
const openfpm::vector< Box_dom< dim, T > > & private_get_proc_int_box () const
 Return the internal data structure proc_int_box.
 
openfpm::vector< p_box< dim, T > > & private_get_vb_ext ()
 Return the internal data structure vb_ext.
 
const openfpm::vector< p_box< dim, T > > & private_get_vb_ext () const
 Return the internal data structure vb_ext.
 
openfpm::vector< aggregate< unsigned int, unsigned int, unsigned int >, Memory, layout_base > & private_get_vb_int ()
 Return the internal data structure vb_int.
 
const openfpm::vector< aggregate< unsigned int, unsigned int, unsigned int >, Memory, layout_base > & private_get_vb_int () const
 Return the internal data structure vb_int.
 
openfpm::vector< Box< dim, T >, Memory, layout_base > & private_get_vb_int_box ()
 Return the internal data structure vb_int_box.
 
const openfpm::vector< Box< dim, T >, Memory, layout_base > & private_get_vb_int_box () const
 Return the internal data structure vb_int_box.
 
CellList< dim, T, Mem_fast< Memory, int >, shift< dim, T > > & private_geo_cell ()
 Return the internal data structure proc_int_box.
 
const CellList< dim, T, Mem_fast< Memory, int >, shift< dim, T > > & private_geo_cell () const
 Return the internal data structure proc_int_box.
 
openfpm::vector< Point< dim, T >, Memory, layout_base > & private_get_shifts ()
 Return the internal data structure shifts.
 
const openfpm::vector< Point< dim, T >, Memory, layout_base > & private_get_shifts () const
 Return the internal data structure shifts.
 
openfpm::vector< std::pair< size_t, size_t > > & private_get_ids_p ()
 Return the internal data structure ids_p.
 
const openfpm::vector< std::pair< size_t, size_t > > & private_get_ids_p () const
 Return the internal data structure ids_p.
 
openfpm::vector< size_t > & private_get_ids ()
 Return the internal data structure ids_p.
 
const openfpm::vector< size_t > & private_get_ids () const
 Return the internal data structure ids_p.
 
Box< dim, T > & private_get_domain ()
 Return the internal data structure domain.
 
const Box< dim, T > & private_get_domain () const
 Return the internal data structure domain.
 
size_t private_get_bc (int i) const
 
size_t(& private_get_bc ())[dim]
 Return the internal data structure domain.
 
ie_ghost_gpu< dim, T, Memory, layout_base > toKernel ()
 toKernel() Convert this data-structure into a kernel usable data-structure
 
void reset_host_dev_transfer ()
 Notify that the next toKernel() data-structures must be re-offloaded.
 

Protected Member Functions

void generateShiftVectors (const Box< dim, T > &domain, size_t(&bc)[dim])
 Here we generare the shift vectors.
 
void Initialize_geo_cell (const Box< dim, T > &domain, const size_t(&div)[dim])
 Initialize the geo cell list structure.
 
void free_geo_cell ()
 Deallocate structures that identify a point to which internal ghost is located.
 
void create_box_nn_processor_ext (Vcluster<> &v_cl, Ghost< dim, T > &ghost, openfpm::vector< SpaceBox< dim, T >, Memory, layout_base > &sub_domains, const openfpm::vector< openfpm::vector< long unsigned int > > &box_nn_processor, const nn_prcs< dim, T, layout_base, Memory > &nn_p)
 Create the box_nn_processor_int (bx part) structure.
 
void create_box_nn_processor_int (Vcluster<> &v_cl, Ghost< dim, T > &ghost, openfpm::vector< SpaceBox< dim, T >, Memory, layout_base > &sub_domains, const openfpm::vector< openfpm::vector< long unsigned int > > &box_nn_processor, const nn_prcs< dim, T, layout_base, Memory > &nn_p)
 Create the box_nn_processor_int (nbx part) structure, the geo_cell list and proc_int_box.
 
void reorder_geo_cell ()
 in this function we reorder the list in each cells by processor id
 

Private Types

typedef openfpm::vector< Box< dim, T >, Memory, layout_base > proc_boxes
 

Private Member Functions

size_t link_ebx_ibx (const nn_prcs< dim, T, layout_base, Memory > &nn_p, size_t p_id, size_t i)
 Given a local sub-domain i, it give the id of such sub-domain in the sent list for the processor p_id.
 
size_t ebx_ibx_form (size_t k, size_t b, size_t p_id, const comb< dim > &c, size_t N_b, Vcluster<> &v_cl, const bool ei)
 This is the external and internal ghost box link formula.
 

Private Attributes

openfpm::vector< openfpm::vector< Box_proc< dim, T > > > box_nn_processor_int
 
openfpm::vector< Box_dom< dim, T > > proc_int_box
 It store the same information of box_nn_processor_int organized by processor id.
 
openfpm::vector< p_box< dim, T > > vb_ext
 External ghost boxes for this processor.
 
openfpm::vector< aggregate< unsigned int, unsigned int, unsigned int >, Memory, layout_base > vb_int
 Internal ghost boxes for this processor domain.
 
openfpm::vector< Box< dim, T >, Memory, layout_base > vb_int_box
 Internal ghost boxes for this processor domain.
 
CellList< dim, T, Mem_fast< Memory, int >, shift< dim, T > > geo_cell
 Cell-list that store the geometrical information of the internal ghost boxes.
 
openfpm::vector< Point< dim, T >, Memory, layout_base > shifts
 shift vectors
 
openfpm::vector< std::pair< size_t, size_t > > ids_p
 Temporal buffers to return temporal information for ghost_processorID.
 
openfpm::vector< size_t > ids
 Temporal buffers to return temporal information.
 
shift_vect_converter< dim, T, Memory, layout_base > sc_convert
 shift converter
 
bool host_dev_transfer = false
 host to device transfer
 
Box< dim, T > domain
 domain
 
size_t bc [dim]
 boundary conditions
 

Member Typedef Documentation

◆ proc_boxes

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
typedef openfpm::vector<Box<dim,T>,Memory,layout_base> ie_ghost< dim, T, Memory, layout_base >::proc_boxes
private

Definition at line 70 of file ie_ghost.hpp.

Constructor & Destructor Documentation

◆ ie_ghost() [1/3]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
ie_ghost< dim, T, Memory, layout_base >::ie_ghost ( )
inline

Default constructor.

Definition at line 526 of file ie_ghost.hpp.

◆ ie_ghost() [2/3]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
ie_ghost< dim, T, Memory, layout_base >::ie_ghost ( const ie_ghost< dim, T, Memory, layout_base > &  ie)
inline

Copy constructor.

Definition at line 529 of file ie_ghost.hpp.

◆ ie_ghost() [3/3]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
ie_ghost< dim, T, Memory, layout_base >::ie_ghost ( ie_ghost< dim, T, Memory, layout_base > &&  ie)
inline

Copy constructor.

Definition at line 535 of file ie_ghost.hpp.

Member Function Documentation

◆ convertShift()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::convertShift ( const comb< dim > &  cmb)
inline

It return the converted shift vector

In high dimensions the number of shifts vectors explode exponentially, so we are expecting that some of the boundary is non periodic to reduce the numbers of shift vectors

Returns
the shift vectors

Definition at line 702 of file ie_ghost.hpp.

◆ create_box_nn_processor_ext()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::create_box_nn_processor_ext ( Vcluster<> &  v_cl,
Ghost< dim, T > &  ghost,
openfpm::vector< SpaceBox< dim, T >, Memory, layout_base > &  sub_domains,
const openfpm::vector< openfpm::vector< long unsigned int > > &  box_nn_processor,
const nn_prcs< dim, T, layout_base, Memory > &  nn_p 
)
inlineprotected

Create the box_nn_processor_int (bx part) structure.

For each sub-domain of the local processor it store the intersection between the enlarged sub-domain of the calling processor with the adjacent processors sub-domains (External ghost box)

Parameters
v_clVirtual cluster
ghostmargins
sub_domainsvector of local sub-domains
box_nn_processorit will store for each sub-domain the near processors
nn_pcontain the sub-domains of the near processors
Note
Are the G8_0 G9_0 G9_1 G5_0 boxes in calculateGhostBoxes
See also
calculateGhostBoxes

Definition at line 246 of file ie_ghost.hpp.

◆ create_box_nn_processor_int()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::create_box_nn_processor_int ( Vcluster<> &  v_cl,
Ghost< dim, T > &  ghost,
openfpm::vector< SpaceBox< dim, T >, Memory, layout_base > &  sub_domains,
const openfpm::vector< openfpm::vector< long unsigned int > > &  box_nn_processor,
const nn_prcs< dim, T, layout_base, Memory > &  nn_p 
)
inlineprotected

Create the box_nn_processor_int (nbx part) structure, the geo_cell list and proc_int_box.

This structure store for each sub-domain of this processors the boxes that come from the intersection of the near processors sub-domains enlarged by the ghost size (Internal ghost box). These boxes fill a geometrical cell list. The proc_int_box store the same information ordered by near processors

Parameters
v_clVirtual cluster
ghostmargins
sub_domains
box_nn_processorsub-domains of the near processors
nn_pstructure that store the near processor sub-domains
Note
Are the B8_0 B9_0 B9_1 B5_0 boxes in calculateGhostBoxes
See also
calculateGhostBoxes

Definition at line 348 of file ie_ghost.hpp.

◆ duplicate()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
template<typename Memory2 , template< typename > class layout_base2>
ie_ghost< dim, T, Memory2, layout_base2 > ie_ghost< dim, T, Memory, layout_base >::duplicate ( )
inline

duplicate this structure changing layout and Memory

Returns
a structure with Memory type and layout changed

Definition at line 613 of file ie_ghost.hpp.

◆ ebx_ibx_form()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::ebx_ibx_form ( size_t  k,
size_t  b,
size_t  p_id,
const comb< dim > &  c,
size_t  N_b,
Vcluster<> &  v_cl,
const bool  ei 
)
inlineprivate

This is the external and internal ghost box link formula.

This formula is pretty important and require an extensive explanation

+------------+
|            |
|            +---+---------+
| Processor 5|   |         |
|            | E | Proc 6  |
|  Sub 0     | 0 |         |
|            | _ | Sub 9   |
|            | 9 |         |
|            |   |         |
|            +---+---------+
|            |
+------------+

* 

E0_6 is an external ghost box from the prospective of processor 5 and an internal ghost boxes from the prospective of processor 6. So for every external ghost box that processor 5 compute, exist an internal ghost box in processor 6

Here we link this information with an unique id, for processor 5 and 6. Consider Processor 5 sending to processor 6 its sub-domains, including the one in figure with id 0 in the list, and receive from processor 6 the sub-domain in figure as id 9. Consider also we have 16 processor. E0_9 come from the intersection of the expanded sub-domain 0 with 9 (Careful the id is related to the send and receive position in the list) and the intersection is in the sector 0

The id of the external box (for processor 5) is calculated as

((k * N_b + b) * v_cl.getProcessingUnits() + p_id) * openfpm::math::pow(3,dim) + c.lin()

The parameter assume a different meaning if they the formula is used for calculating external/internal ghost boxes id

Parameters
kexpanded sub-domain sent/received to/from p_id ( 0 )
bsub-domain received/sent from/to p_id ( 9 )
p_idprocessor id ( 6 )
csector where the sub-domain b live
N_bnumber of sub-domain received/sent from/to p_id
v_clVcluster
eiindicate if the formula is used to calculate external (true) or internal (false) ids
Returns
id of the external/internal ghost
Note
To an explanation about the sectors see getShiftVectors

Definition at line 179 of file ie_ghost.hpp.

◆ free_geo_cell()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::free_geo_cell ( )
inlineprotected

Deallocate structures that identify a point to which internal ghost is located.

Definition at line 226 of file ie_ghost.hpp.

◆ generateShiftVectors()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::generateShiftVectors ( const Box< dim, T > &  domain,
size_t(&)  bc[dim] 
)
inlineprotected

Here we generare the shift vectors.

Parameters
domainbox that describe the domain

Definition at line 196 of file ie_ghost.hpp.

◆ getEGhostBox()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
inline ::Box< dim, T > ie_ghost< dim, T, Memory, layout_base >::getEGhostBox ( size_t  b_id) const
inline

Given the external ghost box id, it return the external ghost box.

Parameters
b_idexternal ghost box id
Returns
the external ghost box

Definition at line 901 of file ie_ghost.hpp.

◆ getEGhostBoxProcessor()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getEGhostBoxProcessor ( size_t  b_id) const
inline

Given the external ghost box id, it return the near processor at witch belong or the near processor that produced this external ghost box.

Parameters
b_idexternal ghost box id
Returns
the processor id of the external ghost box

Definition at line 914 of file ie_ghost.hpp.

◆ getIGhostBox()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
inline ::Box< dim, T > ie_ghost< dim, T, Memory, layout_base >::getIGhostBox ( size_t  b_id) const
inline

Given the internal ghost box id, it return the internal ghost box.

Parameters
b_idinternal ghost box id
Returns
the internal ghost box

Definition at line 866 of file ie_ghost.hpp.

◆ getIGhostBoxProcessor()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getIGhostBoxProcessor ( size_t  b_id) const
inline

Given the internal ghost box id, it return the near processor at witch belong or the near processor that produced this internal ghost box.

Parameters
b_idinternal ghost box id
Returns
the processor id of the ghost box

Definition at line 879 of file ie_ghost.hpp.

◆ getInternalIDBoxes()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
auto ie_ghost< dim, T, Memory, layout_base >::getInternalIDBoxes ( Point< dim, T > &  p) -> decltype(geo_cell.getCellIterator(geo_cell.getCell(p)))
inline

/brief Given a point it return the set of boxes in which the point fall

Parameters
pPoint to check
Returns
An iterator with the id's of the internal boxes in which the point fall

Definition at line 926 of file ie_ghost.hpp.

◆ getNEGhostBox()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getNEGhostBox ( ) const
inline

Get the number of the calculated external ghost boxes.

Returns
the number of external ghost boxes

Definition at line 889 of file ie_ghost.hpp.

◆ getNIGhostBox()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getNIGhostBox ( ) const
inline

Return the total number of the calculated internal ghost boxes.

Returns
the number of internal ghost boxes

Definition at line 854 of file ie_ghost.hpp.

◆ getProcessorEGhostBox()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const ::Box< dim, T > & ie_ghost< dim, T, Memory, layout_base >::getProcessorEGhostBox ( size_t  id,
size_t  j 
) const
inline

Get the j External ghost box.

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one external ghost box)
Returns
the box

Definition at line 748 of file ie_ghost.hpp.

◆ getProcessorEGhostId()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getProcessorEGhostId ( size_t  id,
size_t  j 
) const
inline

Get the j External ghost box id.

Every external ghost box has a linked internal ghost box, because they overlap and they must contain the same information (Think on a ghost_get). So if exist an internal ghost box with id x, exist also an external ghost box with id x

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one external ghost box)
Returns
the box

Definition at line 804 of file ie_ghost.hpp.

◆ getProcessorEGhostPos()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const comb< dim > & ie_ghost< dim, T, Memory, layout_base >::getProcessorEGhostPos ( size_t  id,
size_t  j 
) const
inline

Get the j External ghost box sector.

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one external ghost box)
Returns
the sector

Definition at line 760 of file ie_ghost.hpp.

◆ getProcessorEGhostSub()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getProcessorEGhostSub ( size_t  id,
size_t  j 
) const
inline

Get the local sub-domain at witch belong the external ghost box.

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one external ghost box)
Returns
sub-domain at which belong the external ghost box

Definition at line 844 of file ie_ghost.hpp.

◆ getProcessorIGhostBox()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const ::Box< dim, T > & ie_ghost< dim, T, Memory, layout_base >::getProcessorIGhostBox ( size_t  id,
size_t  j 
) const
inline

Get the j Internal ghost box for one processor.

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one internal ghost box)
Returns
the box

Definition at line 736 of file ie_ghost.hpp.

◆ getProcessorIGhostId()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getProcessorIGhostId ( size_t  id,
size_t  j 
) const
inline

Get the j Internal ghost box id.

Every internal ghost box has a linked external ghost box, because they overlap and they must contain the same information (Think on a ghost_get). So if exist an internal ghost box with id x, exist also an external ghost box with id x

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one internal ghost box)
Returns
the box id

Definition at line 788 of file ie_ghost.hpp.

◆ getProcessorIGhostPos()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const comb< dim > & ie_ghost< dim, T, Memory, layout_base >::getProcessorIGhostPos ( size_t  id,
size_t  j 
) const
inline

Get the ghost box sector of the external ghost box linked with the j internal ghost box.

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one internal ghost box)
Returns
the sector

Definition at line 772 of file ie_ghost.hpp.

◆ getProcessorIGhostSSub()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getProcessorIGhostSSub ( size_t  id,
size_t  j 
) const
inline

Get the sub-domain send-id at witch belong the internal ghost box.

The internal ghost box is create from the intersection a local sub-domain and an extended sub-domain communicated from another processor. This function return the id of the sub-domain in the receiving list

Parameters
idadjacent processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one internal ghost box)
Returns
sub-domain at which belong the internal ghost box

Definition at line 820 of file ie_ghost.hpp.

◆ getProcessorIGhostSub()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getProcessorIGhostSub ( size_t  id,
size_t  j 
) const
inline

Get the local sub-domain at witch belong the internal ghost box.

Parameters
idadjacent processor list id (the id go from 0 to getNNProcessor())
jbox (each near processor can produce more than one internal ghost box)
Returns
sub-domain at which belong the internal ghost box

Definition at line 832 of file ie_ghost.hpp.

◆ getProcessorNEGhost()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getProcessorNEGhost ( size_t  id) const
inline

Get the number of External ghost boxes for one processor id.

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
Returns
the number of external ghost

Definition at line 724 of file ie_ghost.hpp.

◆ getProcessorNIGhost()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::getProcessorNIGhost ( size_t  id) const
inline

Get the number of Internal ghost boxes for one processor.

Parameters
idnear processor list id (the id go from 0 to getNNProcessor())
Returns
the number of internal ghost

Definition at line 713 of file ie_ghost.hpp.

◆ getShiftVectors()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< Point< dim, T >, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::getShiftVectors ( )
inline

It return the shift vector

Consider a domain with some ghost, at the border of the domain the ghost must be treated in a special way, depending on the periodicity of the boundary

                                                    [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    |
    +---------+------------------------+---------+

if a particle is bound in (1,0) linearized to 5, before communicate this particle (A in figure) must be shifted on -1.0 on x (B in figure)

This function return the set of shift vectors that determine such shift, for example in the example above the shift at position 5 will be (0,-1.0)

Returns
the shift vectors

Definition at line 683 of file ie_ghost.hpp.

◆ ghost_processor_ID()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
template<typename output_type >
void ie_ghost< dim, T, Memory, layout_base >::ghost_processor_ID ( const Point< dim, T > &  p,
output_type &  output,
unsigned int  base,
unsigned int  pi 
)
inline

Get the number of processor a particle must sent.

Parameters
pposition of the particle

Definition at line 948 of file ie_ghost.hpp.

◆ ghost_processorID() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
template<typename id , typename Mem >
const openfpm::vector< size_t > & ie_ghost< dim, T, Memory, layout_base >::ghost_processorID ( const encapc< 1, Point< dim, T >, Mem > &  p,
const int  opt = MULTIPLE 
)
inline

Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)

Template Parameters
idtype of if to get box_id processor_id lc_processor_id
Parameters
pParticle position
optit indicate if the entry in the vector must be unique or not
Returns
the processor ids

Definition at line 1118 of file ie_ghost.hpp.

◆ ghost_processorID() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
template<typename id >
const openfpm::vector< size_t > ie_ghost< dim, T, Memory, layout_base >::ghost_processorID ( const Point< dim, T > &  p,
const int  opt = MULTIPLE 
)
inline

Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)

if the particle come from an internal ghost from the periodicity of the domain, position must be shifted this function return the id of the shift vector

See also
getShiftVector
Template Parameters
idtype of id to get box_id processor_id lc_processor_id shift_id
Parameters
pParticle position
optintersection boxes of the same processor can overlap, so in general the function can produce more entry with the same processor, the UNIQUE option eliminate double entries (UNIQUE) is for particle data (MULTIPLE) is for grid data [default MULTIPLE]
Returns
the processor ids

Definition at line 1031 of file ie_ghost.hpp.

◆ ghost_processorID_N()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
unsigned int ie_ghost< dim, T, Memory, layout_base >::ghost_processorID_N ( const Point< dim, T > &  p)
inline

Get the number of processor a particle must sent.

Parameters
pposition of the particle

Definition at line 960 of file ie_ghost.hpp.

◆ ghost_processorID_pair() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
template<typename id1 , typename id2 , typename Mem >
const openfpm::vector< std::pair< size_t, size_t > > & ie_ghost< dim, T, Memory, layout_base >::ghost_processorID_pair ( const encapc< 1, Point< dim, T >, Mem > &  p,
const int  opt = MULTIPLE 
)
inline

Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)

Template Parameters
id1first index type to get box_id processor_id lc_processor_id
id2second index type to get box_id processor_id lc_processor_id
Parameters
pParticle position
optindicate if the entries in the vector must be unique
Returns
a vector of pair containing the requested information

Definition at line 1075 of file ie_ghost.hpp.

◆ ghost_processorID_pair() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
template<typename id1 , typename id2 >
const openfpm::vector< std::pair< size_t, size_t > > ie_ghost< dim, T, Memory, layout_base >::ghost_processorID_pair ( Point< dim, T > &  p,
const int  opt = MULTIPLE 
)
inline

Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)

if the particle come from an internal ghost from the periodicity of the domain, position must be shifted this function return the id of the shift vector

See also
getShiftVector
Template Parameters
idtype of id to get box_id processor_id lc_processor_id shift_id
Parameters
pParticle position
optintersection boxes of the same processor can overlap, so in general the function can produce more entry with the same processor, the UNIQUE option eliminate double entries (UNIQUE) is for particle data (MULTIPLE) is for grid data [default MULTIPLE]
Returns
return the processor ids (not the rank, the id in the near processor list)

Definition at line 982 of file ie_ghost.hpp.

◆ Initialize_geo_cell()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::Initialize_geo_cell ( const Box< dim, T > &  domain,
const size_t(&)  div[dim] 
)
inlineprotected

Initialize the geo cell list structure.

The geo cell list structure exist to speed up the labelling the points if they fall on some internal ghost

Parameters
domainwhere the cell list is defined
divnumber of division of the cell list

Definition at line 217 of file ie_ghost.hpp.

◆ is_equal()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
bool ie_ghost< dim, T, Memory, layout_base >::is_equal ( ie_ghost< dim, T, Memory, layout_base > &  ig)
inline

Check if the ie_ghosts contain the same information.

Parameters
igElement to check
Returns
true if they are equal

Definition at line 1196 of file ie_ghost.hpp.

◆ is_equal_ng()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
bool ie_ghost< dim, T, Memory, layout_base >::is_equal_ng ( ie_ghost< dim, T, Memory, layout_base > &  ig)
inline

Check if the ie_loc_ghosts contain the same information with the exception of the ghost part It is anyway required that the ghost come from the same sub-domains decomposition.

Parameters
igElement to check
Returns
true if they are equal

Definition at line 1270 of file ie_ghost.hpp.

◆ labelPoint()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
auto ie_ghost< dim, T, Memory, layout_base >::labelPoint ( Point< dim, T > &  p) -> decltype(geo_cell.getCellIterator(geo_cell.getCell(p)))
inline

if the point fall into the ghost of some near processor it return the processors id's in which it fall

Parameters
pPoint
Returns
iterator of the processors id's

Definition at line 938 of file ie_ghost.hpp.

◆ link_ebx_ibx()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::link_ebx_ibx ( const nn_prcs< dim, T, layout_base, Memory > &  nn_p,
size_t  p_id,
size_t  i 
)
inlineprivate

Given a local sub-domain i, it give the id of such sub-domain in the sent list for the processor p_id.

Processor 5 send its sub-domains to processor 6 and will receive the list from 6

This function search if a local sub-domain has been sent to a processor p_id, if found it return at witch position is in the list of the sent sub-domains

Parameters
nn_pstructure that store the processor graph as near processor
p_idnear processor rank
isub-domain
Returns
Given a local sub-domain i, it give the id of such sub-domain in the sent list for the processor p_id

Definition at line 109 of file ie_ghost.hpp.

◆ operator=() [1/3]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
ie_ghost< dim, T, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::operator= ( const ie_ghost< dim, T, Memory, layout_base > &  ie)
inline

Copy operator.

Definition at line 563 of file ie_ghost.hpp.

◆ operator=() [2/3]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
template<typename Memory2 , template< typename > class layout_base2>
ie_ghost< dim, T, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::operator= ( const ie_ghost< dim, T, Memory2, layout_base2 > &  ie)
inline

Copy operator.

Definition at line 586 of file ie_ghost.hpp.

◆ operator=() [3/3]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
ie_ghost< dim, T, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::operator= ( ie_ghost< dim, T, Memory, layout_base > &&  ie)
inline

Copy operator.

Definition at line 541 of file ie_ghost.hpp.

◆ private_geo_cell() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
CellList< dim, T, Mem_fast< Memory, int >, shift< dim, T > > & ie_ghost< dim, T, Memory, layout_base >::private_geo_cell ( )
inline

Return the internal data structure proc_int_box.

Returns
proc_int_box

Definition at line 1401 of file ie_ghost.hpp.

◆ private_geo_cell() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const CellList< dim, T, Mem_fast< Memory, int >, shift< dim, T > > & ie_ghost< dim, T, Memory, layout_base >::private_geo_cell ( ) const
inline

Return the internal data structure proc_int_box.

Returns
proc_int_box

Definition at line 1412 of file ie_ghost.hpp.

◆ private_get_bc() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t(& ie_ghost< dim, T, Memory, layout_base >::private_get_bc ( ) )[dim]
inline

Return the internal data structure domain.

Returns
domain

Definition at line 1515 of file ie_ghost.hpp.

◆ private_get_bc() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::private_get_bc ( int  i) const
inline

Definition at line 1505 of file ie_ghost.hpp.

◆ private_get_box_nn_processor_int() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< openfpm::vector< Box_proc< dim, T > > > & ie_ghost< dim, T, Memory, layout_base >::private_get_box_nn_processor_int ( )
inline

Return the internal data structure box_nn_processor_int.

Returns
box_nn_processor_int

Definition at line 1306 of file ie_ghost.hpp.

◆ private_get_box_nn_processor_int() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< openfpm::vector< Box_proc< dim, T > > > & ie_ghost< dim, T, Memory, layout_base >::private_get_box_nn_processor_int ( ) const
inline

Return the internal data structure box_nn_processor_int.

Returns
box_nn_processor_int

Definition at line 1296 of file ie_ghost.hpp.

◆ private_get_domain() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
Box< dim, T > & ie_ghost< dim, T, Memory, layout_base >::private_get_domain ( )
inline

Return the internal data structure domain.

Returns
domain

Definition at line 1489 of file ie_ghost.hpp.

◆ private_get_domain() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const Box< dim, T > & ie_ghost< dim, T, Memory, layout_base >::private_get_domain ( ) const
inline

Return the internal data structure domain.

Returns
domain

Definition at line 1500 of file ie_ghost.hpp.

◆ private_get_ids() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< size_t > & ie_ghost< dim, T, Memory, layout_base >::private_get_ids ( )
inline

Return the internal data structure ids_p.

Returns
ids_p

Definition at line 1467 of file ie_ghost.hpp.

◆ private_get_ids() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< size_t > & ie_ghost< dim, T, Memory, layout_base >::private_get_ids ( ) const
inline

Return the internal data structure ids_p.

Returns
ids_p

Definition at line 1478 of file ie_ghost.hpp.

◆ private_get_ids_p() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< std::pair< size_t, size_t > > & ie_ghost< dim, T, Memory, layout_base >::private_get_ids_p ( )
inline

Return the internal data structure ids_p.

Returns
ids_p

Definition at line 1445 of file ie_ghost.hpp.

◆ private_get_ids_p() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< std::pair< size_t, size_t > > & ie_ghost< dim, T, Memory, layout_base >::private_get_ids_p ( ) const
inline

Return the internal data structure ids_p.

Returns
ids_p

Definition at line 1456 of file ie_ghost.hpp.

◆ private_get_proc_int_box() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< Box_dom< dim, T > > & ie_ghost< dim, T, Memory, layout_base >::private_get_proc_int_box ( )
inline

Return the internal data structure proc_int_box.

Returns
proc_int_box

Definition at line 1316 of file ie_ghost.hpp.

◆ private_get_proc_int_box() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< Box_dom< dim, T > > & ie_ghost< dim, T, Memory, layout_base >::private_get_proc_int_box ( ) const
inline

Return the internal data structure proc_int_box.

Returns
proc_int_box

Definition at line 1326 of file ie_ghost.hpp.

◆ private_get_shifts() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< Point< dim, T >, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::private_get_shifts ( )
inline

Return the internal data structure shifts.

Returns
shifts

Definition at line 1423 of file ie_ghost.hpp.

◆ private_get_shifts() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< Point< dim, T >, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::private_get_shifts ( ) const
inline

Return the internal data structure shifts.

Returns
shifts

Definition at line 1434 of file ie_ghost.hpp.

◆ private_get_vb_ext() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< p_box< dim, T > > & ie_ghost< dim, T, Memory, layout_base >::private_get_vb_ext ( )
inline

Return the internal data structure vb_ext.

Returns
vb_ext

Definition at line 1336 of file ie_ghost.hpp.

◆ private_get_vb_ext() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< p_box< dim, T > > & ie_ghost< dim, T, Memory, layout_base >::private_get_vb_ext ( ) const
inline

Return the internal data structure vb_ext.

Returns
vb_ext

Definition at line 1346 of file ie_ghost.hpp.

◆ private_get_vb_int() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< aggregate< unsigned int, unsigned int, unsigned int >, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::private_get_vb_int ( )
inline

Return the internal data structure vb_int.

Returns
vb_int

Definition at line 1357 of file ie_ghost.hpp.

◆ private_get_vb_int() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< aggregate< unsigned int, unsigned int, unsigned int >, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::private_get_vb_int ( ) const
inline

Return the internal data structure vb_int.

Returns
vb_int

Definition at line 1368 of file ie_ghost.hpp.

◆ private_get_vb_int_box() [1/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< Box< dim, T >, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::private_get_vb_int_box ( )
inline

Return the internal data structure vb_int_box.

Returns
vb_int_box

Definition at line 1379 of file ie_ghost.hpp.

◆ private_get_vb_int_box() [2/2]

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
const openfpm::vector< Box< dim, T >, Memory, layout_base > & ie_ghost< dim, T, Memory, layout_base >::private_get_vb_int_box ( ) const
inline

Return the internal data structure vb_int_box.

Returns
vb_int_box

Definition at line 1390 of file ie_ghost.hpp.

◆ reorder_geo_cell()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::reorder_geo_cell ( )
inlineprotected

in this function we reorder the list in each cells by processor id

suppose in one cell we have 7 boxes each box contain the processor id

1,5,9,5,1,1,6

after reorder we have the following sequence

1,1,1,5,5,6,9

This simplify the procedure to get a unique list of processor ids indicating on which processor a particle must be replicated as ghost

Definition at line 486 of file ie_ghost.hpp.

◆ reset()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::reset ( )
inline

Reset the nn_prcs structure.

Definition at line 1278 of file ie_ghost.hpp.

◆ reset_host_dev_transfer()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
void ie_ghost< dim, T, Memory, layout_base >::reset_host_dev_transfer ( )
inline

Notify that the next toKernel() data-structures must be re-offloaded.

Definition at line 1548 of file ie_ghost.hpp.

◆ toKernel()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
ie_ghost_gpu< dim, T, Memory, layout_base > ie_ghost< dim, T, Memory, layout_base >::toKernel ( )
inline

toKernel() Convert this data-structure into a kernel usable data-structure

Returns

Definition at line 1525 of file ie_ghost.hpp.

◆ write()

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
bool ie_ghost< dim, T, Memory, layout_base >::write ( std::string  output,
size_t  p_id 
) const
inline

write the information about the ghost in vtk format

1) internal_ghost_X.vtk Internal ghost boxes for the local processor (X) 2) external_ghost_X.vtk External ghost boxes for the local processor (X)

Parameters
outputdirectory
p_idprocessor rank
Returns
true if the write succeed

internal_ghost_X.vtk Internal ghost boxes for the local processor (X)

external_ghost_X.vtk External ghost boxes for the local processor (X)

Definition at line 1162 of file ie_ghost.hpp.

Field Documentation

◆ bc

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
size_t ie_ghost< dim, T, Memory, layout_base >::bc[dim]
private

boundary conditions

Definition at line 91 of file ie_ghost.hpp.

◆ box_nn_processor_int

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< openfpm::vector< Box_proc<dim,T> > > ie_ghost< dim, T, Memory, layout_base >::box_nn_processor_int
private

for each sub-domain (first vector), contain the list (nested vector) of the neighborhood processors and for each processor contain the boxes calculated from the intersection of the sub-domains + ghost with the near-by processor sub-domain () and the other way around

See also
calculateGhostBoxes

Definition at line 53 of file ie_ghost.hpp.

◆ domain

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
Box<dim,T> ie_ghost< dim, T, Memory, layout_base >::domain
private

domain

Definition at line 88 of file ie_ghost.hpp.

◆ geo_cell

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
CellList<dim,T,Mem_fast<Memory,int>,shift<dim,T> > ie_ghost< dim, T, Memory, layout_base >::geo_cell
private

Cell-list that store the geometrical information of the internal ghost boxes.

Definition at line 68 of file ie_ghost.hpp.

◆ host_dev_transfer

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
bool ie_ghost< dim, T, Memory, layout_base >::host_dev_transfer = false
private

host to device transfer

Definition at line 85 of file ie_ghost.hpp.

◆ ids

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector<size_t> ie_ghost< dim, T, Memory, layout_base >::ids
private

Temporal buffers to return temporal information.

Definition at line 79 of file ie_ghost.hpp.

◆ ids_p

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector<std::pair<size_t,size_t> > ie_ghost< dim, T, Memory, layout_base >::ids_p
private

Temporal buffers to return temporal information for ghost_processorID.

Definition at line 76 of file ie_ghost.hpp.

◆ proc_int_box

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector< Box_dom<dim,T> > ie_ghost< dim, T, Memory, layout_base >::proc_int_box
private

It store the same information of box_nn_processor_int organized by processor id.

Definition at line 56 of file ie_ghost.hpp.

◆ sc_convert

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
shift_vect_converter<dim,T,Memory,layout_base> ie_ghost< dim, T, Memory, layout_base >::sc_convert
private

shift converter

Definition at line 82 of file ie_ghost.hpp.

◆ shifts

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector<Point<dim,T>,Memory,layout_base> ie_ghost< dim, T, Memory, layout_base >::shifts
private

shift vectors

Definition at line 73 of file ie_ghost.hpp.

◆ vb_ext

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector<p_box<dim,T> > ie_ghost< dim, T, Memory, layout_base >::vb_ext
private

External ghost boxes for this processor.

Definition at line 59 of file ie_ghost.hpp.

◆ vb_int

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector<aggregate<unsigned int,unsigned int,unsigned int>,Memory,layout_base> ie_ghost< dim, T, Memory, layout_base >::vb_int
private

Internal ghost boxes for this processor domain.

Definition at line 62 of file ie_ghost.hpp.

◆ vb_int_box

template<unsigned int dim, typename T , typename Memory , template< typename > class layout_base>
openfpm::vector<Box<dim,T>,Memory,layout_base> ie_ghost< dim, T, Memory, layout_base >::vb_int_box
private

Internal ghost boxes for this processor domain.

Definition at line 65 of file ie_ghost.hpp.


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