Class AAHD_NodeIndex

Inheritance Relationships

Base Type

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 (1 at 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.