Class AngleSet

Inheritance Relationships

Derived Types

Class Documentation

class AngleSet

Subclassed by opensn::AAH_AngleSet, opensn::CBC_AngleSet

Public Functions

inline AngleSet(size_t id, size_t num_groups, const SPDS &spds, std::shared_ptr<FLUDS> &fluds, const std::vector<size_t> &angle_indices, std::map<uint64_t, std::shared_ptr<SweepBoundary>> &boundaries, bool use_gpu)
inline size_t GetID() const

Returns the angleset’s unique id.

inline const SPDS &GetSPDS() const

Returns a reference to the associated spds.

inline FLUDS &GetFLUDS()

Returns a reference to the associated fluds_.

inline const std::vector<std::uint32_t> &GetAngleIndices() const

Returns the angle indices associated with this angleset.

inline std::map<uint64_t, std::shared_ptr<SweepBoundary>> &GetBoundaries()

Returns the angle indices associated with this angleset.

inline size_t GetNumGroups() const
inline size_t GetNumAngles() const
inline void *GetMemoryPin()
inline virtual AsynchronousCommunicator *GetCommunicator()
virtual void InitializeDelayedUpstreamData() = 0

Initializes delayed upstream data. This method gets called when a sweep scheduler is constructed.

virtual int GetMaxBufferMessages() const = 0

Returns the maximum buffer size from the sweepbuffer.

virtual void SetMaxBufferMessages(int new_max) = 0

Sets the maximum buffer size for the sweepbuffer.

virtual AngleSetStatus AngleSetAdvance(SweepChunk &sweep_chunk, AngleSetStatus permission) = 0

This function advances the work stages of an angleset.

virtual AngleSetStatus FlushSendBuffers() = 0
virtual void ResetSweepBuffers() = 0

Resets the sweep buffer.

virtual bool ReceiveDelayedData() = 0

Instructs the sweep buffer to receive delayed data.

virtual const double *PsiBoundary(uint64_t boundary_id, unsigned int angle_num, uint64_t cell_local_id, unsigned int face_num, unsigned int fi, int g, bool surface_source_active) = 0

Returns a pointer to a boundary flux data.

virtual double *PsiReflected(uint64_t boundary_id, unsigned int angle_num, uint64_t cell_local_id, unsigned int face_num, unsigned int fi) = 0

Returns a pointer to outbound reflected flux data.

void InitializeMemoryPin()

Initialize memory pinning manager.

void ResetMemoryPin()

Reset memory pinning manager.

virtual ~AngleSet()

Protected Attributes

const size_t id_
const size_t num_groups_
const SPDS &spds_
std::shared_ptr<FLUDS> fluds_
std::vector<std::uint32_t> angles_
std::map<uint64_t, std::shared_ptr<SweepBoundary>> &boundaries_
bool executed_ = false
void *memory_pin_ = nullptr