ParMooN
 All Classes Functions Variables Friends Pages
BaseFunct2D.h
1 // =======================================================================
2 // @(#)BaseFunct2D.h 1.5 02/08/00
3 //
4 // Class: TBaseFunct2D
5 //
6 // Purpose: represents the set of base functions for a finite element
7 // in two dimensions
8 //
9 // Author: Gunar Matthies
10 //
11 // History: 08.07.98 restart implementation
12 // // : 10.06.2010 methods for vector basis functions (Sashikumaar Ganesan)
13 // =======================================================================
14 
15 #ifndef __BASEFUNCT2D__
16 #define __BASEFUNCT2D__
17 
18 #include <QuadFormula1D.h>
19 #include <QuadFormula2D.h>
20 #include <Constants.h>
21 #include <GridCell.h>
22 
23 #include <Enumerations.h>
24 
28 {
29  protected:
31  int Dimension;
32 
34  BaseFunct2D BaseFunct;
35 
37  DoubleFunct2D *Functions[N_MultiIndices2D];
38 
40  bool changable;
41 
43  BF2DRefElements RefElement;
44 
47 
49  int Accuracy;
50 
54 
57  int **BF2Change;
58 
61 
64 
65  public:
67  TBaseFunct2D(int dimension, BaseFunct2D basefunct,
68  BF2DRefElements refelement,
69  DoubleFunct2D* functions,
70  DoubleFunct2D* derivativesxi,
71  DoubleFunct2D* derivativeseta,
72  DoubleFunct2D* derivativesxixi,
73  DoubleFunct2D* derivativesxieta,
74  DoubleFunct2D* derivativesetaeta,
75  int polynomialdegree,
76  int accuracy,
77  int n_bf2change,
78  int **bf2change
79  );
80 
82  TBaseFunct2D(int dimension, BaseFunct2D basefunct,
83  BF2DRefElements refelement,
84  DoubleFunct2D* functions,
85  DoubleFunct2D* derivativesxi,
86  DoubleFunct2D* derivativeseta,
87  DoubleFunct2D* derivativesxixi,
88  DoubleFunct2D* derivativesxieta,
89  DoubleFunct2D* derivativesetaeta,
90  int polynomialdegree,
91  int accuracy,
92  int n_bf2change,
93  int **bf2change,
94  int baseVectDim
95  );
96 
97 
98  TBaseFunct2D(int dimension, BaseFunct2D basefunct,
99  BF2DRefElements refelement,
100  DoubleFunct2D* functions,
101  DoubleFunct2D* derivativesxi,
102  DoubleFunct2D* derivativeseta,
103  DoubleFunct2D* derivativesxixi,
104  DoubleFunct2D* derivativesxieta,
105  DoubleFunct2D* derivativesetaeta,
106  int polynomialdegree,
107  int accuracy,
108  int n_bf2change,
109  int **bf2change,
110  bool spaceDeptBasis
111  );
112 
113 
114 
116  TBaseFunct2D(int dimension);
117 
119  int GetDimension() const
120  { return Dimension; }
121 
123  BaseFunct2D GetID() const
124  { return BaseFunct; }
125 
127  void GetDerivatives(MultiIndex2D MultiIndex, double xi,
128  double eta, double *values)
129  { Functions[MultiIndex](xi, eta, values); };
130 
133  void GetDerivatives(MultiIndex2D MultiIndex,
134  TQuadFormula2D *formula, double **values);
135 
137  void GetValues(int N_Points, double *zeta, int i, double **Values);
138 
140  void GetDerivatives(MultiIndex2D MultiIndex, int N_Points,
141  double *zeta, int i, double **Values);
142 
144  void GetValues(int N_Points, double *zeta, int i,
145  MultiIndex2D index, double **Values);
146 
149  { changable = false; };
150 
152  void SetFunction(MultiIndex2D MultiIndex, DoubleFunct2D* function);
153 
155  void MakeRefElementData(QuadFormula1D QuadFormula);
156 
158  void MakeRefElementData(QuadFormula2D QuadFormula);
159 
162 
164  BF2DRefElements GetRefElement() const
165  { return RefElement; };
166 
169  { return PolynomialDegree; };
170 
172  int GetAccuracy() const
173  { return Accuracy; };
174 
176  int GetN_BF2Change() const
177  { return N_BF2Change; }
178 
180  int **GetBF2Change() const
181  { return BF2Change; }
182 
184  void ChangeBF(TCollection *Coll, TBaseCell *Cell, double *Values);
185 
187  void ChangeBF(TCollection *Coll, TBaseCell *Cell, int N_Points, double **Values);
188 
190  int GetBaseVectDim() const
191  { return BaseVectDim; }
192 
193 
194 };
195 
196 #endif
TGridCell * GenerateRefElement()
Definition: BaseFunct2D.C:613
int ** GetBF2Change() const
Definition: BaseFunct2D.h:180
int N_BF2Change
Definition: BaseFunct2D.h:53
bool SpaceDeptBasis
Definition: BaseFunct2D.h:63
int GetPolynomialDegree() const
Definition: BaseFunct2D.h:168
void ChangeBF(TCollection *Coll, TBaseCell *Cell, double *Values)
Definition: BaseFunct2D.C:674
void SetUnchangable()
Definition: BaseFunct2D.h:148
int GetN_BF2Change() const
Definition: BaseFunct2D.h:176
BaseFunct2D GetID() const
Definition: BaseFunct2D.h:123
TBaseFunct2D(int dimension, BaseFunct2D basefunct, BF2DRefElements refelement, DoubleFunct2D *functions, DoubleFunct2D *derivativesxi, DoubleFunct2D *derivativeseta, DoubleFunct2D *derivativesxixi, DoubleFunct2D *derivativesxieta, DoubleFunct2D *derivativesetaeta, int polynomialdegree, int accuracy, int n_bf2change, int **bf2change)
Definition: BaseFunct2D.C:23
DoubleFunct2D * Functions[N_MultiIndices2D]
Definition: BaseFunct2D.h:37
Definition: QuadFormula2D.h:22
void SetFunction(MultiIndex2D MultiIndex, DoubleFunct2D *function)
Definition: BaseFunct2D.C:398
int GetDimension() const
Definition: BaseFunct2D.h:119
int Accuracy
Definition: BaseFunct2D.h:49
store cells in an array, used by cell iterators
Definition: Collection.h:18
void GetValues(int N_Points, double *zeta, int i, double **Values)
Definition: BaseFunct2D.C:169
bool changable
Definition: BaseFunct2D.h:40
void MakeRefElementData(QuadFormula1D QuadFormula)
Definition: BaseFunct2D.C:407
int ** BF2Change
Definition: BaseFunct2D.h:57
int Dimension
Definition: BaseFunct2D.h:31
information for finite element data structure
Definition: BaseCell.h:25
int GetBaseVectDim() const
Definition: BaseFunct2D.h:190
Definition: BaseFunct2D.h:27
int BaseVectDim
Definition: BaseFunct2D.h:60
int PolynomialDegree
Definition: BaseFunct2D.h:46
BF2DRefElements RefElement
Definition: BaseFunct2D.h:43
BaseFunct2D BaseFunct
Definition: BaseFunct2D.h:34
int GetAccuracy() const
Definition: BaseFunct2D.h:172
represent geometric information of the cell
Definition: GridCell.h:15
BF2DRefElements GetRefElement() const
Definition: BaseFunct2D.h:164
void GetDerivatives(MultiIndex2D MultiIndex, double xi, double eta, double *values)
Definition: BaseFunct2D.h:127