Rheolef  7.1
an efficient C++ finite element environment
geo_domain_indirect_mpi.cc
Go to the documentation of this file.
1 
22 #include "rheolef/config.h"
23 
24 #ifdef _RHEOLEF_HAVE_MPI
25 #include "rheolef/geo_domain_indirect.h"
26 
27 namespace rheolef {
28 
29 template<class T>
30 distributor
32 {
33  if (dim == base::map_dimension()) return base::_indirect.ini_ownership();
34  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
35  return base::_omega.geo_element_ios_ownership(dim);
36 }
37 template <class T>
40 {
41 #ifdef TODO
42  // see geo_domain_indirect_seq.cc : get_geo_element (dim, ige)
43  if (dim == map_dimension()) return base::_omega.get_geo_element (dim, _indirect.oige(ige).index());
44 #endif // TODO
45  return base::_omega.dis_get_geo_element (dim, dis_ige);
46 }
47 template<class T>
50 {
51  if (dim == base::map_dimension()) return base::_indirect.ioige2ini_dis_ioige (ige);
52  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
53  return base::_omega.ige2ios_dis_ige (dim, ige);
54 }
55 template<class T>
58 {
59  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
60  return base::_omega.dis_ige2ios_dis_ige (dim, dis_ige);
61 }
62 template<class T>
65 {
66  if (dim == base::map_dimension()) return base::_indirect.ini_ioige2dis_ioige (ios_ige);
67  check_macro (dim < base::map_dimension(), "unexpected dimension = " << dim << " > domain dimension = " << base::map_dimension());
68  return base::_omega.ios_ige2dis_ige (dim, ios_ige);
69 }
70 template<class T>
71 void
73  disarray<size_type,distributed>& idof2ios_dis_idof) const
74 {
75  fatal_macro ("set_ios_permutation: not yet");
76 }
77 // used by space_constritution for ios numbering
78 template<class T>
81 {
82  fatal_macro ("get_igev2ios_dis_igev: not yet");
83  return base::get_background_geo().get_igev2ios_dis_igev(); // return something
84 }
85 // ----------------------------------------------------------------------------
86 // instanciation in library
87 // ----------------------------------------------------------------------------
89 
90 } // namespace rheolef
91 #endif // _RHEOLEF_HAVE_MPI
rheolef::geo_domain_indirect_rep
Definition: geo_domain_indirect.h:208
check_macro
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
rheolef::geo_abstract_base_rep::size_type
geo_element_hack::size_type size_type
Definition: geo.h:260
rheolef::distributed
Definition: distributed.h:88
fatal_macro
#define fatal_macro(message)
Definition: dis_macros.h:33
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
rheolef::reference_element::max_variant
static const variant_type max_variant
Definition: reference_element.h:82
rheolef::disarray
see the disarray page for the full documentation
Definition: disarray.h:459
size_type
field::size_type size_type
Definition: branch.cc:425
mkgeo_ball.dim
int dim
Definition: mkgeo_ball.sh:307