Class AAHD_NodeIndex
Defined in File aahd_structs.h
Inheritance Relationships
Base Type
public opensn::NodeIndex(Class NodeIndex)
Class Documentation
-
class AAHD_NodeIndex : public opensn::NodeIndex
64-bit integer encoding the index and the bank information of a face node.
Note
The index must follow strict mutual-exclusion rules:
Always check boundary status BEFORE local status. Boundary instances are assigned as local, but their locations are actually set to an undefined value.
Boundary and delayed status are mutually exclusive. Both cannot be true at the same time.
Boundary and non-local status are mutually exclusive. Both cannot be true at the same time.
Non-local outgoing and delayed status are mutually exclusive. The sweep scheduler does not distinguish between delayed and non-delayed non-local outgoing faces. For non-local outgoing faces, delayed status is always set to false.
Index bits
/ / / Index bit mask (
1at the last 60 bits).Public Functions
-
constexpr AAHD_NodeIndex() = default
Default constructor.
-
inline constexpr AAHD_NodeIndex(const std::uint64_t &value)
Direct assign core value.
-
inline AAHD_NodeIndex(std::uint64_t index, bool is_outgoing, bool is_local, bool is_delayed)
Construct a non-boundary node index.
- Parameters:
index – Index into the corresponding bank. Cannot exceed 2^60 - 1.
is_outgoing – Flag indicating if the node corresponds to an outgoing face.
is_local – Flag indicating if the index is in a local bank.
is_delayed – Flag indicating if the index is in a delayed bank.
loc_index – Index into delayed/non-delayed location dependencies/successors vector for non-local nodes. Cannot exceed 2^21 - 1.
-
inline AAHD_NodeIndex(std::uint64_t index, bool is_outgoing)
Construct a boundary node index.
- Parameters:
index – Index into the corresponding bank. Cannot exceed 2^40 - 1.
is_outgoing – Flag indicating if the node corresponds to an outgoing face.
-
inline bool IsDelayed() const noexcept
Check if the current index corresponds to a delayed bank.
-
inline bool IsLocal() const noexcept
Check if the current index corresponds to a local bank.
-
inline std::uint64_t GetIndex() const noexcept
Get the index into the bank.