structure that store and compute the internal and external local ghost box More...
structure that store and compute the internal and external local ghost box
dim | is the dimensionality of the physical domain we are going to decompose. |
T | type of the space we decompose, Real, Integer, Complex ... |
Definition at line 47 of file ie_ghost.hpp.
#include <ie_ghost.hpp>
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 | |
|
private |
Definition at line 70 of file ie_ghost.hpp.
|
inline |
Default constructor.
Definition at line 526 of file ie_ghost.hpp.
|
inline |
Copy constructor.
Definition at line 529 of file ie_ghost.hpp.
|
inline |
Copy constructor.
Definition at line 535 of file ie_ghost.hpp.
|
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
Definition at line 702 of file ie_ghost.hpp.
|
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)
v_cl | Virtual cluster |
ghost | margins |
sub_domains | vector of local sub-domains |
box_nn_processor | it will store for each sub-domain the near processors |
nn_p | contain the sub-domains of the near processors |
Definition at line 246 of file ie_ghost.hpp.
|
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
v_cl | Virtual cluster |
ghost | margins |
sub_domains | |
box_nn_processor | sub-domains of the near processors |
nn_p | structure that store the near processor sub-domains |
Definition at line 348 of file ie_ghost.hpp.
|
inline |
duplicate this structure changing layout and Memory
Definition at line 613 of file ie_ghost.hpp.
|
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
k | expanded sub-domain sent/received to/from p_id ( 0 ) |
b | sub-domain received/sent from/to p_id ( 9 ) |
p_id | processor id ( 6 ) |
c | sector where the sub-domain b live |
N_b | number of sub-domain received/sent from/to p_id |
v_cl | Vcluster |
ei | indicate if the formula is used to calculate external (true) or internal (false) ids |
Definition at line 179 of file ie_ghost.hpp.
|
inlineprotected |
Deallocate structures that identify a point to which internal ghost is located.
Definition at line 226 of file ie_ghost.hpp.
|
inlineprotected |
Here we generare the shift vectors.
domain | box that describe the domain |
Definition at line 196 of file ie_ghost.hpp.
|
inline |
Given the external ghost box id, it return the external ghost box.
b_id | external ghost box id |
Definition at line 901 of file ie_ghost.hpp.
|
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.
b_id | external ghost box id |
Definition at line 914 of file ie_ghost.hpp.
|
inline |
Given the internal ghost box id, it return the internal ghost box.
b_id | internal ghost box id |
Definition at line 866 of file ie_ghost.hpp.
|
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.
b_id | internal ghost box id |
Definition at line 879 of file ie_ghost.hpp.
|
inline |
/brief Given a point it return the set of boxes in which the point fall
p | Point to check |
Definition at line 926 of file ie_ghost.hpp.
|
inline |
Get the number of the calculated external ghost boxes.
Definition at line 889 of file ie_ghost.hpp.
|
inline |
Return the total number of the calculated internal ghost boxes.
Definition at line 854 of file ie_ghost.hpp.
|
inline |
Get the j External ghost box.
id | near processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one external ghost box) |
Definition at line 748 of file ie_ghost.hpp.
|
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
id | near processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one external ghost box) |
Definition at line 804 of file ie_ghost.hpp.
|
inline |
Get the j External ghost box sector.
id | near processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one external ghost box) |
Definition at line 760 of file ie_ghost.hpp.
|
inline |
Get the local sub-domain at witch belong the external ghost box.
id | near processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one external ghost box) |
Definition at line 844 of file ie_ghost.hpp.
|
inline |
Get the j Internal ghost box for one processor.
id | near processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one internal ghost box) |
Definition at line 736 of file ie_ghost.hpp.
|
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
id | near processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one internal ghost box) |
Definition at line 788 of file ie_ghost.hpp.
|
inline |
Get the ghost box sector of the external ghost box linked with the j internal ghost box.
id | near processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one internal ghost box) |
Definition at line 772 of file ie_ghost.hpp.
|
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
id | adjacent processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one internal ghost box) |
Definition at line 820 of file ie_ghost.hpp.
|
inline |
Get the local sub-domain at witch belong the internal ghost box.
id | adjacent processor list id (the id go from 0 to getNNProcessor()) |
j | box (each near processor can produce more than one internal ghost box) |
Definition at line 832 of file ie_ghost.hpp.
|
inline |
Get the number of External ghost boxes for one processor id.
id | near processor list id (the id go from 0 to getNNProcessor()) |
Definition at line 724 of file ie_ghost.hpp.
|
inline |
Get the number of Internal ghost boxes for one processor.
id | near processor list id (the id go from 0 to getNNProcessor()) |
Definition at line 713 of file ie_ghost.hpp.
|
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)
Definition at line 683 of file ie_ghost.hpp.
|
inline |
Get the number of processor a particle must sent.
p | position of the particle |
Definition at line 948 of file ie_ghost.hpp.
|
inline |
Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)
id | type of if to get box_id processor_id lc_processor_id |
p | Particle position |
opt | it indicate if the entry in the vector must be unique or not |
Definition at line 1118 of file ie_ghost.hpp.
|
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
id | type of id to get box_id processor_id lc_processor_id shift_id |
p | Particle position |
opt | intersection 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] |
Definition at line 1031 of file ie_ghost.hpp.
|
inline |
Get the number of processor a particle must sent.
p | position of the particle |
Definition at line 960 of file ie_ghost.hpp.
|
inline |
Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost)
id1 | first index type to get box_id processor_id lc_processor_id |
id2 | second index type to get box_id processor_id lc_processor_id |
p | Particle position |
opt | indicate if the entries in the vector must be unique |
Definition at line 1075 of file ie_ghost.hpp.
|
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
id | type of id to get box_id processor_id lc_processor_id shift_id |
p | Particle position |
opt | intersection 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] |
Definition at line 982 of file ie_ghost.hpp.
|
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
domain | where the cell list is defined |
div | number of division of the cell list |
Definition at line 217 of file ie_ghost.hpp.
|
inline |
Check if the ie_ghosts contain the same information.
ig | Element to check |
Definition at line 1196 of file ie_ghost.hpp.
|
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.
ig | Element to check |
Definition at line 1270 of file ie_ghost.hpp.
|
inline |
if the point fall into the ghost of some near processor it return the processors id's in which it fall
p | Point |
Definition at line 938 of file ie_ghost.hpp.
|
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
nn_p | structure that store the processor graph as near processor |
p_id | near processor rank |
i | sub-domain |
Definition at line 109 of file ie_ghost.hpp.
|
inline |
Copy operator.
Definition at line 563 of file ie_ghost.hpp.
|
inline |
Copy operator.
Definition at line 586 of file ie_ghost.hpp.
|
inline |
Copy operator.
Definition at line 541 of file ie_ghost.hpp.
|
inline |
Return the internal data structure proc_int_box.
Definition at line 1401 of file ie_ghost.hpp.
|
inline |
Return the internal data structure proc_int_box.
Definition at line 1412 of file ie_ghost.hpp.
|
inline |
Return the internal data structure domain.
Definition at line 1515 of file ie_ghost.hpp.
|
inline |
Definition at line 1505 of file ie_ghost.hpp.
|
inline |
Return the internal data structure box_nn_processor_int.
Definition at line 1306 of file ie_ghost.hpp.
|
inline |
Return the internal data structure box_nn_processor_int.
Definition at line 1296 of file ie_ghost.hpp.
|
inline |
Return the internal data structure domain.
Definition at line 1489 of file ie_ghost.hpp.
|
inline |
Return the internal data structure domain.
Definition at line 1500 of file ie_ghost.hpp.
|
inline |
Return the internal data structure ids_p.
Definition at line 1467 of file ie_ghost.hpp.
|
inline |
Return the internal data structure ids_p.
Definition at line 1478 of file ie_ghost.hpp.
|
inline |
Return the internal data structure ids_p.
Definition at line 1445 of file ie_ghost.hpp.
|
inline |
Return the internal data structure ids_p.
Definition at line 1456 of file ie_ghost.hpp.
|
inline |
Return the internal data structure proc_int_box.
Definition at line 1316 of file ie_ghost.hpp.
|
inline |
Return the internal data structure proc_int_box.
Definition at line 1326 of file ie_ghost.hpp.
|
inline |
Return the internal data structure shifts.
Definition at line 1423 of file ie_ghost.hpp.
|
inline |
Return the internal data structure shifts.
Definition at line 1434 of file ie_ghost.hpp.
|
inline |
Return the internal data structure vb_ext.
Definition at line 1336 of file ie_ghost.hpp.
|
inline |
Return the internal data structure vb_ext.
Definition at line 1346 of file ie_ghost.hpp.
|
inline |
Return the internal data structure vb_int.
Definition at line 1357 of file ie_ghost.hpp.
|
inline |
Return the internal data structure vb_int.
Definition at line 1368 of file ie_ghost.hpp.
|
inline |
Return the internal data structure vb_int_box.
Definition at line 1379 of file ie_ghost.hpp.
|
inline |
Return the internal data structure vb_int_box.
Definition at line 1390 of file ie_ghost.hpp.
|
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.
|
inline |
Reset the nn_prcs structure.
Definition at line 1278 of file ie_ghost.hpp.
|
inline |
Notify that the next toKernel() data-structures must be re-offloaded.
Definition at line 1548 of file ie_ghost.hpp.
|
inline |
toKernel() Convert this data-structure into a kernel usable data-structure
Definition at line 1525 of file ie_ghost.hpp.
|
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)
output | directory |
p_id | processor rank |
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.
|
private |
boundary conditions
Definition at line 91 of file ie_ghost.hpp.
|
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
Definition at line 53 of file ie_ghost.hpp.
|
private |
domain
Definition at line 88 of file ie_ghost.hpp.
|
private |
Cell-list that store the geometrical information of the internal ghost boxes.
Definition at line 68 of file ie_ghost.hpp.
|
private |
host to device transfer
Definition at line 85 of file ie_ghost.hpp.
|
private |
Temporal buffers to return temporal information.
Definition at line 79 of file ie_ghost.hpp.
|
private |
Temporal buffers to return temporal information for ghost_processorID.
Definition at line 76 of file ie_ghost.hpp.
|
private |
It store the same information of box_nn_processor_int organized by processor id.
Definition at line 56 of file ie_ghost.hpp.
|
private |
shift converter
Definition at line 82 of file ie_ghost.hpp.
|
private |
shift vectors
Definition at line 73 of file ie_ghost.hpp.
|
private |
External ghost boxes for this processor.
Definition at line 59 of file ie_ghost.hpp.
|
private |
Internal ghost boxes for this processor domain.
Definition at line 62 of file ie_ghost.hpp.
|
private |
Internal ghost boxes for this processor domain.
Definition at line 65 of file ie_ghost.hpp.