omega_h
Reliable mesh adaptation
Omega_h_ghost.hpp
1 #ifndef OMEGA_H_GHOST_HPP
2 #define OMEGA_H_GHOST_HPP
3 
4 #include <Omega_h_dist.hpp>
5 
6 namespace Omega_h {
7 
8 class Mesh;
9 
10 /* a graph from local items to global items.
11  * locals2edges is an offset map from local items to edges
12  * outgoing from local items.
13  * edges2remotes is a map from edges outgoing from local
14  * items, to the remote destinations of said edges.
15  */
16 struct RemoteGraph {
17  LOs locals2edges;
18  Remotes edges2remotes;
19 };
20 
21 Dist get_local_elem_uses2own_verts(Mesh* mesh);
22 Remotes get_local_elem_uses2own_elems(Mesh* mesh);
23 void get_own_verts2own_elem_uses(
24  Mesh* mesh, Remotes& serv_uses2own_elems, LOs& own_verts2serv_uses);
25 Remotes push_elem_uses(RemoteGraph own_verts2own_elems, Dist own_verts2verts);
26 
27 void ghost_mesh(Mesh* mesh, Int nlayers, bool verbose);
28 void partition_by_verts(Mesh* mesh, bool verbose);
29 void partition_by_elems(Mesh* mesh, bool verbose);
30 
31 } // end namespace Omega_h
32 
33 #endif
an MPI distributor object which encapsulates the idea of a communication pattern between lots of smal...
Definition: Omega_h_dist.hpp:119
Definition: Omega_h_mesh.hpp:35
Definition: amr_mpi_test.cpp:6
Definition: Omega_h_ghost.hpp:16
Definition: Omega_h_remotes.hpp:9