omega_h
Reliable mesh adaptation
Omega_h_remotes.hpp
1 #ifndef OMEGA_H_REMOTES_HPP
2 #define OMEGA_H_REMOTES_HPP
3 
4 #include <Omega_h_array.hpp>
5 #include <Omega_h_comm.hpp>
6 
7 namespace Omega_h {
8 
9 struct Remotes {
10  Remotes() {}
11  Remotes(Read<I32> ranks_, LOs idxs_) : ranks(ranks_), idxs(idxs_) {}
12  Read<I32> ranks;
13  LOs idxs;
14 };
15 
16 Remotes expand(Remotes a2c, LOs a2b);
17 Remotes unmap(LOs a2b, Remotes b2c);
18 Remotes identity_remotes(CommPtr comm, LO n);
19 
20 Remotes owners_from_globals(
21  CommPtr comm, Read<GO> globals, Read<I32> own_ranks);
22 
23 struct c_Remotes {
24  c_Remotes() {}
25  c_Remotes(LOs leaf_idxs_, LOs root_idxs_, Read<I32> root_ranks_) :
26  leaf_idxs(leaf_idxs_), root_idxs(root_idxs_),
27  root_ranks(root_ranks_) {}
28  LOs leaf_idxs;
29  LOs root_idxs;
30  Read<I32> root_ranks;
31 };
32 
33 } // end namespace Omega_h
34 
35 #endif
Definition: amr_mpi_test.cpp:6
Write< T > unmap(LOs a2b, Read< T > b_data, Int width)
return the array of b_data in the order specified by a2b
Definition: Omega_h_map.cpp:77
Definition: Omega_h_remotes.hpp:9
Definition: Omega_h_remotes.hpp:23