11 #ifndef __FEDATABASE2D__
12 #define __FEDATABASE2D__
14 #include <Constants.h>
15 #include <Enumerations.h>
17 #include <BaseFunct1D.h>
21 #include <BaseFunct2D.h>
24 #include <FE2DMapper.h>
25 #include <FE2DMapper1Reg.h>
27 #include <RefTrans2D.h>
29 #include <QuadFormula1D.h>
30 #include <QuadFormulaQuad.h>
31 #include <QuadFormulaTria.h>
108 static double **
JointValues2D[N_BaseFuncts2D][N_QuadFormulas_1D]
114 [MAXN_JOINTS][N_MultiIndices2D];
125 [N_REFDESC][MaxN_BaseFunctions2D][MAXN_CHILDREN];
129 [N_REFDESC][MaxN_BaseFunctions2D][MAXN_CHILDREN];
228 {
return FEs1D[FE]; };
232 {
FEs1D[FE] = element; };
262 (NodalFunctional1D NodalFunctional)
267 (NodalFunctional1D NodalFunctional,
276 (BaseFunct1D BaseFunct, QuadFormula1D QuadFormula,
277 MultiIndex1D MultiIndex,
double **Values)
285 (BaseFunct1D BaseFunct, QuadFormula1D QuadFormula,
286 MultiIndex1D MultiIndex)
293 (BaseFunct1D BaseFunct, MultiIndex1D MultiIndex,
double **Values)
300 (BaseFunct1D BaseFunct, MultiIndex1D MultiIndex)
340 (NodalFunctional2D NodalFunctional)
345 (NodalFunctional2D NodalFunctional,
354 {
return FEs2D[FE]; };
358 {
FEs2D[FE] = element; };
457 Refinements refine, FE2D child,
int childnumber);
461 Refinements refine, BaseFunct2D child,
int childnumber,
471 Refinements refine, FE2D child,
int childnumber);
475 Refinements refine, BaseFunct2D child,
int childnumber,
520 (BaseFunct2D BaseFunct, QuadFormula2D QuadFormula,
521 MultiIndex2D MultiIndex,
double **Values)
529 (BaseFunct2D BaseFunct, QuadFormula2D QuadFormula,
530 MultiIndex2D MultiIndex)
537 (BaseFunct2D BaseFunct, QuadFormula1D formula,
int joint,
545 (BaseFunct2D BaseFunct, QuadFormula1D formula,
int joint)
552 (BaseFunct2D BaseFunct, QuadFormula1D formula,
int joint,
553 MultiIndex2D MultiIndex,
double **Values)
560 (BaseFunct2D BaseFunct, QuadFormula1D formula,
int joint,
561 MultiIndex2D MultiIndex)
568 (BaseFunct2D BaseFunct, MultiIndex2D MultiIndex,
double **Values)
575 (BaseFunct2D BaseFunct, MultiIndex2D MultiIndex)
596 double *uref,
double *uxiref,
double *uetaref,
597 double *uorig,
double *uxorig,
double *uyorig);
601 double *uref,
double *uxiref,
double *uetaref,
602 double *uorig,
double *uxorig,
double *uyorig);
615 double *xi,
double *eta,
616 double *X,
double *Y,
double *absdetjk);
620 static RefTrans2D
GetOrig(
int N_LocalUsedElements, FE2D *LocalUsedElements,
623 int &N_Points,
double* &xi,
double* &eta,
624 double* &weights,
double* X,
double* Y,
630 double &xi,
double &eta);
634 RefTrans2D reftrans);
687 static QuadFormula2D
GetQFFromDegree(
int accuracy, BF2DRefElements RefElem);
static int HighestAccuracyTria
Definition: FEDatabase2D.h:135
static BF2DRefElements GetRefElementFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:404
static void RegisterAllHangingNodes()
Definition: FEDatabase2D.C:1583
Definition: FE2DMapper1Reg.h:23
static int PolynomialDegreeFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:159
static void RegisterQuadFormula2D(QuadFormula2D QF, TQuadFormula2D *QuadForm)
Definition: FEDatabase2D.h:665
static NodalFunctional2D GetNodalFunctional2D_IDFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:392
static void RegisterJointValues2D(BaseFunct2D BaseFunct, QuadFormula1D formula, int joint, double **Values)
Definition: FEDatabase2D.h:537
static RefTrans2D GetRefTrans2D_IDFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:400
static void RegisterFE2DMapper1Reg(FEDesc2D FE1, FEDesc2D FE2, TFE2DMapper1Reg *mapper)
Definition: FEDatabase2D.h:500
static void RegisterFE2DMapper(FEDesc2D FE1, FEDesc2D FE2, TFE2DMapper *mapper)
Definition: FEDatabase2D.h:488
static TQuadFormula3D * GetQuadFormula3D(QuadFormula3D QF)
Definition: FEDatabase2D.h:694
static void GenerateArrays()
Definition: FEDatabase2D.C:1644
static void RegisterAllFEDescs()
Definition: FEDatabase2D.C:312
static TQuadFormula1D * QuadFormulas1D[N_QuadFormulas_1D]
Definition: FEDatabase2D.h:42
static TFE2D * GetFE2D(FE2D FE)
Definition: FEDatabase2D.h:353
static void RegisterNodalFunctional2D(NodalFunctional2D NodalFunctional, TNodalFunctional2D *NodalFunctional2D)
Definition: FEDatabase2D.h:345
static void RegisterAllNodalFunctionals()
Definition: FEDatabase2D.C:606
static double * GetProlongationMatrix2D(FE2D parent, Refinements refine, FE2D child, int childnumber)
Definition: FEDatabase2D.C:2330
static void RegisterJointDerivatives2D(BaseFunct2D BaseFunct, QuadFormula1D formula, int joint, MultiIndex2D MultiIndex, double **Values)
Definition: FEDatabase2D.h:552
static TBaseFunct2D * BaseFuncts2D[N_BaseFuncts2D]
Definition: FEDatabase2D.h:84
static TNodalFunctional2D * GetNodalFunctional2DFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:396
static double ** JointDerivatives2D[N_BaseFuncts2D][N_QuadFormulas_1D][MAXN_JOINTS][N_MultiIndices2D]
Definition: FEDatabase2D.h:114
static int GetPolynomialDegreeFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:380
static double * GetRestrictionMatrix2D(FE2D parent, Refinements refine, FE2D child, int childnumber)
Definition: FEDatabase2D.C:2494
static TNodalFunctional2D ** GetNodalFunctional2DFromFE2D()
Definition: FEDatabase2D.h:441
static TRefTrans2D * ReferenceTrans2D[N_RefTrans2D]
Definition: FEDatabase2D.h:121
static void RegisterQuadFormula3D(QuadFormula3D QF, TQuadFormula3D *QuadForm)
Definition: FEDatabase2D.h:698
static void RegisterFE2D(FE2D FE, TFE2D *element)
Definition: FEDatabase2D.h:357
static QuadFormula2D QFQuadFromDegree[MAXDEGREE]
Definition: FEDatabase2D.h:138
Definition: RefTrans2D.h:22
Definition: RefTrans1D.h:22
static void RegisterHNDesc2D(HNDesc Desc, THNDesc *HNDesc_Obj)
Definition: FEDatabase2D.h:512
static int * GetPolynomialDegreeFromFE2D()
Definition: FEDatabase2D.h:425
static RefTrans2D * GetRefTrans2D_IDFromFE2D()
Definition: FEDatabase2D.h:445
static TFE2DMapper * GetFE2DMapper(FEDesc2D FE1, FEDesc2D FE2)
Definition: FEDatabase2D.h:484
static void RegisterAllFEs()
Definition: FEDatabase2D.C:753
static double ** OrigElementValues1D[N_BaseFuncts1D][N_MultiIndices1D]
Definition: FEDatabase2D.h:63
static int GetN_BaseFunctFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:376
static TQuadFormula2D * GetQuadFormula2D(QuadFormula2D QF)
Definition: FEDatabase2D.h:661
static QuadFormula2D GetQFTriaFromDegree(int accuracy)
Definition: FEDatabase2D.h:670
TFEDatabase2D()
Definition: FEDatabase2D.C:120
static void SetCellForRefTrans(TBaseCell *cell, RefTrans2D reftrans)
Definition: FEDatabase2D.C:2300
static QuadFormula1D QFLineFromDegree[MAXDEGREE]
Definition: FEDatabase2D.h:66
static double ** GetOrigElementValues(BaseFunct1D BaseFunct, MultiIndex1D MultiIndex)
Definition: FEDatabase2D.h:300
static void RegisterFEDesc1D(FEDesc1D FEDesc, TFEDesc1D *FEDesc1D)
Definition: FEDatabase2D.h:242
static void GetOrigValues(RefTrans2D RefTrans, double xi, double eta, TBaseFunct2D *bf, TCollection *Coll, TGridCell *cell, double *uref, double *uxiref, double *uetaref, double *uorig, double *uxorig, double *uyorig)
Definition: FEDatabase2D.C:2150
static BaseFunct2D BaseFunct2D_IDFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:153
static TFE2DMapper * FE2DMapper[N_FEDescs2D][N_FEDescs2D]
Definition: FEDatabase2D.h:93
static void RegisterBaseFunct1D(BaseFunct1D BaseFunct, TBaseFunct1D *BaseFunct1D)
Definition: FEDatabase2D.h:253
static TNodalFunctional2D * NodalFunctional2DFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:171
static TRefTrans1D * GetRefTrans1D(RefTrans1D reftrans)
Definition: FEDatabase2D.h:306
static TFEDesc2D ** GetFEDesc2DFromFE2D()
Definition: FEDatabase2D.h:413
static double * RestrictionMatrix2D[MaxN_BaseFunctions2D][N_REFDESC][MaxN_BaseFunctions2D][MAXN_CHILDREN]
Definition: FEDatabase2D.h:129
store cells in an array, used by cell iterators
Definition: Collection.h:18
Definition: NodalFunctional1D.h:20
Definition: NodalFunctional2D.h:20
static int * GetAccuracyFromFE2D()
Definition: FEDatabase2D.h:429
static double ** GetJointDerivatives2D(BaseFunct2D BaseFunct, QuadFormula1D formula, int joint, MultiIndex2D MultiIndex)
Definition: FEDatabase2D.h:560
static TQuadFormula1D * GetQuadFormula1D(QuadFormula1D QF)
Definition: FEDatabase2D.h:640
static double ** JointValues2D[N_BaseFuncts2D][N_QuadFormulas_1D][MAXN_JOINTS]
Definition: FEDatabase2D.h:109
static double ** RefElementValues1D[N_BaseFuncts1D][N_QuadFormulas_1D][N_MultiIndices1D]
Definition: FEDatabase2D.h:59
static TFEDesc2D * GetFEDesc2DFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:368
static TBaseFunct2D * GetBaseFunct2DFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:388
static TRefTrans2D * GetRefTrans2D(RefTrans2D reftrans)
Definition: FEDatabase2D.h:608
static TNodalFunctional1D * GetNodalFunctional1D(NodalFunctional1D NodalFunctional)
Definition: FEDatabase2D.h:262
static TFEDesc1D * FEDescs1D[N_FEDescs1D]
Definition: FEDatabase2D.h:51
static TBaseFunct1D * BaseFuncts1D[N_BaseFuncts1D]
Definition: FEDatabase2D.h:45
static int HighestAccuracyLine
Definition: FEDatabase2D.h:69
static int AccuracyFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:162
static void RegisterOrigElementValues(BaseFunct1D BaseFunct, MultiIndex1D MultiIndex, double **Values)
Definition: FEDatabase2D.h:293
static double ** GetRefElementValues(BaseFunct1D BaseFunct, QuadFormula1D QuadFormula, MultiIndex1D MultiIndex)
Definition: FEDatabase2D.h:285
static void RegisterAllQuadFormulas()
Definition: FEDatabase2D.C:134
static int HighestAccuracyQuad
Definition: FEDatabase2D.h:141
static TBaseFunct1D * GetBaseFunct1D(BaseFunct1D BaseFunct)
Definition: FEDatabase2D.h:249
static TNodalFunctional2D * GetNodalFunctional2D(NodalFunctional2D NodalFunctional)
Definition: FEDatabase2D.h:340
static TBaseFunct2D ** GetBaseFunct2DFromFE2D()
Definition: FEDatabase2D.h:433
static BaseFunct2D * GetBaseFunct2D_IDFromFE2D()
Definition: FEDatabase2D.h:417
static void GetOrigFromRef(RefTrans2D RefTrans, int n_points, double *xi, double *eta, double *X, double *Y, double *absdetjk)
Definition: FEDatabase2D.C:2233
static double * ProlongationMatrix2D[MaxN_BaseFunctions2D][N_REFDESC][MaxN_BaseFunctions2D][MAXN_CHILDREN]
Definition: FEDatabase2D.h:125
static TFEDesc1D * GetFEDesc1D(FEDesc1D FEDesc)
Definition: FEDatabase2D.h:238
static QuadFormula2D GetQFFromDegree(int accuracy, BF2DRefElements RefElem)
Definition: FEDatabase2D.C:2707
static TFE2D * FEs2D[N_FEs2D]
Definition: FEDatabase2D.h:78
static RefTrans2D RefTrans2D_IDFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:174
static BaseFunct2D GetBaseFunct2D_IDFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:372
static int * GetN_BaseFunctFromFE2D()
Definition: FEDatabase2D.h:421
static FEDesc2D GetFEDesc2D_IDFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:364
static QuadFormula1D GetQFLineFromDegree(int accuracy)
Definition: FEDatabase2D.h:649
static FEDesc2D * GetFEDesc2D_IDFromFE2D()
Definition: FEDatabase2D.h:409
static TFE2DMapper1Reg * GetFE2DMapper1Reg(FEDesc2D FE1, FEDesc2D FE2)
Definition: FEDatabase2D.h:496
static void RegisterNodalFunctional1D(NodalFunctional1D NodalFunctional, TNodalFunctional1D *NodalFunctional1D)
Definition: FEDatabase2D.h:267
information for finite element data structure
Definition: BaseCell.h:25
static void RegisterAllBaseFunctions()
Definition: FEDatabase2D.C:461
static void RegisterProlongationMatrix2D(BaseFunct2D parent, Refinements refine, BaseFunct2D child, int childnumber, double *matrix)
Definition: FEDatabase2D.h:460
static BF2DRefElements * GetRefElementFromFE2D()
Definition: FEDatabase2D.h:449
static QuadFormula2D QFTriaFromDegree[MAXDEGREE]
Definition: FEDatabase2D.h:132
static TNodalFunctional1D * NodalFunctionals1D[N_NodalFunctionals1D]
Definition: FEDatabase2D.h:48
static TFEDesc2D * FEDesc2DFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:150
static TQuadFormula3D * QuadFormulas3D[N_QuadFormulas_3D]
Definition: FEDatabase2D.h:183
static void RegisterFEDesc2D(FEDesc2D FEDesc, TFEDesc2D *FEDesc2D)
Definition: FEDatabase2D.h:320
static TRefTrans1D * ReferenceTrans1D[1]
Definition: FEDatabase2D.h:72
Definition: BaseFunct2D.h:27
Definition: BaseFunct1D.h:25
static TFEDesc2D * GetFEDesc2D(FEDesc2D FEDesc)
Definition: FEDatabase2D.h:316
static TBaseFunct2D * BaseFunct2DFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:165
static NodalFunctional2D * GetNodalFunctional2D_IDFromFE2D()
Definition: FEDatabase2D.h:437
static void RegisterQuadFormula1D(QuadFormula1D QF, TQuadFormula1D *QuadForm)
Definition: FEDatabase2D.h:644
static void GetRefFromOrig(RefTrans2D RefTrans, double X, double Y, double &xi, double &eta)
Definition: FEDatabase2D.C:2269
static void RegisterRefElementValues(BaseFunct1D BaseFunct, QuadFormula1D QuadFormula, MultiIndex1D MultiIndex, double **Values)
Definition: FEDatabase2D.h:276
Definition: FEDatabase2D.h:35
static double ** RefElementValues2D[N_BaseFuncts2D][N_QuadFormulas_2D][N_MultiIndices2D]
Definition: FEDatabase2D.h:104
static NodalFunctional2D NodalFunctional2D_IDFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:168
static TNodalFunctional2D * NodalFunctionals2D[N_NodalFunctionals2D]
Definition: FEDatabase2D.h:87
static THNDesc * GetHNDesc2D(HNDesc Desc)
Definition: FEDatabase2D.h:508
Definition: FEDesc1D.h:17
static RefTrans2D GetOrig(int N_LocalUsedElements, FE2D *LocalUsedElements, TCollection *Coll, TBaseCell *cell, bool *Needs2ndDer, int &N_Points, double *&xi, double *&eta, double *&weights, double *X, double *Y, double *absdetjk)
Definition: FEDatabase2D.C:1765
static void RegisterAllRefTrans()
Definition: FEDatabase2D.C:1624
Definition: FEDesc2D.h:15
static THNDesc * HNDescs2D[N_HNDescs]
Definition: FEDatabase2D.h:99
Definition: FE2DMapper.h:24
static BF2DRefElements RefElementFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:177
static double ** OrigElementValues2D[N_BaseFuncts2D][N_MultiIndices2D]
Definition: FEDatabase2D.h:118
static void RegisterRestrictionMatrix2D(BaseFunct2D parent, Refinements refine, BaseFunct2D child, int childnumber, double *matrix)
Definition: FEDatabase2D.h:474
static TFE1D * FEs1D[N_FEs1D]
Definition: FEDatabase2D.h:54
static int N_BaseFunctFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:156
represent geometric information of the cell
Definition: GridCell.h:15
static TBaseFunct2D * GetBaseFunct2D(BaseFunct2D BaseFunct)
Definition: FEDatabase2D.h:327
static FEDesc2D FEDesc2D_IDFromFE2D[N_FEs2D]
Definition: FEDatabase2D.h:147
static TFE1D * GetFE1D(FE1D FE)
Definition: FEDatabase2D.h:227
static TFEDesc2D * FEDescs2D[N_FEDescs2D]
Definition: FEDatabase2D.h:81
static void RegisterFE1D(FE1D FE, TFE1D *element)
Definition: FEDatabase2D.h:231
static void RegisterBaseFunct2D(BaseFunct2D BaseFunct, TBaseFunct2D *BaseFunct2D)
Definition: FEDatabase2D.h:331
static TFE2DMapper1Reg * FE2DMapper1Reg[N_FEDescs2D][N_FEDescs2D]
Definition: FEDatabase2D.h:96
static void RegisterAllFEMappers()
Definition: FEDatabase2D.C:1186
static TQuadFormula2D * QuadFormulas2D[N_QuadFormulas_2D]
Definition: FEDatabase2D.h:90
static QuadFormula2D GetQFQuadFromDegree(int accuracy)
Definition: FEDatabase2D.h:678
static int GetAccuracyFromFE2D(FE2D ele)
Definition: FEDatabase2D.h:384
static double ** GetJointValues2D(BaseFunct2D BaseFunct, QuadFormula1D formula, int joint)
Definition: FEDatabase2D.h:545