22#include "rheolef/geo_domain.h"
29template <
class T,
class M>
36 trace_macro (
"*** PHYSICAL COPY OF GEO_DOMAIN ***");
38template <
class T,
class M>
44 return new_macro(rep(*
this));
46template <
class T,
class M>
54 _dom.get_indirect().data(),
55 _dom.get_background_geo().data(),
62template <
class T,
class M>
66 typename std::map<size_type,size_type>::const_iterator iter =
_bgd_ie2dom_ie.find (bgd_ie);
68 return (*iter).second;
70 return std::numeric_limits<size_type>::max();
73template <
class T,
class M>
80 if (dis_bgd_ie >= first_dis_bgd_ie && dis_bgd_ie < last_dis_bgd_ie) {
81 size_type bgd_ie = dis_bgd_ie - first_dis_bgd_ie;
86 return (*iter).second;
88 return std::numeric_limits<size_type>::max();
91template <
class T,
class M>
99 if (dis_bgd_ie >= first_dis_bgd_ie && dis_bgd_ie < last_dis_bgd_ie) {
100 size_type bgd_ie = dis_bgd_ie - first_dis_bgd_ie;
102 const geo_element& dom_K = base::get_geo_element (map_d, dom_ie);
106 const geo_element& dom_K = base::dis_get_geo_element (map_d, dis_dom_ie);
110template <
class T,
class M>
116 size_type first_dom_dis_ie = base::sizes().ownership_by_dimension[map_d].first_index();
117 check_macro (dom_dis_ie >= first_dom_dis_ie,
"unexpected dis_index "<<dom_dis_ie<<
": out of local range");
118 size_type dom_ie = dom_dis_ie - first_dom_dis_ie;
126#define _RHEOLEF_instanciation(T,M) \
127template class geo_domain_rep<T,M>;
130#ifdef _RHEOLEF_HAVE_MPI
#define _RHEOLEF_instanciation(T, M, A)
see the Float page for the full documentation
generic mesh with rerefence counting
const geo_basic< T, M > & get_background_geo() const
const geo_element & dom2bgd_geo_element(const geo_element &dom_K) const
size_type bgd_ie2dom_ie(size_type bgd_ie) const
geo_domain_indirect_rep< T, M > _dom
std::map< size_type, size_type > _bgd_ie2dom_ie
base::size_type size_type
geo_domain_rep(const geo_domain_rep< T, M > &)
geo_abstract_rep< T, M > * clone() const
size_type dis_bgd_ie2dis_dom_ie(size_type dis_bgd_ie) const
std::map< size_type, size_type > _dis_bgd_ie2dis_dom_ie
geo_basic< T, M > get_background_domain() const
const geo_element & bgd2dom_geo_element(const geo_element &bgd_K) const
see the geo_element page for the full documentation
size_type dimension() const
sequential mesh representation
#define trace_macro(message)
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.