Structure that store a graph in CSR format or basically in compressed adjacency matrix format. More...
Structure that store a graph in CSR format or basically in compressed adjacency matrix format.
V | each vertex will encapsulate have this type |
E | each edge will encapsulate this type |
device | Type of device / basicaly it select the layout for device_cpu is (x_1, p1_1, p2_1, p3_1 ....), ... ( x_n, p1_1, p2_1, p3_1, ...) for device_gpu is (x_1, ... , x_n) ... (p1_n, ... pn_n) where x_1 is the index where it end the list of the neighborhood list and pj_k is the property j for the vertex j. Basically in the first case one array will store index and property of each vertex, in the second case several array will store index and property |
VertexList | structure that store the list of Vertex |
EdgeList | structure that store the list of edge |
Definition at line 209 of file dist_map_graph.hpp.
#include <dist_map_graph.hpp>
Data Structures | |
struct | EdgeReq |
Structure to store a add request of an edge. More... | |
struct | GlobalVInfo |
Structure needed to get vertex position by global id. More... | |
struct | SendGraphPack |
Struct containing the (sub)graph to send. More... | |
Public Types | |
typedef V | V_type |
Vertex typedef. | |
typedef E | E_type |
Edge typedef. | |
typedef openfpm::vector< V, Memory, layout_v_base, grow_p, openfpm::vect_isel< V >::value >::container | V_container |
Object container for the vertex, for example can be encap<...> (map_grid or openfpm::vector) | |
typedef openfpm::vector< E, Memory, layout_e_base, grow_p, openfpm::vect_isel< E >::value >::container | E_container |
Object container for the edge, for example can be encap<...> (map_grid or openfpm::vector) | |
Public Member Functions | |
DistGraph_CSR< V, E, Memory, layout_v, layout_e, layout_v_base, layout_e_base, grow_p > | duplicate () const |
It duplicate the graph. | |
DistGraph_CSR (const DistGraph_CSR &dg) | |
Constructor. | |
DistGraph_CSR (DistGraph_CSR &&dg) | |
Constructor. | |
DistGraph_CSR () | |
Constructor. | |
DistGraph_CSR (size_t n_vertex) | |
Constructor. | |
DistGraph_CSR (size_t n_vertex, size_t n_slot) | |
Constructor. | |
void | getDecompositionVector (openfpm::vector< idx_t > &v) |
Operator to access the decomposition vector. | |
openfpm::vector< idx_t > * | getVtxdist () |
Operator to access the decomposition vector. | |
void | initDistributionVector (openfpm::vector< idx_t > &v) |
Operator to access the decomposition vector. | |
void | initDistributionVector () |
Initialize the vtxdist and the fvtxdist. | |
DistGraph_CSR (Vcluster<> &vcl, DistGraph_CSR< V, E, Memory > &&g) | |
Copy constructor. | |
DistGraph_CSR< V, E, Memory > & | operator= (DistGraph_CSR< V, E, Memory > &&g) |
Copy the graph. | |
DistGraph_CSR< V, E, Memory > & | operator= (const DistGraph_CSR< V, E, Memory > &g) |
Copy the graph. | |
template<unsigned int i> | |
auto | vertex_p (size_t id) -> decltype(v.template get< i >(id)) |
operator to access the vertex | |
template<unsigned int i> | |
auto | vertex_p (grid_key_dx< 1 > id) -> decltype(v.template get< i >(id)) |
Access the vertex. | |
auto | vertex (size_t id) -> decltype(v.get(id)) |
Function to access the vertexes. | |
auto | vertex (grid_key_dx< 1 > id) -> decltype(v.get(id.get(0))) |
operator to access the vertex | |
auto | vertex (openfpm::vector_key_iterator id) -> decltype(v.get(0)) |
operator to access the vertex | |
auto | vertex (size_t id) const -> const decltype(v.get(id)) |
Function to access the vertexes. | |
auto | vertex (grid_key_dx< 1 > id) const -> const decltype(v.get(id.get(0))) |
operator to access the vertex | |
auto | vertex (openfpm::vector_key_iterator id) const -> const decltype(v.get(0)) |
operator to access the vertex | |
auto | vertex_info (openfpm::vector_key_iterator id) const -> const decltype(v_m.get(0)) |
operator to access the vertex info | |
auto | getVertex (size_t id) -> decltype(v.get(id)) |
Function to access the vertexes. | |
auto | getVertex (size_t id) const -> const decltype(v.get(0)) |
Function to access the vertexes. | |
size_t | nodeById (size_t id) const |
operator to access the vertex position index by id property | |
size_t | firstId () const |
size_t | lastId () const |
size_t | getVertexId (size_t i) const |
Get the id of a vertex given its index position. | |
size_t | getVertexGlobalId (size_t i) const |
Get the id of a vertex given its index position. | |
bool | vertexIsInThisGraph (size_t id) |
Check if the vertex with GLOBAL id is in this graph. | |
void | map_v (size_t n, size_t g, size_t l) |
operator to update all the hashmap | |
void | clear () |
operator to clear the whole graph | |
template<unsigned int i> | |
auto | edge_p (grid_key_dx< 1 > id) -> decltype(e.template get< i >(id)) |
Access the edge. | |
template<unsigned int i> | |
auto | edge_p (size_t id) -> decltype(e.template get< i >(id)) |
Access the edge. | |
auto | edge (grid_key_dx< 1 > id) const -> const decltype(e.get(id.get(0))) |
Access the edge. | |
auto | edge (edge_key ek) const -> const decltype(e.get(0)) |
operator to access the edge | |
auto | getEdge (edge_key ek) const -> const decltype(e.get(0)) |
operator to access the edge | |
auto | edge (size_t id) const -> const decltype(e.get(id)) |
operator to access the edge | |
size_t | getNChilds (size_t c) const |
Return the number of children of a vertex. | |
size_t | getNChilds (typename openfpm::vector< V, Memory, layout_v_base, grow_p, openfpm::vect_isel< V >::value >::iterator_key &c) |
Return the number of childs of a vertex. | |
size_t | getNEdge (size_t v) const |
Return the number of children of a vertex given its global id. | |
auto | getChildEdge (size_t v, size_t v_e) -> decltype(e.get(0)) |
Get the vertex edge. | |
auto | getChildInfo (size_t v, size_t v_e) -> decltype(e_m.get(0)) |
Get the vertex edge info. | |
auto | getEdge (size_t v, size_t v_e) -> decltype(e.get(0)) |
Get the vertex edge given the vertex global id as source. | |
size_t | getChild (size_t v, size_t i) const |
Get the child edge. | |
size_t | getChild (size_t i) const |
Get the child edge. | |
size_t | getChild (typename openfpm::vector< V, Memory, layout_v_base, grow_p, openfpm::vect_isel< V >::value >::iterator_key &v, size_t i) |
Get the child edge. | |
void | add_vertex (const V &vrt, size_t id, size_t gid) |
Add vertex vrt with global id and id properties. | |
template<unsigned int dim, typename Mem > | |
void | add_vertex (const encapc< dim, V, Mem > &vrt, size_t id, size_t gid) |
Add vertex vrt with global id and id properties. | |
void | add_vertex (const V &vrt, size_t gid) |
Add vertex vrt with global id and id properties. | |
void | setGlobalMap (size_t g, size_t l, size_t i) |
map global id to local id | |
auto | addEdge (size_t v1, size_t v2, size_t srcgid, size_t dstgid) -> decltype(e.get(0)) |
auto | addEdge (size_t v1, size_t v2, size_t srcgid, size_t dstgid, const E &ed) -> decltype(e.get(0)) |
template<unsigned int dim, typename Mem , typename Mem1 > | |
auto | addEdge (size_t v1, size_t v2, const encapc< dim, E, Mem > &ed, const encapc< dim, e_info, Mem1 > &ei) -> decltype(e.get(0)) |
auto | addEdge (size_t v1, size_t v2, const E &ed, const e_info &ei) -> decltype(e.get(0)) |
size_t | getChildSrcGid (size_t v1, size_t s) |
Get the global id of edge's source vertex. | |
size_t | getChildDstGid (size_t v1, size_t s) |
Get the global id of edge's destination vertex. | |
template<typename CheckPolicy = NoCheck> | |
void | add_edge (size_t v1, size_t v2) |
Add an edge between vertices v1 end v2, needs syncEdge() to complete the action. | |
void | syncEdge () |
Execute a synchronization through processor to finalize the add of the edges requested in the e_queue. | |
void | swap (DistGraph_CSR< V, E > &g) |
Swap the memory of g with this graph. | |
void | swap (DistGraph_CSR< V, E > &&g) |
Swap the memory of g with this graph. | |
auto | getVertexIterator () const -> decltype(v.getIterator()) |
Get the vertex iterator. | |
edge_iterator< DistGraph_CSR< V, E, Memory > > | getEdgeIterator () const |
Get the vertex iterator. | |
size_t | getNVertex () const |
Return the number of the vertices in this subgraph. | |
size_t | getTotNVertex () const |
Return the total number of the vertices. | |
size_t | getNEdge () const |
Return the number of edges. | |
void | init () |
Once added all the vertices this function must be called to initialize all the properties, useless if a graph factory is used. | |
bool | isGhost (size_t id) |
Check if a vertex is a ghost vertex (not belonging to this processor) | |
void | deleteGhosts () |
Remove all the ghosts from this graph. | |
template<bool toRemove = true> | |
void | q_move (size_t i, size_t t) |
Prepare to send vertex i from the local processor to the target processor. | |
bool | moveQueueIsEmpty () |
Check if the move queue is empty. | |
void | redistribute () |
Redistribute function that wraps different stages of the redistribution. | |
void | reqVertex (size_t gid) |
Put a vertex request in queue. | |
void | sync () |
Execute all vertex requests and add them as ghosts inside this graph, they will be available until a redistribution is executed. | |
Private Member Functions | |
template<typename CheckPolicy = NoCheck> | |
size_t | addEdge_ (size_t v1, size_t v2) |
add edge on the graph | |
void | resetExchange () |
Init communication structures. | |
void | deleteMovedVertices () |
Remove from this graph the vertices that have been sent. | |
bool | isToDelete (size_t i) |
Check it the vertex i must be deleted or not. | |
size_t | getVProcessor (size_t v) |
Get the processor of the the given vertex id, CAN be used BEFORE re-mapping starts. | |
template<bool addAsGhosts> | |
void | exchangeVertices () |
Send and receive vertices and update current graph. | |
void | updateVtxdist () |
Update the distribution vector vtxdist. | |
void | remap () |
Re-map received vertices in order to have ordered vertex ids. | |
void | initGlbimap () |
Initialize the fixed structure for global mapping. See glbiv for details. | |
size_t | getInfoProc (size_t vid) |
Get the processor id of the processor containing the vertex with global id vid. | |
template<typename T > | |
void | fillSendRecvStructs (openfpm::vector< openfpm::vector< T > > &vec, openfpm::vector< size_t > &prc, openfpm::vector< size_t > &size, openfpm::vector< void * > &ptr) |
Fill the prc, size and ptr structures with the data of vec. | |
Static Private Member Functions | |
static void * | gr_receive (size_t msg_i, size_t total_msg, size_t total_p, size_t i, size_t ri, size_t tag, void *ptr) |
Callback to set the size of the receiving vector. | |
static void * | on_receive (size_t msg_i, size_t total_msg, size_t total_p, size_t i, size_t ri, size_t tag, void *ptr) |
Callback of the sendrecv to set the size of the array received. | |
Private Attributes | |
Vcluster & | vcl |
Vcluster communication object. | |
openfpm::vector< idx_t > | vtxdist |
Distribution vector. | |
openfpm::vector< idx_t > | fvtxdist |
Fixed distribution vector, it never changes, it maintains always the first decomposition and topology. | |
size_t | v_slot |
number of slot per vertex | |
openfpm::vector< V, Memory, layout_v_base, grow_p, openfpm::vect_isel< V >::value > | v |
Structure that store the vertex properties. | |
openfpm::vector< v_info, Memory, memory_traits_lin, grow_p, openfpm::vect_isel< v_info >::value > | v_m |
Structure that store the vertex id and global id. | |
openfpm::vector< size_t, Memory, layout_v_base, grow_p, openfpm::vect_isel< size_t >::value > | v_l |
Structure that store the number of adjacent vertex in e_l for each vertex. | |
openfpm::vector< E, Memory, layout_e_base, grow_p, openfpm::vect_isel< E >::value > | e |
Structure that store the edge properties. | |
openfpm::vector< e_info, Memory, layout_e_base, grow_p, openfpm::vect_isel< e_info >::value > | e_m |
Structure that store the edge properties. | |
openfpm::vector< e_map, Memory, layout_e_base, grow_p, openfpm::vect_isel< e_map >::value > | e_l |
Structure that store for each vertex the adjacent the vertex id and edge id (for property into e) | |
openfpm::vector< E, Memory, layout_e_base, grow_p, openfpm::vect_isel< E >::value > | e_invalid |
invalid edge element, when a function try to create an in valid edge this object is returned | |
std::unordered_map< size_t, size_t > | id2glb |
Map to access to the global vertex id given the vertex id. | |
std::unordered_map< size_t, size_t > | glb2id |
Map to access the vertex id given the global vertex id. | |
std::unordered_map< size_t, size_t > | glb2loc |
Map to access the local vertex id given the global one. | |
openfpm::vector< SendGraphPack > | sgp |
Pack storing that data to send to other processors. | |
openfpm::vector< size_t > | v_td |
Array containing the sent vertices and that will be deleted from the graph. | |
std::unordered_map< size_t, GlobalVInfo > | glbi_map |
TODO update description from pdf. | |
openfpm::vector< openfpm::vector< size_t > > | vr_queue |
Queue of vertex requests. | |
std::unordered_map< size_t, bool > | ghs_map |
Map containing the ghost vertices of this graph, if bool is false the ghost will be deleted in the next vertices exchange. | |
openfpm::vector< EdgeReq > | e_queue |
Queue of requests to add edges. | |
typedef openfpm::vector<E,Memory,layout_e_base,grow_p,openfpm::vect_isel<E>::value>::container DistGraph_CSR< V, E, Memory, layout_v, layout_e, layout_v_base, layout_e_base, grow_p >::E_container |
Object container for the edge, for example can be encap<...> (map_grid or openfpm::vector)
Definition at line 1007 of file dist_map_graph.hpp.
typedef E DistGraph_CSR< V, E, Memory, layout_v, layout_e, layout_v_base, layout_e_base, grow_p >::E_type |
Edge typedef.
Definition at line 1001 of file dist_map_graph.hpp.
typedef openfpm::vector<V,Memory,layout_v_base,grow_p,openfpm::vect_isel<V>::value>::container DistGraph_CSR< V, E, Memory, layout_v, layout_e, layout_v_base, layout_e_base, grow_p >::V_container |
Object container for the vertex, for example can be encap<...> (map_grid or openfpm::vector)
Definition at line 1004 of file dist_map_graph.hpp.
typedef V DistGraph_CSR< V, E, Memory, layout_v, layout_e, layout_v_base, layout_e_base, grow_p >::V_type |
Vertex typedef.
Definition at line 998 of file dist_map_graph.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Copy constructor.
v_cl | vcluster |
gg | distributed graph to copy |
Definition at line 1162 of file dist_map_graph.hpp.
|
inline |
Add an edge between vertices v1 end v2, needs syncEdge() to complete the action.
v1 | source vertex of the edge |
v2 | destination vertex of the edge |
Definition at line 1914 of file dist_map_graph.hpp.
|
inline |
Add vertex vrt with global id and id properties.
vrt | vertex object to add |
id | of the vertex |
gid | global id, unique in global graph |
Definition at line 1757 of file dist_map_graph.hpp.
|
inline |
Add vertex vrt with global id and id properties.
vrt | vertex object to add |
gid | global id, unique in global graph |
Definition at line 1791 of file dist_map_graph.hpp.
|
inline |
Add vertex vrt with global id and id properties.
vrt | vertex object to add |
gid | global id, unique in global graph |
id | id, unique n global graph |
Definition at line 1722 of file dist_map_graph.hpp.
|
inline |
Definition at line 1869 of file dist_map_graph.hpp.
|
inline |
Definition at line 1853 of file dist_map_graph.hpp.
|
inline |
Definition at line 1818 of file dist_map_graph.hpp.
|
inline |
Definition at line 1834 of file dist_map_graph.hpp.
|
inlineprivate |
add edge on the graph
add edge on the graph
v1 | start vertex |
v2 | end vertex |
Definition at line 325 of file dist_map_graph.hpp.
|
inline |
operator to clear the whole graph
operator to clear all
Definition at line 1462 of file dist_map_graph.hpp.
|
inline |
Remove all the ghosts from this graph.
Definition at line 2123 of file dist_map_graph.hpp.
|
inlineprivate |
Remove from this graph the vertices that have been sent.
Definition at line 477 of file dist_map_graph.hpp.
|
inline |
It duplicate the graph.
Definition at line 1015 of file dist_map_graph.hpp.
|
inline |
operator to access the edge
ek | key of the edge |
Definition at line 1520 of file dist_map_graph.hpp.
|
inline |
Access the edge.
id | of the edge to access |
Definition at line 1508 of file dist_map_graph.hpp.
|
inline |
operator to access the edge
operator to access the edge
id | of the edge to access |
Definition at line 1556 of file dist_map_graph.hpp.
|
inline |
Access the edge.
i | property to access |
id | of the edge to access |
Definition at line 1483 of file dist_map_graph.hpp.
|
inline |
Access the edge.
i | property to access |
id | of the edge to access |
Definition at line 1496 of file dist_map_graph.hpp.
|
inlineprivate |
Send and receive vertices and update current graph.
Remove | the sent sub-graph |
Definition at line 552 of file dist_map_graph.hpp.
|
inlineprivate |
Fill the prc, size and ptr structures with the data of vec.
type | of the data inside vec |
vec | vector of the data |
prc | processor array of sendrecv function |
size | size array of sendrecv function |
ptr | pointers array of sendrecv function |
Definition at line 977 of file dist_map_graph.hpp.
|
inline |
/brief Get the first id of the graph
Definition at line 1387 of file dist_map_graph.hpp.
|
inline |
Get the child edge.
i | id of the child |
Definition at line 1684 of file dist_map_graph.hpp.
|
inline |
Get the child edge.
v | node |
i | child at position i |
Definition at line 1660 of file dist_map_graph.hpp.
|
inline |
Get the child edge.
v | node |
i | child at position i |
Definition at line 1698 of file dist_map_graph.hpp.
|
inline |
Get the global id of edge's destination vertex.
v1 | source vertex of the edge |
s | n child of vertex v1 |
Definition at line 1903 of file dist_map_graph.hpp.
|
inline |
Get the vertex edge.
v | vertex |
v_e | edge id |
Definition at line 1613 of file dist_map_graph.hpp.
|
inline |
Get the vertex edge info.
v | vertex |
v_e | edge id |
Definition at line 1626 of file dist_map_graph.hpp.
|
inline |
Get the global id of edge's source vertex.
v1 | source vertex of the edge |
s | n child of vertex v1 |
Definition at line 1891 of file dist_map_graph.hpp.
|
inline |
Operator to access the decomposition vector.
v | vector that will contain the decomposition |
Definition at line 1106 of file dist_map_graph.hpp.
|
inline |
operator to access the edge
ek | key of the edge |
return | a reference to the edge |
Definition at line 1532 of file dist_map_graph.hpp.
|
inline |
Get the vertex edge given the vertex global id as source.
v | vertex global id |
v_e | edge id |
Definition at line 1639 of file dist_map_graph.hpp.
|
inline |
Get the vertex iterator.
Get the vertex iterator
Definition at line 2054 of file dist_map_graph.hpp.
|
inlineprivate |
Get the processor id of the processor containing the vertex with global id vid.
vid | vertex to know info about |
Definition at line 955 of file dist_map_graph.hpp.
|
inline |
Return the number of children of a vertex.
c | Child id |
Definition at line 1568 of file dist_map_graph.hpp.
|
inline |
Return the number of childs of a vertex.
c | child id |
Definition at line 1580 of file dist_map_graph.hpp.
|
inline |
Return the number of edges.
Definition at line 2084 of file dist_map_graph.hpp.
|
inline |
Return the number of children of a vertex given its global id.
v | vertex global id |
Definition at line 1592 of file dist_map_graph.hpp.
|
inline |
Return the number of the vertices in this subgraph.
Definition at line 2064 of file dist_map_graph.hpp.
|
inline |
Return the total number of the vertices.
Definition at line 2074 of file dist_map_graph.hpp.
|
inline |
Function to access the vertexes.
id | GLOBAL id of the vertex to access |
Definition at line 1325 of file dist_map_graph.hpp.
|
inline |
Function to access the vertexes.
id | GLOBAL id of the vertex to access |
Definition at line 1348 of file dist_map_graph.hpp.
|
inline |
Get the id of a vertex given its index position.
i | position of the vertex |
Definition at line 1416 of file dist_map_graph.hpp.
|
inline |
Get the id of a vertex given its index position.
i | position of the vertex |
Definition at line 1406 of file dist_map_graph.hpp.
|
inline |
Get the vertex iterator.
Get the vertex iterator
Definition at line 2042 of file dist_map_graph.hpp.
|
inlineprivate |
Get the processor of the the given vertex id, CAN be used BEFORE re-mapping starts.
v | id of the vertex |
Definition at line 534 of file dist_map_graph.hpp.
|
inline |
Operator to access the decomposition vector.
Definition at line 1120 of file dist_map_graph.hpp.
|
inlinestaticprivate |
Callback to set the size of the receiving vector.
msg_i | Index of the message |
total_msg | Total number of messages |
total_p | Total number of processors to communicate with |
i | Processor id |
ri | Request id |
ptr | Void pointer parameter for additional data to pass to the call-back |
Definition at line 404 of file dist_map_graph.hpp.
|
inline |
Once added all the vertices this function must be called to initialize all the properties, useless if a graph factory is used.
Definition at line 2092 of file dist_map_graph.hpp.
|
inline |
Initialize the vtxdist and the fvtxdist.
Definition at line 1144 of file dist_map_graph.hpp.
|
inline |
Operator to access the decomposition vector.
v | vector that contains the decomposition |
Definition at line 1129 of file dist_map_graph.hpp.
|
inlineprivate |
Initialize the fixed structure for global mapping. See glbiv for details.
Definition at line 937 of file dist_map_graph.hpp.
|
inline |
Check if a vertex is a ghost vertex (not belonging to this processor)
id | id of the vertex to check |
Definition at line 2106 of file dist_map_graph.hpp.
|
inlineprivate |
Check it the vertex i must be deleted or not.
i | vertex |
Definition at line 518 of file dist_map_graph.hpp.
|
inline |
/brief Get the last id of the graph
Definition at line 1396 of file dist_map_graph.hpp.
|
inline |
operator to update all the hashmap
n | new vertex id |
g | global vertex id |
l | local vertex id |
i | id of the property storing the id |
Definition at line 1449 of file dist_map_graph.hpp.
|
inline |
Check if the move queue is empty.
Definition at line 2203 of file dist_map_graph.hpp.
|
inline |
operator to access the vertex position index by id property
operator to access the vertex
id | id of the vertex to access |
Definition at line 1370 of file dist_map_graph.hpp.
|
inlinestaticprivate |
Callback of the sendrecv to set the size of the array received.
msg_i | Index of the message |
total_msg | Total number of messages |
total_p | Total number of processors to communicate with |
i | Processor id |
ri | Request id |
ptr | Void pointer parameter for additional data to pass to the call-back |
Definition at line 423 of file dist_map_graph.hpp.
|
inline |
Copy the graph.
g | graph to copy |
Definition at line 1189 of file dist_map_graph.hpp.
|
inline |
Copy the graph.
g | distributed graph to copy |
Definition at line 1175 of file dist_map_graph.hpp.
|
inline |
Prepare to send vertex i from the local processor to the target processor.
toRemove | if true the vertex will be deleted from this graph once it has been sent |
i | vertex to send |
t | target processor |
Definition at line 2164 of file dist_map_graph.hpp.
|
inline |
Redistribute function that wraps different stages of the redistribution.
Definition at line 2219 of file dist_map_graph.hpp.
|
inlineprivate |
Re-map received vertices in order to have ordered vertex ids.
Definition at line 766 of file dist_map_graph.hpp.
|
inline |
Put a vertex request in queue.
gid | global id of the vertex to request |
Definition at line 2237 of file dist_map_graph.hpp.
|
inlineprivate |
Init communication structures.
Definition at line 435 of file dist_map_graph.hpp.
|
inline |
map global id to local id
g | global id |
l | local index |
i | id |
Definition at line 1802 of file dist_map_graph.hpp.
|
inline |
Swap the memory of g with this graph.
Swap the memory of g with this graph, it is basically used for move semantic
g | The source graph |
Definition at line 2014 of file dist_map_graph.hpp.
|
inline |
Swap the memory of g with this graph.
Swap the memory of g with this graph, it is basically used for move semantic
g | The source graph |
Definition at line 1986 of file dist_map_graph.hpp.
|
inline |
Execute all vertex requests and add them as ghosts inside this graph, they will be available until a redistribution is executed.
Definition at line 2253 of file dist_map_graph.hpp.
|
inline |
Execute a synchronization through processor to finalize the add of the edges requested in the e_queue.
Definition at line 1947 of file dist_map_graph.hpp.
|
inlineprivate |
Update the distribution vector vtxdist.
Definition at line 735 of file dist_map_graph.hpp.
|
inline |
operator to access the vertex
operator to access the vertex
id | of the vertex to access |
Definition at line 1245 of file dist_map_graph.hpp.
|
inline |
operator to access the vertex
operator to access the vertex
id | of the vertex to access |
Definition at line 1285 of file dist_map_graph.hpp.
|
inline |
operator to access the vertex
operator to access the vertex
id | of the vertex to access |
Definition at line 1259 of file dist_map_graph.hpp.
|
inline |
operator to access the vertex
operator to access the vertex
id | of the vertex to access |
Definition at line 1299 of file dist_map_graph.hpp.
|
inline |
Function to access the vertexes.
id | of the vertex to access |
Definition at line 1231 of file dist_map_graph.hpp.
|
inline |
Function to access the vertexes.
id | of the vertex to access |
Definition at line 1271 of file dist_map_graph.hpp.
|
inline |
operator to access the vertex info
operator to access the vertex
id | of the vertex to access |
Definition at line 1313 of file dist_map_graph.hpp.
|
inline |
Access the vertex.
i | property to access |
id | of the vertex to access |
Definition at line 1219 of file dist_map_graph.hpp.
|
inline |
operator to access the vertex
operator to access the vertex
i | property to access |
id | of the vertex to access |
Definition at line 1206 of file dist_map_graph.hpp.
|
inline |
Check if the vertex with GLOBAL id is in this graph.
id | global id of the vertex |
Definition at line 1426 of file dist_map_graph.hpp.
|
private |
Structure that store the edge properties.
Definition at line 233 of file dist_map_graph.hpp.
|
private |
invalid edge element, when a function try to create an in valid edge this object is returned
Definition at line 242 of file dist_map_graph.hpp.
|
private |
Structure that store for each vertex the adjacent the vertex id and edge id (for property into e)
Definition at line 239 of file dist_map_graph.hpp.
|
private |
Structure that store the edge properties.
Definition at line 236 of file dist_map_graph.hpp.
|
private |
Queue of requests to add edges.
Definition at line 313 of file dist_map_graph.hpp.
|
private |
Fixed distribution vector, it never changes, it maintains always the first decomposition and topology.
Definition at line 218 of file dist_map_graph.hpp.
|
private |
Map containing the ghost vertices of this graph, if bool is false the ghost will be deleted in the next vertices exchange.
Definition at line 297 of file dist_map_graph.hpp.
|
private |
Map to access the vertex id given the global vertex id.
Definition at line 248 of file dist_map_graph.hpp.
|
private |
Map to access the local vertex id given the global one.
Definition at line 251 of file dist_map_graph.hpp.
|
private |
TODO update description from pdf.
Definition at line 291 of file dist_map_graph.hpp.
|
private |
Map to access to the global vertex id given the vertex id.
Definition at line 245 of file dist_map_graph.hpp.
|
private |
Pack storing that data to send to other processors.
Definition at line 273 of file dist_map_graph.hpp.
|
private |
Structure that store the vertex properties.
Definition at line 224 of file dist_map_graph.hpp.
|
private |
Structure that store the number of adjacent vertex in e_l for each vertex.
Definition at line 230 of file dist_map_graph.hpp.
|
private |
Structure that store the vertex id and global id.
Definition at line 227 of file dist_map_graph.hpp.
|
private |
number of slot per vertex
Definition at line 221 of file dist_map_graph.hpp.
|
private |
Array containing the sent vertices and that will be deleted from the graph.
Definition at line 276 of file dist_map_graph.hpp.
|
private |
Vcluster communication object.
Definition at line 212 of file dist_map_graph.hpp.
|
private |
Queue of vertex requests.
Definition at line 294 of file dist_map_graph.hpp.
|
private |
Distribution vector.
Definition at line 215 of file dist_map_graph.hpp.