Chi-Tech
AAH_AsynComm.h
Go to the documentation of this file.
1#ifndef CHI_AAH_ASYNCOMM_H
2#define CHI_AAH_ASYNCOMM_H
3
5#include "chi_mpi.h"
6
7#include "AsyncComm.h"
8
9typedef unsigned long long int u_ll_int;
10
11namespace chi
12{
13class ChiMPICommunicatorSet;
14}
15
17{
18
19class FLUDS;
20
21// ###################################################################
22/**Handles the swift communication of interprocess communication
23 * related to sweeping.*/
25{
26private:
27 const size_t num_groups_;
28 const size_t num_angles_;
29
33
35
36 std::vector<int> prelocI_message_count;
37 std::vector<int> deplocI_message_count;
39
40 std::vector<std::vector<u_ll_int>> prelocI_message_size;
41 std::vector<std::vector<u_ll_int>> deplocI_message_size;
42 std::vector<std::vector<u_ll_int>> delayed_prelocI_message_size;
43
44 std::vector<std::vector<u_ll_int>> prelocI_message_blockpos;
45 std::vector<std::vector<u_ll_int>> deplocI_message_blockpos;
46 std::vector<std::vector<u_ll_int>> delayed_prelocI_message_blockpos;
47
48 std::vector<std::vector<bool>> prelocI_message_received;
49 std::vector<std::vector<bool>> delayed_prelocI_message_received;
50
51 std::vector<std::vector<MPI_Request>> deplocI_message_request;
52
53public:
55
57 size_t num_groups,
58 size_t num_angles,
59 int sweep_eager_limit,
60 const chi::ChiMPICommunicatorSet& in_comm_set);
61 bool DoneSending() const;
64 void SendDownstreamPsi(int angle_set_num);
65 bool ReceiveDelayedData(int angle_set_num);
67 AngleSetStatus ReceiveUpstreamPsi(int angle_set_num);
69 void Reset();
70
71protected:
73};
74} // namespace chi_mesh::sweep_management
75#endif // CHI_AAH_ASYNCOMM_H
unsigned long long int u_ll_int
Definition: AAH_AsynComm.h:9
std::vector< std::vector< u_ll_int > > delayed_prelocI_message_blockpos
Definition: AAH_AsynComm.h:46
std::vector< std::vector< u_ll_int > > delayed_prelocI_message_size
Definition: AAH_AsynComm.h:42
std::vector< std::vector< u_ll_int > > deplocI_message_blockpos
Definition: AAH_AsynComm.h:45
AAH_ASynchronousCommunicator(FLUDS &fluds, size_t num_groups, size_t num_angles, int sweep_eager_limit, const chi::ChiMPICommunicatorSet &in_comm_set)
std::vector< std::vector< bool > > prelocI_message_received
Definition: AAH_AsynComm.h:48
std::vector< std::vector< u_ll_int > > deplocI_message_size
Definition: AAH_AsynComm.h:41
std::vector< std::vector< u_ll_int > > prelocI_message_size
Definition: AAH_AsynComm.h:40
std::vector< std::vector< bool > > delayed_prelocI_message_received
Definition: AAH_AsynComm.h:49
std::vector< std::vector< MPI_Request > > deplocI_message_request
Definition: AAH_AsynComm.h:51
std::vector< std::vector< u_ll_int > > prelocI_message_blockpos
Definition: AAH_AsynComm.h:44