ParMooN
 All Classes Functions Variables Friends Pages
ParFECommunicator3D.h
1 // =======================================================================
2 // @(#)ParFECommunicator3D.h
3 //
4 // Class: TParFECommunicator3D
5 // Purpose: Class containing communication routines
6 //
7 // Author: Sashikumaar Ganesan (24.04.15)
8 //
9 // History: Start of implementation 24.04.15 (Sashikumaar Ganesan)
10 //
11 // =======================================================================
12 
13 #ifdef _MPI
14 
15 #ifndef __PARFECOMMUNICATOR3D__
16 #define __PARFECOMMUNICATOR3D__
17 
18 #include "mpi.h"
19 
20 #include <ParFEMapper3D.h>
21 #include <FESpace3D.h>
22 #include <SquareStructure.h>
23 #include <SquareStructure3D.h>
24 
26 {
27  protected:
28  TParFEMapper3D *Mapper;
29 
30  int N_Dim;
31 
32  int N_Dof;
33 
34  int N_SendDof, N_SendDofMS, N_SendDofH1, N_SendDofH2;
35 
36  double *Send_Info, *Send_InfoMS, *Send_InfoH1, *Send_InfoH2;
37 
38  double *Recv_Info, *Recv_InfoMS, *Recv_InfoH1, *Recv_InfoH2;
39 
40  int *N_DofSend, *N_DofSendMS, *N_DofSendH1, *N_DofSendH2;
41 
42  int *N_DofRecv, *N_DofRecvMS, *N_DofRecvH1, *N_DofRecvH2;
43 
44  int *sdispl, *sdisplMS, *sdisplH1, *sdisplH2;
45 
46  int *rdispl, *rdisplMS, *rdisplH1, *rdisplH2;
47 
48  int *DofSend, *DofSendMS, *DofSendH1, *DofSendH2;
49 
50  int *DofRecv, *DofRecvMS, *DofRecvH1, *DofRecvH2;
51 
52  int N_Slave, N_InterfaceS, N_Halo1, N_Halo2;
53 
54  MPI_Comm Comm;
55 
56  int *Master;
57 
58  public:
60 
62 
64 
65  void CommUpdateMS(double *sol);
66 
67  void CommUpdateH1(double *sol);
68 
69  void CommUpdateH2(double *sol);
70 
71  void CommUpdate_M_H1(double *sol);
72 
73  void CommUpdate(double *sol);
74 
75  void CommUpdateReduce(double *rhs);
76 
77  void CommUpdate(double *sol, double *rhs);
78 
79  void GatherToRoot(double *&GlobalArray, int &GolabalSize, double *LocalArray, int LocalSize, int root);
80 
81  void ScatterFromRoot(double *GlobalArray, int &GlobalSize, double *LocalArray, int LocalSize, int root);
82 
83  int *GetMaster()
84  {return Master;}
85 
86  int GetNDof()
87  {return N_Dof;}
88 
89  int* Get_Local2Global()
90  { return Mapper->Get_Local2Global();}
91 
92  int GetN_Master()
93  { return Mapper->GetN_Master();}
94 
95 };
96 
97 #endif
98 #endif
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
Definition: ParFEMapper3D.h:24
void CommUpdateReduce(double *rhs)
Definition: ParFECommunicator3D.C:243
Definition: ParFECommunicator3D.h:25