ParMooN
 All Classes Functions Variables Friends Pages
Joint.h
1 // =======================================================================
2 // @(#)Joint.h 1.7 11/15/99
3 //
4 // Class: TJoint
5 // Purpose: superclass for edges and faces
6 //
7 // Author: Volker Behns 23.07.97
8 //
9 // History: Add method for getting a certain neighbour
10 // (Gunar Matthies 17.10.97)
11 //
12 // =======================================================================
13 
14 #ifndef __JOINT__
15 #define __JOINT__
16 
17 #include <AllClasses.h>
18 #include <Constants.h>
19 #include <Mapper.h>
20 
21 #ifndef __3D__
22  #define MAXN_nVpoJ 3
23  #define MAXN_nJpoJ 2
24 #else
25  #define MAXN_nVpoJ 9
26  #define MAXN_nJpoJ 4
27 #endif
28 
29 struct StoreGeom
30 {
31  TVertex *Vertices[MAXN_nVpoJ];
32  TJoint *Joints[MAXN_nJpoJ];
33  bool Filled;
34 };
35 
36 #ifdef __MORTAR__
38  {
39  TVertex **Vertices;
40  TJoint **Joints;
41  bool Filled;
42  };
43 
45 #endif
46 
48 class TJoint
49 {
50  protected:
51  JointType ID;
52 
57 
59  int ClipBoard;
60 
62  int NeibSubDomainLocalJointNo;
63 
64 
65 #ifdef __3D__
66  int MapType;
67 #endif
68 
69  public:
70  // Constructors
71  TJoint();
72 
73  // Methods
75  JointType GetType()
76  { return ID; }
77 
78  void ChangeType(JointType New_ID)
79  {ID = New_ID;}
80 
81 #ifdef __3D__
82 
83  void SetMapType();
84 
86  void SetMapType(int maptype)
87  { MapType = maptype; }
88 
90  int GetMapType() const
91  { return MapType; }
92 
95 #endif
96 
99  virtual int CheckMatchingRef(TBaseCell *Me, int J_i,
100  struct StoreGeom &Tmp) = 0;
101 
102  #ifdef __MORTAR__
103 
105  virtual int CheckMatchingRef(TBaseCell *Me, int J_i,
106  StoreGeomMortar &Tmp) = 0;
107  #endif
108 
110  virtual TJoint *NewInst(double T_0, double T_1, TBaseCell *Me) = 0;
111  virtual TJoint *NewInst() = 0;
112 
114  int SetNeighbour(TBaseCell *Neighb);
116  TBaseCell *GetNeighbour(TBaseCell *Me) const;
117 
119  int SetNeighbour(int i, TBaseCell *Neighb);
121  TBaseCell *GetNeighbour(int i) const;
122 
124  void Delete(TBaseCell *Neighb);
125 
127  TBaseCell *GetNeighb(int i) const
128  { return(i ? Neighb1 : Neighb0); }
129 
131  virtual bool InnerJoint() const = 0;
132 
133  #ifdef __3D__
134 
135  void GetMapperRef(const int *&MapVerts, const int *&MapFaces);
136 
138  void GetMapperOrig(const int *&MapVerts, const int *&MapEdges);
139  #endif
140 
142  void SetClipBoard(int value)
143  { ClipBoard=value; }
146  { return ClipBoard; }
147 
148  void SetNeibSubDomainLocalJointNo(int value)
149  { NeibSubDomainLocalJointNo = value; }
150 
151  int GetNeibSubDomainLocalJointNo()
152  { return NeibSubDomainLocalJointNo; }
153 
154  // Destructor
155  virtual ~TJoint();
156 
157 };
158 
159 #endif
void SetMapType()
Definition: Joint.C:107
Definition: Joint.h:29
int SetNeighbour(TBaseCell *Neighb)
Definition: Joint.C:31
JointType GetType()
Definition: Joint.h:75
int GetClipBoard()
Definition: Joint.h:145
Definition: Joint.h:37
void Delete(TBaseCell *Neighb)
Definition: Joint.C:98
void SetMapType(int maptype)
Definition: Joint.h:86
int GetNeighbourEdgeIndex(TBaseCell *, int)
Definition: Joint.C:203
TBaseCell * GetNeighb(int i) const
Definition: Joint.h:127
int ClipBoard
Definition: Joint.h:59
int GetMapType() const
Definition: Joint.h:90
void GetMapperOrig(const int *&MapVerts, const int *&MapEdges)
Definition: Joint.C:181
Definition: Joint.h:48
TBaseCell * Neighb0
Definition: Joint.h:54
virtual bool InnerJoint() const =0
TBaseCell * GetNeighbour(TBaseCell *Me) const
Definition: Joint.C:57
void SetClipBoard(int value)
Definition: Joint.h:142
TBaseCell * Neighb1
Definition: Joint.h:56
information for finite element data structure
Definition: BaseCell.h:25
Definition: Vertex.h:19
void GetMapperRef(const int *&MapVerts, const int *&MapFaces)
Definition: Joint.C:158
virtual int CheckMatchingRef(TBaseCell *Me, int J_i, struct StoreGeom &Tmp)=0