ParMooN
 All Classes Functions Variables Friends Pages
FEDatabase3D.h
1 // =======================================================================
2 // %W% %G%
3 //
4 // Class: TFEDatabase3D
5 // Purpose: store all used information for a FEM for 3D
6 //
7 // Author: Gunar Matthies 26.11.99
8 //
9 // =======================================================================
10 
11 #ifndef __FEDATABASE3D__
12 #define __FEDATABASE3D__
13 
14 #include <Constants.h>
15 #include <Enumerations.h>
16 
17 #include <BaseFunct3D.h>
18 #include <FEDesc3D.h>
19 #include <FE3D.h>
20 #include <FE3DMapper1Reg.h>
21 
22 #include <QuadFormula1D.h>
23 #include <QuadFormulaHexa.h>
24 #include <QuadFormulaTetra.h>
25 #include <QuadFormulaTria.h>
26 #include <QuadFormulaQuad.h>
27 
30 {
31  protected:
32 //======================================================================
33 // 1D data
34 //======================================================================
36  static TQuadFormula1D *QuadFormulas1D[N_QuadFormulas_1D];
37 
39  static QuadFormula1D QFLineFromDegree[MAXDEGREE];
40 
42  static int HighestAccuracyLine;
43 
44 //======================================================================
45 // 2D arrays for easier access of information
46 //======================================================================
48  static TQuadFormula2D *QuadFormulas2D[N_QuadFormulas_2D];
49 
51  static QuadFormula2D QFTriaFromDegree[MAXDEGREE];
52 
54  static QuadFormula2D QFQuadFromDegree[MAXDEGREE];
55 
56 //======================================================================
57 // 3D arrays for easier access of information
58 //======================================================================
60  static QuadFormula3D QFTetraFromDegree[MAXDEGREE];
61 
63  static QuadFormula3D QFHexaFromDegree[MAXDEGREE];
64 
66  static QuadFormula3D QFConvolutionHexaFromDegree[MAXDEGREE];
67 
69  static FEDesc3D FEDesc3D_IDFromFE3D[N_FEs3D];
70 
72  static TFEDesc3D *FEDesc3DFromFE3D[N_FEs3D];
73 
75  static BaseFunct3D BaseFunct3D_IDFromFE3D[N_FEs3D];
76 
78  static int N_BaseFunctFromFE3D[N_FEs3D];
79 
81  static int PolynomialDegreeFromFE3D[N_FEs3D];
82 
84  static int AccuracyFromFE3D[N_FEs3D];
85 
88 
90  static NodalFunctional3D NodalFunctional3D_IDFromFE3D[N_FEs3D];
91 
94 
96  static RefTrans3D RefTrans3D_IDFromFE3D[N_FEs3D];
97 
99  static BF3DRefElements RefElementFromFE3D[N_FEs3D];
100 
101 //======================================================================
102 // 3D data
103 //======================================================================
105  static TQuadFormula3D *QuadFormulas3D[N_QuadFormulas_3D];
106 
108  static TFE3D *FEs3D[N_FEs3D];
109 
111  static TFEDesc3D *FEDescs3D[N_FEDescs3D];
112 
114  static TBaseFunct3D *BaseFuncts3D[N_BaseFuncts3D];
115 
117  static TNodalFunctional3D *NodalFunctionals3D[N_NodalFunctionals3D];
118 
120  static TFE3DMapper *FE3DMapper[N_FEDescs3D][N_FEDescs3D];
121 
123  static TFE3DMapper1Reg *FE3DMapper1Reg[N_FEDescs3D][N_FEDescs3D];
124 
126  static THNDesc *HNDescs3D[N_HNDescs];
127 
129  static TRefTrans3D *ReferenceTrans3D[N_RefTrans3D];
130 
132  static double *ProlongationMatrix3D[MaxN_BaseFunctions3D]
133  [N_REFDESC][MaxN_BaseFunctions3D][MAXN_CHILDREN];
134 
136  static double *RestrictionMatrix3D[MaxN_BaseFunctions3D]
137  [N_REFDESC][MaxN_BaseFunctions3D][MAXN_CHILDREN];
138 
139 //======================================================================
140 // method only used by constructor
141 //======================================================================
142  protected:
144  static void RegisterAllQuadFormulas();
145 
147  static void RegisterAllFEDescs();
148 
150  static void RegisterAllBaseFunctions();
151 
153  static void RegisterAllNodalFunctionals();
154 
156  static void RegisterAllFEs();
157 
159  static void RegisterAllFEMappers();
160 
162  static void RegisterAllHangingNodes();
163 
165  static void RegisterAllRefTrans();
166 
168  static void GenerateArrays();
169 
172  static double **RefElementValues3D[N_BaseFuncts3D][N_QuadFormulas_3D]
173  [N_MultiIndices3D];
174 
177  static double **JointValues3D[N_BaseFuncts3D][N_QuadFormulas_2D]
178  [MAXN_JOINTS];
179 
182  static double **JointDerivatives3D[N_BaseFuncts3D][N_QuadFormulas_2D]
183  [MAXN_JOINTS][N_MultiIndices3D];
184 
187  static double **OrigElementValues3D[N_BaseFuncts3D][N_MultiIndices3D];
188 
189 
190 //======================================================================
191 // constructor
192 //======================================================================
193  public:
195  TFEDatabase3D();
196 //======================================================================
197 // QuadFormula1D
198 //======================================================================
199  static TQuadFormula1D *GetQuadFormula1D(QuadFormula1D QF)
200  { return QuadFormulas1D[QF]; };
201 
203  static void RegisterQuadFormula1D(QuadFormula1D QF,
204  TQuadFormula1D *QuadForm)
205  { QuadFormulas1D[QF] = QuadForm; };
206 
208  static QuadFormula1D GetQFLineFromDegree(int accuracy)
209  {
210  if(accuracy<=HighestAccuracyLine)
211  return QFLineFromDegree[accuracy];
212  else
214  };
215 
216 //======================================================================
217 // QuadFormula2D
218 //======================================================================
220  static TQuadFormula2D *GetQuadFormula2D(QuadFormula2D QF)
221  { return QuadFormulas2D[QF]; };
222 
224  static void RegisterQuadFormula2D(QuadFormula2D QF,
225  TQuadFormula2D *QuadForm)
226  { QuadFormulas2D[QF] = QuadForm; };
227 
229  static QuadFormula2D GetQFTriaFromDegree(int accuracy)
230  { return QFTriaFromDegree[accuracy]; };
231 
233  static QuadFormula2D GetQFQuadFromDegree(int accuracy)
234  { return QFQuadFromDegree[accuracy]; };
235 
236 //======================================================================
237 // QuadFormula3D
238 //======================================================================
240  static TQuadFormula3D *GetQuadFormula3D(QuadFormula3D QF)
241  { return QuadFormulas3D[QF]; };
242 
244  static void RegisterQuadFormula3D(QuadFormula3D QF,
245  TQuadFormula3D *QuadForm)
246  { QuadFormulas3D[QF] = QuadForm; };
247 
249  static QuadFormula3D GetQFTetraFromDegree(int accuracy)
250  { return QFTetraFromDegree[accuracy]; };
251 
253  static QuadFormula3D GetQFHexaFromDegree(int accuracy)
254  { return QFHexaFromDegree[accuracy]; };
255 
257  static QuadFormula3D GetQFConvolutionHexaFromDegree(int accuracy)
258  { return QFConvolutionHexaFromDegree[accuracy]; };
259 
260 //======================================================================
261 // FEDesc3D
262 //======================================================================
264  static TFEDesc3D *GetFEDesc3D(FEDesc3D FEDesc)
265  { return FEDescs3D[FEDesc]; };
266 
268  static void RegisterFEDesc3D(FEDesc3D FEDesc, TFEDesc3D *FEDesc3D)
269  { FEDescs3D[FEDesc] = FEDesc3D; };
270 
271 //======================================================================
272 // BaseFunct3D
273 //======================================================================
275  static TBaseFunct3D *GetBaseFunct3D(BaseFunct3D BaseFunct)
276  { return BaseFuncts3D[BaseFunct]; };
277 
279  static void RegisterBaseFunct3D(BaseFunct3D BaseFunct,
280  TBaseFunct3D *BaseFunct3D)
281  { BaseFuncts3D[BaseFunct] = BaseFunct3D; };
282 
283 //======================================================================
284 // NodalFunctional3D
285 //======================================================================
288  (NodalFunctional3D NodalFunctional)
289  { return NodalFunctionals3D[NodalFunctional]; };
290 
292  static void RegisterNodalFunctional3D
293  (NodalFunctional3D NodalFunctional,
294  TNodalFunctional3D *NodalFunctional3D)
295  { NodalFunctionals3D[NodalFunctional] = NodalFunctional3D; };
296 
297 //======================================================================
298 // FE3D
299 //======================================================================
301  static TFE3D *GetFE3D (FE3D FE)
302  { return FEs3D[FE]; };
303 
305  static void RegisterFE3D(FE3D FE, TFE3D *element)
306  { FEs3D[FE] = element; };
307 
308 //======================================================================
309 // access to some arrays
310 //======================================================================
312  static FEDesc3D GetFEDesc3D_IDFromFE3D(FE3D ele)
313  { return FEDesc3D_IDFromFE3D[ele]; };
314 
316  static TFEDesc3D *GetFEDesc3DFromFE3D(FE3D ele)
317  { return FEDesc3DFromFE3D[ele]; };
318 
320  static BaseFunct3D GetBaseFunct3D_IDFromFE3D(FE3D ele)
321  { return BaseFunct3D_IDFromFE3D[ele]; };
322 
324  static int GetN_BaseFunctFromFE3D(FE3D ele)
325  { return N_BaseFunctFromFE3D[ele]; };
326 
328  static int GetPolynomialDegreeFromFE3D(FE3D ele)
329  { return PolynomialDegreeFromFE3D[ele]; };
330 
332  static int GetAccuracyFromFE3D(FE3D ele)
333  { return AccuracyFromFE3D[ele]; };
334 
337  { return BaseFunct3DFromFE3D[ele]; };
338 
340  static NodalFunctional3D GetNodalFunctional3D_IDFromFE3D(FE3D ele)
341  { return NodalFunctional3D_IDFromFE3D[ele]; };
342 
345  { return NodalFunctional3DFromFE3D[ele]; };
346 
348  static RefTrans3D GetRefTrans3D_IDFromFE3D(FE3D ele)
349  { return RefTrans3D_IDFromFE3D[ele]; };
350 
352  static BF3DRefElements GetRefElementFromFE3D(FE3D ele)
353  { return RefElementFromFE3D[ele]; };
354 
355 
357  static FEDesc3D *GetFEDesc3D_IDFromFE3D()
358  { return FEDesc3D_IDFromFE3D; };
359 
362  { return FEDesc3DFromFE3D; };
363 
365  static BaseFunct3D *GetBaseFunct3D_IDFromFE3D()
366  { return BaseFunct3D_IDFromFE3D; };
367 
370  { return N_BaseFunctFromFE3D; };
371 
374  { return PolynomialDegreeFromFE3D; };
375 
377  static int *GetAccuracyFromFE3D()
378  { return AccuracyFromFE3D; };
379 
382  { return BaseFunct3DFromFE3D; };
383 
385  static NodalFunctional3D *GetNodalFunctional3D_IDFromFE3D()
386  { return NodalFunctional3D_IDFromFE3D; };
387 
390  { return NodalFunctional3DFromFE3D; };
391 
393  static RefTrans3D *GetRefTrans3D_IDFromFE3D()
394  { return RefTrans3D_IDFromFE3D; };
395 
397  static BF3DRefElements *GetRefElementFromFE3D()
398  { return RefElementFromFE3D; };
399 
400 //======================================================================
401 // prolongation matrices in 3D
402 //======================================================================
404  static double *GetProlongationMatrix3D (FE3D parent,
405  Refinements refine, FE3D child, int childnumber);
406 
408  static void RegisterProlongationMatrix3D(BaseFunct3D parent,
409  Refinements refine, BaseFunct3D child, int childnumber,
410  double *matrix)
411  { ProlongationMatrix3D[parent][refine][child][childnumber] =
412  matrix; };
413 
414 //======================================================================
415 // function restriction matrices in 3D
416 //======================================================================
418  static double *GetRestrictionMatrix3D (FE3D parent,
419  Refinements refine, FE3D child, int childnumber);
420 
422  static void RegisterRestrictionMatrix3D(BaseFunct3D parent,
423  Refinements refine, BaseFunct3D child, int childnumber,
424  double *matrix)
425  { RestrictionMatrix3D[parent][refine][child][childnumber] =
426  matrix; };
427 
428 //======================================================================
429 // FE mapper 3D, regular
430 //======================================================================
432  static TFE3DMapper *GetFE3DMapper (FEDesc3D FE1, FEDesc3D FE2)
433  { return FE3DMapper[FE1][FE2]; };
434 
436  static void RegisterFE3DMapper(FEDesc3D FE1, FEDesc3D FE2,
437  TFE3DMapper *mapper)
438  { FE3DMapper[FE1][FE2] = mapper; };
439 
440 //======================================================================
441 // FE mapper 3D, 1-regular
442 //======================================================================
444  static TFE3DMapper1Reg *GetFE3DMapper1Reg (FEDesc3D FE1, FEDesc3D FE2)
445  { return FE3DMapper1Reg[FE1][FE2]; };
446 
448  static void RegisterFE3DMapper1Reg(FEDesc3D FE1, FEDesc3D FE2,
449  TFE3DMapper1Reg *mapper)
450  { FE3DMapper1Reg[FE1][FE2] = mapper; };
451 
452  static void SetCellForRefTrans(TBaseCell *cell, RefTrans3D reftrans);
453 
454 //======================================================================
455 // HNDesc
456 //======================================================================
458  static THNDesc *GetHNDesc3D(HNDesc Desc)
459  { return HNDescs3D[Desc]; }
460 
462  static void RegisterHNDesc3D(HNDesc Desc, THNDesc *HNDesc_Obj)
463  { HNDescs3D[Desc] = HNDesc_Obj; }
464 
465 //======================================================================
466 // reference transformation 3D
467 //======================================================================
469  static TRefTrans3D *GetRefTrans3D(RefTrans3D reftrans)
470  {
471  return ReferenceTrans3D[reftrans];
472  }
473 
475  static void GetOrigFromRef(RefTrans3D RefTrans, int n_points,
476  double *xi, double *eta, double *zeta,
477  double *X, double *Y, double *Z, double *absdetjk);
478 
481  static RefTrans3D GetOrig(int N_LocalUsedElements, FE3D *LocalUsedElements,
482  TCollection *Coll, TBaseCell *cell,
483  bool *Needs2ndDer,
484  int &N_Points, double* &xi, double* &eta, double* &zeta,
485  double* &weights, double* X, double* Y, double* Z,
486  double* absdetjk);
487 
489  static void GetRefFromOrig(RefTrans3D RefTrans,
490  double X, double Y, double Z,
491  double &xi, double &eta, double &zeta);
492 
493 //======================================================================
494 // FE function values and derivatives 3D
495 //======================================================================
497  static void RegisterRefElementValues
498  (BaseFunct3D BaseFunct, QuadFormula3D QuadFormula,
499  MultiIndex3D MultiIndex, double **Values)
500  {
501  RefElementValues3D[BaseFunct][QuadFormula][MultiIndex]
502  = Values;
503  }
504 
506  static double **GetRefElementValues
507  (BaseFunct3D BaseFunct, QuadFormula3D QuadFormula,
508  MultiIndex3D MultiIndex)
509  {
510  return RefElementValues3D[BaseFunct][QuadFormula][MultiIndex];
511  }
512 
514  static void RegisterJointValues3D
515  (BaseFunct3D BaseFunct, QuadFormula2D formula, int joint,
516  double **Values)
517  {
518  JointValues3D[BaseFunct][formula][joint] = Values;
519  }
520 
522  static double **GetJointValues3D
523  (BaseFunct3D BaseFunct, QuadFormula2D formula, int joint)
524  {
525  return JointValues3D[BaseFunct][formula][joint];
526  }
527 
529  static void RegisterJointDerivatives3D
530  (BaseFunct3D BaseFunct, QuadFormula2D formula, int joint,
531  MultiIndex3D MultiIndex, double **Values)
532  {
533  JointDerivatives3D[BaseFunct][formula][joint][MultiIndex] = Values;
534  }
535 
537  static double **GetJointDerivatives3D
538  (BaseFunct3D BaseFunct, QuadFormula2D formula, int joint,
539  MultiIndex3D MultiIndex)
540  {
541  return JointDerivatives3D[BaseFunct][formula][joint][MultiIndex];
542  }
543 
545  static void RegisterOrigElementValues
546  (BaseFunct3D BaseFunct, MultiIndex3D MultiIndex, double **Values)
547  {
548  OrigElementValues3D[BaseFunct][MultiIndex] = Values;
549  }
550 
552  static double **GetOrigElementValues
553  (BaseFunct3D BaseFunct, MultiIndex3D MultiIndex)
554  {
555  return OrigElementValues3D[BaseFunct][MultiIndex];
556  }
557 
560  static RefTrans3D GetOrigValues(TBaseCell *cell, TFE3D *element,
561  int N_Points,
562  double *xi, double *eta, double *zeta,
563  int N_Functs,
564  BaseFunct3D BaseFunct,
565  QuadFormula3D QuadFormula);
566 
569  static void GetOrigValues(RefTrans3D RefTrans,
570  double xi, double eta, double zeta,
571  TBaseFunct3D *bf, TCollection *Coll, TBaseCell *cell,
572  double *uref, double *uxiref, double *uetaref, double *uzetaref,
573  double *uorig, double *uxorig, double *uyorig, double *uzorig);
574 
575 };
576 
577 #endif
static void RegisterQuadFormula3D(QuadFormula3D QF, TQuadFormula3D *QuadForm)
Definition: FEDatabase3D.h:244
static FEDesc3D * GetFEDesc3D_IDFromFE3D()
Definition: FEDatabase3D.h:357
static NodalFunctional3D NodalFunctional3D_IDFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:90
Definition: FE3DMapper1Reg.h:25
static TNodalFunctional3D * GetNodalFunctional3D(NodalFunctional3D NodalFunctional)
Definition: FEDatabase3D.h:288
static TNodalFunctional3D * NodalFunctionals3D[N_NodalFunctionals3D]
Definition: FEDatabase3D.h:117
static TQuadFormula3D * GetQuadFormula3D(QuadFormula3D QF)
Definition: FEDatabase3D.h:240
static void SetCellForRefTrans(TBaseCell *cell, RefTrans3D reftrans)
Definition: FEDatabase3D.C:1570
static double * GetProlongationMatrix3D(FE3D parent, Refinements refine, FE3D child, int childnumber)
Definition: FEDatabase3D.C:1630
static BaseFunct3D BaseFunct3D_IDFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:75
static TNodalFunctional3D * NodalFunctional3DFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:93
static TFE3DMapper * FE3DMapper[N_FEDescs3D][N_FEDescs3D]
Definition: FEDatabase3D.h:120
static TBaseFunct3D * BaseFunct3DFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:87
static double ** GetOrigElementValues(BaseFunct3D BaseFunct, MultiIndex3D MultiIndex)
Definition: FEDatabase3D.h:553
static void RegisterJointDerivatives3D(BaseFunct3D BaseFunct, QuadFormula2D formula, int joint, MultiIndex3D MultiIndex, double **Values)
Definition: FEDatabase3D.h:530
static TQuadFormula2D * QuadFormulas2D[N_QuadFormulas_2D]
Definition: FEDatabase3D.h:48
static TRefTrans3D * ReferenceTrans3D[N_RefTrans3D]
Definition: FEDatabase3D.h:129
static QuadFormula3D GetQFConvolutionHexaFromDegree(int accuracy)
Definition: FEDatabase3D.h:257
static TFEDesc3D * FEDescs3D[N_FEDescs3D]
Definition: FEDatabase3D.h:111
static BF3DRefElements GetRefElementFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:352
static void RegisterAllFEDescs()
Definition: FEDatabase3D.C:378
static TBaseFunct3D * BaseFuncts3D[N_BaseFuncts3D]
Definition: FEDatabase3D.h:114
static double * ProlongationMatrix3D[MaxN_BaseFunctions3D][N_REFDESC][MaxN_BaseFunctions3D][MAXN_CHILDREN]
Definition: FEDatabase3D.h:133
static TBaseFunct3D * GetBaseFunct3D(BaseFunct3D BaseFunct)
Definition: FEDatabase3D.h:275
Definition: FE3D.h:22
static QuadFormula3D GetQFTetraFromDegree(int accuracy)
Definition: FEDatabase3D.h:249
static int * GetN_BaseFunctFromFE3D()
Definition: FEDatabase3D.h:369
static int GetPolynomialDegreeFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:328
static RefTrans3D RefTrans3D_IDFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:96
static int HighestAccuracyLine
Definition: FEDatabase3D.h:42
Definition: RefTrans3D.h:22
static int * GetAccuracyFromFE3D()
Definition: FEDatabase3D.h:377
static TFE3DMapper1Reg * GetFE3DMapper1Reg(FEDesc3D FE1, FEDesc3D FE2)
Definition: FEDatabase3D.h:444
static int GetAccuracyFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:332
static int GetN_BaseFunctFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:324
static NodalFunctional3D * GetNodalFunctional3D_IDFromFE3D()
Definition: FEDatabase3D.h:385
static double ** GetJointDerivatives3D(BaseFunct3D BaseFunct, QuadFormula2D formula, int joint, MultiIndex3D MultiIndex)
Definition: FEDatabase3D.h:538
static QuadFormula1D QFLineFromDegree[MAXDEGREE]
Definition: FEDatabase3D.h:39
static void RegisterAllHangingNodes()
Definition: FEDatabase3D.C:926
static void RegisterQuadFormula1D(QuadFormula1D QF, TQuadFormula1D *QuadForm)
Definition: FEDatabase3D.h:203
Definition: QuadFormula2D.h:22
Definition: QuadFormula1D.h:21
static QuadFormula1D GetQFLineFromDegree(int accuracy)
Definition: FEDatabase3D.h:208
static int * GetPolynomialDegreeFromFE3D()
Definition: FEDatabase3D.h:373
static QuadFormula3D GetQFHexaFromDegree(int accuracy)
Definition: FEDatabase3D.h:253
static double * RestrictionMatrix3D[MaxN_BaseFunctions3D][N_REFDESC][MaxN_BaseFunctions3D][MAXN_CHILDREN]
Definition: FEDatabase3D.h:137
Definition: QuadFormula3D.h:22
static TFE3D * FEs3D[N_FEs3D]
Definition: FEDatabase3D.h:108
static double ** RefElementValues3D[N_BaseFuncts3D][N_QuadFormulas_3D][N_MultiIndices3D]
Definition: FEDatabase3D.h:173
static void RegisterRefElementValues(BaseFunct3D BaseFunct, QuadFormula3D QuadFormula, MultiIndex3D MultiIndex, double **Values)
Definition: FEDatabase3D.h:498
static QuadFormula3D QFTetraFromDegree[MAXDEGREE]
Definition: FEDatabase3D.h:60
static void RegisterProlongationMatrix3D(BaseFunct3D parent, Refinements refine, BaseFunct3D child, int childnumber, double *matrix)
Definition: FEDatabase3D.h:408
static void RegisterFE3D(FE3D FE, TFE3D *element)
Definition: FEDatabase3D.h:305
static TNodalFunctional3D * GetNodalFunctional3DFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:344
static THNDesc * HNDescs3D[N_HNDescs]
Definition: FEDatabase3D.h:126
Definition: NodalFunctional3D.h:21
store cells in an array, used by cell iterators
Definition: Collection.h:18
static int N_BaseFunctFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:78
static int AccuracyFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:84
static FEDesc3D GetFEDesc3D_IDFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:312
static TFEDesc3D ** GetFEDesc3DFromFE3D()
Definition: FEDatabase3D.h:361
static RefTrans3D GetRefTrans3D_IDFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:348
static TRefTrans3D * GetRefTrans3D(RefTrans3D reftrans)
Definition: FEDatabase3D.h:469
static TNodalFunctional3D ** GetNodalFunctional3DFromFE3D()
Definition: FEDatabase3D.h:389
static TBaseFunct3D ** GetBaseFunct3DFromFE3D()
Definition: FEDatabase3D.h:381
static QuadFormula2D QFQuadFromDegree[MAXDEGREE]
Definition: FEDatabase3D.h:54
static double ** JointDerivatives3D[N_BaseFuncts3D][N_QuadFormulas_2D][MAXN_JOINTS][N_MultiIndices3D]
Definition: FEDatabase3D.h:183
static void RegisterAllQuadFormulas()
Definition: FEDatabase3D.C:132
static QuadFormula2D GetQFTriaFromDegree(int accuracy)
Definition: FEDatabase3D.h:229
static TQuadFormula3D * QuadFormulas3D[N_QuadFormulas_3D]
Definition: FEDatabase3D.h:105
static void RegisterAllFEMappers()
Definition: FEDatabase3D.C:794
static void RegisterFE3DMapper(FEDesc3D FE1, FEDesc3D FE2, TFE3DMapper *mapper)
Definition: FEDatabase3D.h:436
static double ** JointValues3D[N_BaseFuncts3D][N_QuadFormulas_2D][MAXN_JOINTS]
Definition: FEDatabase3D.h:178
static QuadFormula3D QFConvolutionHexaFromDegree[MAXDEGREE]
Definition: FEDatabase3D.h:66
static void RegisterOrigElementValues(BaseFunct3D BaseFunct, MultiIndex3D MultiIndex, double **Values)
Definition: FEDatabase3D.h:546
static double * GetRestrictionMatrix3D(FE3D parent, Refinements refine, FE3D child, int childnumber)
Definition: FEDatabase3D.C:1791
static void RegisterRestrictionMatrix3D(BaseFunct3D parent, Refinements refine, BaseFunct3D child, int childnumber, double *matrix)
Definition: FEDatabase3D.h:422
static void RegisterJointValues3D(BaseFunct3D BaseFunct, QuadFormula2D formula, int joint, double **Values)
Definition: FEDatabase3D.h:515
static void RegisterAllRefTrans()
Definition: FEDatabase3D.C:964
static void GetOrigFromRef(RefTrans3D RefTrans, int n_points, double *xi, double *eta, double *zeta, double *X, double *Y, double *Z, double *absdetjk)
Definition: FEDatabase3D.C:1483
static BF3DRefElements * GetRefElementFromFE3D()
Definition: FEDatabase3D.h:397
static RefTrans3D GetOrig(int N_LocalUsedElements, FE3D *LocalUsedElements, TCollection *Coll, TBaseCell *cell, bool *Needs2ndDer, int &N_Points, double *&xi, double *&eta, double *&zeta, double *&weights, double *X, double *Y, double *Z, double *absdetjk)
Definition: FEDatabase3D.C:1116
static BaseFunct3D * GetBaseFunct3D_IDFromFE3D()
Definition: FEDatabase3D.h:365
static TFEDesc3D * GetFEDesc3D(FEDesc3D FEDesc)
Definition: FEDatabase3D.h:264
Definition: HNDesc.h:15
static FEDesc3D FEDesc3D_IDFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:69
static void RegisterQuadFormula2D(QuadFormula2D QF, TQuadFormula2D *QuadForm)
Definition: FEDatabase3D.h:224
static TFEDesc3D * GetFEDesc3DFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:316
static TQuadFormula1D * QuadFormulas1D[N_QuadFormulas_1D]
Definition: FEDatabase3D.h:36
static void RegisterAllNodalFunctionals()
Definition: FEDatabase3D.C:516
static void RegisterHNDesc3D(HNDesc Desc, THNDesc *HNDesc_Obj)
Definition: FEDatabase3D.h:462
information for finite element data structure
Definition: BaseCell.h:25
static double ** OrigElementValues3D[N_BaseFuncts3D][N_MultiIndices3D]
Definition: FEDatabase3D.h:187
static TFE3DMapper1Reg * FE3DMapper1Reg[N_FEDescs3D][N_FEDescs3D]
Definition: FEDatabase3D.h:123
static BF3DRefElements RefElementFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:99
static void GenerateArrays()
Definition: FEDatabase3D.C:980
static NodalFunctional3D GetNodalFunctional3D_IDFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:340
TFEDatabase3D()
Definition: FEDatabase3D.C:118
static void RegisterFEDesc3D(FEDesc3D FEDesc, TFEDesc3D *FEDesc3D)
Definition: FEDatabase3D.h:268
Definition: BaseFunct3D.h:27
static int PolynomialDegreeFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:81
static BaseFunct3D GetBaseFunct3D_IDFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:320
static double ** GetRefElementValues(BaseFunct3D BaseFunct, QuadFormula3D QuadFormula, MultiIndex3D MultiIndex)
Definition: FEDatabase3D.h:507
static void GetRefFromOrig(RefTrans3D RefTrans, double X, double Y, double Z, double &xi, double &eta, double &zeta)
Definition: FEDatabase3D.C:1600
Definition: FEDatabase3D.h:29
Definition: FE3DMapper.h:24
static RefTrans3D * GetRefTrans3D_IDFromFE3D()
Definition: FEDatabase3D.h:393
static QuadFormula3D QFHexaFromDegree[MAXDEGREE]
Definition: FEDatabase3D.h:63
Definition: FEDesc3D.h:19
static void RegisterBaseFunct3D(BaseFunct3D BaseFunct, TBaseFunct3D *BaseFunct3D)
Definition: FEDatabase3D.h:279
static void RegisterAllBaseFunctions()
Definition: FEDatabase3D.C:447
static TBaseFunct3D * GetBaseFunct3DFromFE3D(FE3D ele)
Definition: FEDatabase3D.h:336
static TFE3D * GetFE3D(FE3D FE)
Definition: FEDatabase3D.h:301
static QuadFormula2D QFTriaFromDegree[MAXDEGREE]
Definition: FEDatabase3D.h:51
static TFE3DMapper * GetFE3DMapper(FEDesc3D FE1, FEDesc3D FE2)
Definition: FEDatabase3D.h:432
static void RegisterNodalFunctional3D(NodalFunctional3D NodalFunctional, TNodalFunctional3D *NodalFunctional3D)
Definition: FEDatabase3D.h:293
static TFEDesc3D * FEDesc3DFromFE3D[N_FEs3D]
Definition: FEDatabase3D.h:72
static double ** GetJointValues3D(BaseFunct3D BaseFunct, QuadFormula2D formula, int joint)
Definition: FEDatabase3D.h:523
static RefTrans3D GetOrigValues(TBaseCell *cell, TFE3D *element, int N_Points, double *xi, double *eta, double *zeta, int N_Functs, BaseFunct3D BaseFunct, QuadFormula3D QuadFormula)
static void RegisterAllFEs()
Definition: FEDatabase3D.C:587
static void RegisterFE3DMapper1Reg(FEDesc3D FE1, FEDesc3D FE2, TFE3DMapper1Reg *mapper)
Definition: FEDatabase3D.h:448
static TQuadFormula2D * GetQuadFormula2D(QuadFormula2D QF)
Definition: FEDatabase3D.h:220
static QuadFormula2D GetQFQuadFromDegree(int accuracy)
Definition: FEDatabase3D.h:233
static THNDesc * GetHNDesc3D(HNDesc Desc)
Definition: FEDatabase3D.h:458