ParMooN
 All Classes Functions Variables Friends Pages
Edge.h
1 // =======================================================================
2 // @(#)Edge.h
3 //
4 // Class: TEdge
5 // Purpose: superclass for edges in 3D
6 //
7 // Author: Sashikumaar Ganesan 03.09.2010
8 //
9 // History:
10 //
11 // =======================================================================
12 
13 #ifndef __EDGE__
14 #define __EDGE__
15 
16 #include <Vertex.h>
17 #include <BaseCell.h>
18 #include <MooNMD_Io.h>
19 #include <Constants.h>
20 
22 class TEdge
23 {
24  protected:
25  JointType EdgeID;
26 
28  int N_Neibs;
29 
32 
34  int ClipBoard;
35 
36 #ifdef _MPI
37 
39 
43 
46 
49 
52 
55 
58 
61 
64 #endif
65 
66  public:
67  // Constructors
68  TEdge(int n_Neibs, TBaseCell **neighbs);
69 
70  // methods
72  JointType GetType()
73  { return EdgeID; }
74 
76  void SetClipBoard(int value)
77  { ClipBoard=value; }
80  { return ClipBoard; }
81 
82 #ifdef _MPI
83 
84  void InitSubDomainInfo(int rank);
85 
86  void SetAsNotCrossEdgeFor(int rank, int Neib_ID);
87 
88  void SetCrossNeibInfo(TVertex *Vert_a);
89 
90  bool IsSubDomainEdge()
91  {return SubDomainEdge;}
92 
93 // void SetAsSubDomainCrossEdge()
94 // {SubDomainCrossEdge = TRUE;}
95 
96  bool IsSubDomainCrossEdge()
97  {return SubDomainCrossEdge;}
98 
99  void GetNeibs(int &n_Neibs, TBaseCell **&neighbs)
100  {
101  n_Neibs = N_Neibs;
102  neighbs = Neighbs;
103  }
104 
105  int GetN_CrossNeibs()
106  {return N_CrossNeibs; }
107 
108  void GetNeibSubDomainRanks(int &n_SubDomainNeibs, int *&subDomainNeibsRank)
109  {
110  n_SubDomainNeibs = N_SubDomainNeibs;
111  subDomainNeibsRank = SubDomainNeibsRank;
112  }
113 
114  void GetCrossEdgeNeibs(int &n_CrossNeibs, int *&crossNeibsRank)
115  {
116  n_CrossNeibs = N_CrossNeibs;
117  crossNeibsRank = CrossNeibsRank;
118  }
119 
120  void GetCrossEdgeNeibs(int &n_CrossNeibs, int *&crossNeibsRank, int *&crossNeibsGlobalNo,
121  int *&crossNeibsLocalEdgeNo, int *&crossEdgeMaptype);
122 
123 #endif
124 
125  // Destructor
126  ~TEdge();
127 
128 };
129 
130 #endif
int GetClipBoard()
Definition: Edge.h:79
TEdge(int n_Neibs, TBaseCell **neighbs)
Definition: Edge.C:23
int * CrossEdgeMaptype
Definition: Edge.h:63
bool SubDomainCrossEdge
Definition: Edge.h:42
bool SubDomainEdge
Definition: Edge.h:38
int N_CrossNeibs
Definition: Edge.h:54
int * SubDomainNeibsRank
Definition: Edge.h:48
int ClipBoard
Definition: Edge.h:34
int * CrossNeibsRank
Definition: Edge.h:57
int * CrossNeibsGlobalNo
Definition: Edge.h:51
int N_Neibs
Definition: Edge.h:28
information for finite element data structure
Definition: BaseCell.h:25
JointType GetType()
Definition: Edge.h:72
int N_SubDomainNeibs
Definition: Edge.h:45
void SetClipBoard(int value)
Definition: Edge.h:76
Definition: Vertex.h:19
TBaseCell ** Neighbs
Definition: Edge.h:31
int * CrossNeibsLocalEdgeNo
Definition: Edge.h:60
Definition: Edge.h:22