1 #ifndef _RHEOLEF_DOMAIN_H
2 #define _RHEOLEF_DOMAIN_H
4 #include "rheolef/geo.h"
5 #include "rheolef/domain_indirect.h"
40 template <
class T,
class M>
99 void set_nodes (
const array<node_type,M>&);
101 bool check(
bool verbose)
const;
118 array<size_type,M>& dis_ie,
119 bool do_check =
false)
const;
123 array<size_type, M>& dis_ie,
125 bool do_check =
false)
const;
129 array<size_type, M>& dis_ie,
136 template <
class T,
class M>
144 template <
class T,
class M>
149 _indirect(dom._indirect),
153 template <
class T,
class M>
157 _indirect (indirect),
161 template <
class T,
class M>
174 :
base(indirect,omega) {}
185 #ifdef _RHEOLEF_HAVE_MPI
197 :
base(indirect,omega) {}
206 void set_ios_permutation (
207 boost::array<size_type,reference_element::max_variant>& loc_ndof_by_variant,
208 array<size_type,distributed>& idof2ios_dis_idof)
const;
218 #endif // _RHEOLEF_HAVE_MPI
219 #define _RHEOLEF_geo_cstor(M) \
222 geo_basic<T,M>::geo_basic ( \
223 const domain_indirect_basic<M>& dom, \
224 const geo_basic<T,M>& omega) \
225 : base (new_macro((geo_domain_indirect_rep<T,M>)(dom,omega))) \
228 #define _RHEOLEF_geo_dmn_by_idx(M) \
232 geo_basic<T,M>::get_domain (size_type i) const \
234 const domain_indirect_basic<M>& dm = base::data().get_domain_indirect (i); \
235 return geo_basic<T,M> (dm, *this); \
237 #define _RHEOLEF_geo_dmn_by_name(M) \
241 geo_basic<T,M>::operator[] (const std::string& name) const \
243 const domain_indirect_basic<M>& dm = base::data().get_domain_indirect (name); \
244 return geo_basic<T,M> (dm, *this); \
250 #ifdef _RHEOLEF_HAVE_MPI
254 #endif // _RHEOLEF_HAVE_MPI
256 #undef _RHEOLEF_geo_cstor
257 #undef _RHEOLEF_geo_dmn_by_idx
258 #undef _RHEOLEF_geo_dmn_by_name
261 #endif // _RHEOLEF_DOMAIN_H