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 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_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.