18 #if !defined(__FLECSI_PRIVATE__) 19 #error Do not include this file directly! 22 #include "../utility_types.hh" 29 using ntree_entity_base_t = entity_base<0>;
44 template<
size_t DIM,
class KEY>
48 enum LOCALITY :
int { LOCAL = 0, NON_LOCAL = 1, SHARED = 2 };
50 static constexpr
size_t dimension = DIM;
61 void set_coordinates(
const point_t & coordinates) {
62 coordinates_ = coordinates;
64 void set_global_id(
id_t id) {
67 void set_key(
const key_t & key) {
94 template<
size_t A,
class B>
95 friend std::ostream & operator<<(std::ostream & os,
110 template<
size_t DIM,
class KEY>
112 operator<<(std::ostream & os, const ntree_entity<DIM, KEY> & e) {
113 os <<
"Entity: p: " << e.coordinates_ <<
" m: " << e.mass_;
114 os <<
" id: " << e.id_.entity() <<
" key: " << e.key_;
127 template<
size_t DIM,
class KEY>
131 static constexpr
size_t dimension = DIM;
164 template<
size_t DIM,
class TREE_ENTITY_TYPE,
class KEY>
168 enum LOCALITY :
int { LOCAL = 0, NON_LOCAL = 1, SHARED = 2 };
170 static constexpr
size_t dimension = DIM;
171 using entity_id_t =
typename TREE_ENTITY_TYPE::id_t;
177 ntree_node(
const key_t & key) : size_(0), is_leaf_(
true) {
183 void set_leaf(
const bool & is_leaf) {
186 void set_bit_child(
const char & bit_child) {
187 bit_child_ = bit_child;
189 void set_coordinates(
const point_t & coordinates) {
190 coordinates_ = coordinates;
192 void set_bmin(
const point_t & bmin) {
195 void set_bmax(
const point_t & bmax) {
198 void set_mass(
const double & mass) {
201 void set_sub_entities(
const size_t & sub_entities) {
202 sub_entities_ = sub_entities;
215 size_t sub_entities() {
216 return sub_entities_;
221 bool ghosts_local() {
222 return ghosts_local_;
224 LOCALITY locality() {
252 entities_[size_++] = id;
255 entity_id_t * begin() {
258 entity_id_t * end() {
259 return entities_ + size_;
265 void add_bit_child(
char bit) {
266 bit_child_ = bit_child_ | (1 << bit);
268 bool as_child(
int bit) {
269 return bit_child_ & (1 << bit);
273 entity_id_t entities_[1 << dimension];
282 size_t sub_entities_;
void insert(const entity_id_t &id)
Definition: types.hh:251
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
Definition: dimensioned_array.hh:58
Definition: control.hh:31