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 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_boundary, bool is_local_or_reflecting, bool is_delayed_or_angle_dependent)
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_or_reflecting – Flag indicating if the index is in a local bank or reflecting boundary.
is_delayed_or_angle_dependent – Flag indicating if the index is in a delayed bank or an angle dependent boundary.
loc_index – Index into delayed/non-delayed location dependencies/successors vector for non-local nodes. Cannot exceed 2^21 - 1.
-
inline bool IsDelayed() const noexcept
Check if the current index corresponds to a delayed bank.
-
inline bool IsAngleDependent() const noexcept
Check if the current index corresponds to an angle dependent boundary.
-
inline bool IsLocal() const noexcept
Check if the current index corresponds to a local bank.
-
inline bool IsReflecting() const noexcept
Check if the current index corresponds to a reflecting boundary.
-
inline std::uint64_t GetIndex() const noexcept
Get the index into the bank.