1#ifndef included_AMP_MeshID
2#define included_AMP_MeshID
36 constexpr MeshID(
unsigned int root,
unsigned int local_id )
37 :
data( ( static_cast<uint64_t>( root ) << 32 ) + local_id )
47 uint64_t d1 =
data & 0xFFFF;
48 uint64_t d2 = (
data >> 16 ) & 0xFFFF;
49 uint64_t d3 = (
data >> 32 ) & 0xFFFF;
50 uint64_t d4 =
data >> 48;
51 uint64_t tmp = ( d1 << 48 ) | ( d3 << 32 ) | ( d2 << 16 ) | d4;
52 return 0xF958F86D61D1B36B ^ tmp;
62 constexpr bool isNull()
const {
return data == 0xFFFFFFFFFFFFFFFF; }
86 uint32_t owner_rank_id )
90 uint32_t tmp = 0x00000000;
94 tmp += ( 0x007FFFFF & owner_rank_id ) << 8;
96 tmp +=
static_cast<uint8_t
>( type_id );
98 data = ( ( (uint64_t) tmp ) << 32 ) + ( (uint64_t) local_ID );
104 return ( (
data ^ rhs.
data ) << 1 ) == 0;
108 return ( (
data ^ rhs.
data ) << 1 ) != 0;
112 return (
data << 1 ) >= ( rhs.
data << 1 );
116 return (
data << 1 ) <= ( rhs.
data << 1 );
120 return (
data << 1 ) > ( rhs.
data << 1 );
124 return (
data << 1 ) < ( rhs.
data << 1 );
130 constexpr unsigned int local_id()
const {
return data & 0x00000000FFFFFFFF; }
131 constexpr unsigned int owner_rank()
const {
return (
data >> 40 ) & 0x007FFFFF; }
132 constexpr bool isNull()
const {
return data == 0x000000FFFFFFFFFF; }
136 data |= 0x8000000000000000;
138 data &= 0x7FFFFFFFFFFFFFFF;
162 bool isLocal,
GeomType type,
unsigned int local_ID,
unsigned int rank,
MeshID mesh_ID )
std::string to_string(GeomType x)
GeomType
Enumeration for basic mesh-based quantities.
std::ostream & operator<<(std::ostream &out, GeomType x)
GeomType operator-(GeomType, int) noexcept
GeomType operator+(GeomType, int) noexcept
A structure used to identify an element within a mesh.
constexpr bool is_local() const
constexpr unsigned int owner_rank() const
constexpr GeomType type() const
constexpr bool operator==(const ElementID &rhs) const
constexpr bool operator<=(const ElementID &rhs) const
constexpr bool isNull() const
constexpr ElementID(uint64_t id)
constexpr unsigned int local_id() const
constexpr bool operator!=(const ElementID &rhs) const
constexpr uint64_t getData() const
constexpr void set_is_local(bool isLocal)
constexpr bool operator>=(const ElementID &rhs) const
constexpr bool operator<(const ElementID &rhs) const
constexpr ElementID(bool isLocal, GeomType type_id, uint32_t local_ID, uint32_t owner_rank_id)
constexpr bool operator>(const ElementID &rhs) const
A structure used to identify the mesh element.
constexpr bool is_local() const
constexpr bool operator==(const MeshElementID &rhs) const
constexpr bool operator<=(const MeshElementID &rhs) const
constexpr ElementID elemID() const
constexpr MeshElementID(MeshID mesh_ID, ElementID elem_id)
constexpr bool operator>=(const MeshElementID &rhs) const
constexpr void set_is_local(bool isLocal)
constexpr MeshElementID()
constexpr GeomType type() const
constexpr bool operator!=(const MeshElementID &rhs) const
constexpr MeshID meshID() const
constexpr bool operator>(const MeshElementID &rhs) const
constexpr unsigned int owner_rank() const
constexpr unsigned int local_id() const
constexpr bool isNull() const
constexpr bool operator<(const MeshElementID &rhs) const
constexpr void resetElemID(ElementID elem_id)
constexpr MeshElementID(bool isLocal, GeomType type, unsigned int local_ID, unsigned int rank, MeshID mesh_ID)
A structure used to identify the mesh.
constexpr bool operator<(const MeshID &rhs) const
constexpr MeshID(unsigned int root, unsigned int local_id)
constexpr bool isNull() const
constexpr bool operator==(const MeshID &rhs) const
constexpr MeshID(uint64_t id)
constexpr int getRoot() const
constexpr bool operator!=(const MeshID &rhs) const
constexpr uint64_t getData() const
constexpr bool operator>=(const MeshID &rhs) const
constexpr int getLocalID() const
constexpr bool operator<=(const MeshID &rhs) const
constexpr uint64_t getHash() const
constexpr bool operator>(const MeshID &rhs) const