18 #if !defined(__FLECSI_PRIVATE__) 19 #error Do not include this file directly! 37 template<
size_t TOPOLOGICAL_DIMENSION>
46 template<
size_t TOPOLOGICAL_DOMAIN>
55 template<
size_t INDEX_SUBSPACE>
62 using id_vector_t = std::vector<util::id_t>;
63 using connection_vector_t = std::vector<id_vector_t>;
68 size_t operator()(
const id_vector_t & v)
const {
71 h |=
static_cast<size_t>(
id.local_id());
81 using id_vector_map_t =
82 std::unordered_map<id_vector_t, util::id_t, id_vector_hash_t>;
86 using index_vector_t = std::vector<size_t>;
101 template<
size_t NUM_DOMAINS>
112 template<
size_t DOM = 0>
117 id_t global_id(
size_t domain)
const {
121 template<
size_t DOM = 0>
123 return ids_[DOM].entity();
126 size_t id(
size_t domain)
const {
127 return ids_[domain].entity();
130 template<
size_t DOM = 0>
131 uint16_t info()
const {
132 return ids_[DOM] >> 48;
138 template<
size_t DOM = 0>
146 static constexpr
size_t get_dim_(
size_t meshDim,
size_t dim) {
147 return dim > meshDim ? meshDim : dim;
151 template<
size_t DOM = 0>
152 void set_info(uint16_t info) {
153 ids_[DOM] = (uint64_t(info) << 48) | ids_[DOM];
157 std::array<id_t, NUM_DOMAINS> ids_;
166 template<
size_t NUM_DOMAINS>
id_t global_id() const
Definition: utility_types.hh:113
Definition: utility_types.hh:67
Definition: typeify.hh:31
entity_base defines a base class that stores the raw info that a topology needs, i.e: id and rank data
Definition: utility_types.hh:102
void set_global_id(const id_t &id)
Set the id of this entity.
Definition: utility_types.hh:139
std::vector< entity_base< NUM_DOMAINS > * > entity_vector_t
Definition: utility_types.hh:167
Definition: utility_types.hh:95
Definition: control.hh:31