ParMooN
 All Classes Functions Variables Friends Pages
FESpace2D.h
1 // =======================================================================
2 // @(#)FESpace2D.h 1.5 06/13/00
3 //
4 // Class: TFESpace2D
5 // Purpose: class for all 2D finite element spaces
6 //
7 // Author: Gunar Matthies (03.11.97)
8 //
9 // History: start of implementation 03.11.97 (Gunar Matthies)
10 //
11 // split FESpace into TFESpacexD
12 // 15.04.1998 (Volker Behns)
13 //
14 // start of reimplementation
15 // 30.07.98 (Gunar Matthies)
16 //
17 // =======================================================================
18 
19 #ifndef __FESPACE2D__
20 #define __FESPACE2D__
21 
22 #include <FESpace.h>
23 #include <FE2D.h>
24 
25 class THangingNode;
26 
28 class TFESpace2D : public TFESpace
29 {
30  protected:
33 
36 
40 
42  FE2D *UsedElements;
43 
46 
49 
51  FE2D *AllElements;
52 
54  BoundCondFunct2D *BoundCondition;
55 
56 #ifdef __MORTAR__
57 
59 #endif
60 
62  int N_IntlPts;
63 
65  double *X_Intl;
66 
68  double *Y_Intl;
69 
73 
74 
75  public:
77  TFESpace2D(TCollection *coll, char *name, char *description);
78 
80  // if no mortar is used, the last argument can be set to NULL
81  TFESpace2D(TCollection *coll, char *name, char *description,
82  BoundCondFunct2D *BoundaryCondition, int k,
83  TCollection *mortarcoll);
84 
85  TFESpace2D(TCollection *coll, char *name, char *description,
86  BoundCondFunct2D *BoundaryCondition, SpaceType type,
87  int k, TCollection *mortarcoll);
88 
90  TFESpace2D(TCollection *coll, char *name, char *description,
91  BoundCondFunct2D *BoundaryCondition,
92  FE2D *fes, TCollection *mortarcoll);
93 
95  ~TFESpace2D();
96 
98  void FindUsedElements();
99 
101  void ConstructSpace(BoundCondFunct2D *BoundaryCondition);
102 
104  int GetN_ActiveDegrees() const
105  { return N_ActiveDegrees; }
106 
108  int GetN_SlaveDegrees() const
109  { return N_SlaveDegrees; }
110 
112  int GetHangingBound() const
113  { return HangingBound; }
114 
116  int GetN_Hanging() const
117  { return N_SlaveDegrees; }
118 
120  FE2D *GetUsedElements() const
121  { return UsedElements; }
122 
125  { return HangingNodeArray; }
126 
128  FE2D GetFE2D(int i, TBaseCell *cell);
129 
131  void GetDOFPosition(int dof, double &x, double &y);
132 
134  void GetDOFPosition(double *x, double *y);
135 
136  void SetIntlPtIndexOfPts(int *intlPtIndexOfPts)
137  { IntlPtIndexOfPts = intlPtIndexOfPts; }
138 
139  int *GetIntlPtIndexOfPts() const
140  { return IntlPtIndexOfPts; }
141 
142  FE2D *GetAllElements() const
143  { return AllElements; }
144 
146  BoundCondFunct2D *GetBoundCondition() const
147  { return BoundCondition; }
148 
149  friend bool operator== (const TFESpace2D &lhs, const TFESpace2D &rhs);
150  friend bool operator!= (const TFESpace2D &lhs, const TFESpace2D &rhs);
151 };
152 
153 #ifdef __MORTAR__
154  double GetLambda(double , double , TVertex *, double , double );
155 #endif // __MORTAR__
156 
157 #endif
FE2D * ElementForShape
Definition: FESpace2D.h:45
BoundCondFunct2D * GetBoundCondition() const
Definition: FESpace2D.h:146
Definition: HangingNode.h:19
int GetN_SlaveDegrees() const
Definition: FESpace2D.h:108
int N_ActiveDegrees
Definition: FESpace2D.h:32
int * IntlPtIndexOfPts
Definition: FESpace2D.h:72
Definition: FESpace2D.h:28
int HangingBound
Definition: FESpace2D.h:39
int GetN_Hanging() const
Definition: FESpace2D.h:116
BoundCondFunct2D * BoundCondition
Definition: FESpace2D.h:54
TCollection * MortarColl
Definition: FESpace2D.h:58
friend bool operator==(const TFESpace2D &lhs, const TFESpace2D &rhs)
Definition: FESpace2D.C:2492
~TFESpace2D()
Definition: FESpace2D.C:2217
TFESpace2D(TCollection *coll, char *name, char *description)
Definition: FESpace2D.C:45
store cells in an array, used by cell iterators
Definition: Collection.h:18
FE2D * GetUsedElements() const
Definition: FESpace2D.h:120
Definition: FESpace.h:30
FE2D * UsedElements
Definition: FESpace2D.h:42
friend bool operator!=(const TFESpace2D &lhs, const TFESpace2D &rhs)
Definition: FESpace2D.C:2510
FE2D GetFE2D(int i, TBaseCell *cell)
Definition: FESpace2D.C:1184
FE2D * AllElements
Definition: FESpace2D.h:51
void GetDOFPosition(int dof, double &x, double &y)
Definition: FESpace2D.C:2355
information for finite element data structure
Definition: BaseCell.h:25
double * Y_Intl
Definition: FESpace2D.h:68
double * X_Intl
Definition: FESpace2D.h:65
Definition: Vertex.h:19
THangingNode ** GetHangingNodes() const
Definition: FESpace2D.h:124
int N_IntlPts
Definition: FESpace2D.h:62
void FindUsedElements()
Definition: FESpace2D.C:1196
int GetN_ActiveDegrees() const
Definition: FESpace2D.h:104
int N_SlaveDegrees
Definition: FESpace2D.h:35
void ConstructSpace(BoundCondFunct2D *BoundaryCondition)
Definition: FESpace2D.C:1229
int GetHangingBound() const
Definition: FESpace2D.h:112
THangingNode ** HangingNodeArray
Definition: FESpace2D.h:48