Class AAH_ASynchronousCommunicator
Defined in File aah_async_comm.h
Inheritance Relationships
Base Type
public opensn::AsynchronousCommunicator
(Class AsynchronousCommunicator)
Class Documentation
-
class AAH_ASynchronousCommunicator : public opensn::AsynchronousCommunicator
Handles interprocess communication related to sweeping.
Public Functions
-
AAH_ASynchronousCommunicator(FLUDS &fluds, size_t num_groups, size_t num_angles, size_t max_mpi_message_size, const MPICommunicatorSet &comm_set)
-
inline size_t GetMaxNumMessages() const
-
inline void SetMaxNumMessages(size_t count)
-
bool DoneSending() const
-
void InitializeDelayedUpstreamData()
Initializes delayed upstream data. This method gets called when a sweep scheduler is constructed.
-
void InitializeLocalAndDownstreamBuffers()
This is the final level of initialization before a sweep-chunk executes. Once all upstream dependencies are met and if the sweep scheduler places this angleset as “ready-to-execute”, then the angle-set will call this method. It is also fairly important in terms of memory to only allocate these chunks of memory when actually ready to use them since they form the majority of memory usage.
-
void SendDownstreamPsi(int angle_set_num)
Sends downstream psi. This method gets called after a sweep chunk has executed.
-
bool ReceiveDelayedData(int angle_set_num)
Receives delayed data from successor locations.
-
void ClearDownstreamBuffers()
Sends downstream psi.
-
AngleSetStatus ReceiveUpstreamPsi(int angle_set_num)
Check if all upstream dependencies have been met and receives it as it becomes available.
-
void ClearLocalAndReceiveBuffers()
Receive all upstream Psi. This method is called from within an advancement of an angleset, right after execution.
-
void Reset()
Clear flags in preperation for another sweep.
Protected Functions
-
void BuildMessageStructure()
Builds message structure.
Outgoing and incoming data needs to be sub-divided into messages each of which is smaller than the maximum message size. There are three parts to this: predecessors, delayed-predecessors and successors.
This method gets called by an angleset that subscribes to this sweepbuffer.
-
AAH_ASynchronousCommunicator(FLUDS &fluds, size_t num_groups, size_t num_angles, size_t max_mpi_message_size, const MPICommunicatorSet &comm_set)