rheolef  6.5
geo_domain_indirect_mpi.cc
Go to the documentation of this file.
1 
2 #include "rheolef/config.h"
3 
4 #ifdef _RHEOLEF_HAVE_MPI
5 #include "rheolef/geo_domain_indirect.h"
6 
7 namespace rheolef {
8 
9 template<class T>
10 distributor
12 {
13  if (dim == base::map_dimension()) return base::_indirect.ini_ownership();
14  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
15  return base::_omega.geo_element_ios_ownership(dim);
16 }
17 template <class T>
20 {
21 #ifdef TODO
22  if (dim == map_dimension()) return base::_omega.get_geo_element (dim, _indirect.oige(ige).index());
23 #endif // TODO
24  return base::_omega.dis_get_geo_element (dim, dis_ige);
25 }
26 template<class T>
29 {
30  if (dim == base::map_dimension()) return base::_indirect.ioige2ini_dis_ioige (ige);
31  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
32  return base::_omega.ige2ios_dis_ige (dim, ige);
33 }
34 template<class T>
37 {
38  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
39  return base::_omega.dis_ige2ios_dis_ige (dim, dis_ige);
40 }
41 template<class T>
44 {
45  if (dim == base::map_dimension()) return base::_indirect.ini_ioige2dis_ioige (ios_ige);
46  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
47  return base::_omega.ios_ige2dis_ige (dim, ios_ige);
48 }
49 template<class T>
50 void
52  boost::array<size_type,reference_element::max_variant>& loc_ndof_by_variant,
53  array<size_type,distributed>& idof2ios_dis_idof) const
54 {
55  fatal_macro ("set_ios_permutation: not yet");
56 }
58 
59 } // namespace rheolef
60 #endif // _RHEOLEF_HAVE_MPI
61