16#ifndef dealii_cell_id_h
17#define dealii_cell_id_h
29#ifdef DEAL_II_WITH_P4EST
37template <
int dim,
int spacedim>
187 template <
class Archive>
230#ifdef DEAL_II_WITH_P4EST
231 std::array<std::uint8_t, internal::p4est::functions<2>::max_level>
237 friend std::istream &
239 friend std::ostream &
251 os <<
cid.coarse_cell_id <<
'_' <<
cid.n_child_indices <<
':';
252 for (
unsigned int i = 0; i <
cid.n_child_indices; ++i)
257 os <<
static_cast<unsigned char>(
'0' +
cid.child_indices[i]);
266template <
class Archive>
290 is >>
cid.n_child_indices;
295 for (
unsigned int i = 0; i <
cid.n_child_indices; ++i)
300 cid.child_indices[i] = value -
'0';
327 return !(*
this ==
other);
338 unsigned int idx = 0;
341 if (idx >=
other.n_child_indices)
std::ostream & operator<<(std::ostream &os, const CellId &cid)
std::istream & operator>>(std::istream &is, CellId &cid)
value_type * data() const noexcept
std::array< std::uint8_t, internal::p4est::functions< 2 >::max_level > child_indices
bool operator==(const CellId &other) const
bool is_ancestor_of(const CellId &other) const
unsigned int n_child_indices
void serialize(Archive &ar, const unsigned int version)
binary_type to_binary() const
ArrayView< const std::uint8_t > get_child_indices() const
friend std::ostream & operator<<(std::ostream &os, const CellId &cid)
bool operator!=(const CellId &other) const
std::string to_string() const
bool operator<(const CellId &other) const
types::coarse_cell_id get_coarse_cell_id() const
types::coarse_cell_id coarse_cell_id
std::array< unsigned int, 4 > binary_type
friend std::istream & operator>>(std::istream &is, CellId &cid)
bool is_parent_of(const CellId &other) const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_CXX20_REQUIRES(condition)
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcMessage(std::string arg1)