Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
geo_domain_indirect_mpi.cc
Go to the documentation of this file.
1
21
22#include "rheolef/config.h"
23
24#ifdef _RHEOLEF_HAVE_MPI
25#include "rheolef/geo_domain_indirect.h"
26
27namespace rheolef {
28
29template<class T>
30distributor
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}
37template <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}
47template<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}
55template<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}
62template<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}
70template<class T>
71void
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
78template<class T>
79const std::array<disarray<typename geo_domain_indirect_rep<T,distributed>::size_type,distributed>,reference_element::max_variant>&
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
see the disarray page for the full documentation
Definition disarray.h:497
static const variant_type max_variant
#define fatal_macro(message)
Definition dis_macros.h:33
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
This file is part of Rheolef.