11 #ifndef __FEDATABASE3D__
12 #define __FEDATABASE3D__
14 #include <Constants.h>
15 #include <Enumerations.h>
17 #include <BaseFunct3D.h>
20 #include <FE3DMapper1Reg.h>
22 #include <QuadFormula1D.h>
23 #include <QuadFormulaHexa.h>
24 #include <QuadFormulaTetra.h>
25 #include <QuadFormulaTria.h>
26 #include <QuadFormulaQuad.h>
133 [N_REFDESC][MaxN_BaseFunctions3D][MAXN_CHILDREN];
137 [N_REFDESC][MaxN_BaseFunctions3D][MAXN_CHILDREN];
177 static double **
JointValues3D[N_BaseFuncts3D][N_QuadFormulas_2D]
183 [MAXN_JOINTS][N_MultiIndices3D];
288 (NodalFunctional3D NodalFunctional)
293 (NodalFunctional3D NodalFunctional,
302 {
return FEs3D[FE]; };
306 {
FEs3D[FE] = element; };
405 Refinements refine, FE3D child,
int childnumber);
409 Refinements refine, BaseFunct3D child,
int childnumber,
419 Refinements refine, FE3D child,
int childnumber);
423 Refinements refine, BaseFunct3D child,
int childnumber,
476 double *xi,
double *eta,
double *zeta,
477 double *X,
double *Y,
double *Z,
double *absdetjk);
481 static RefTrans3D
GetOrig(
int N_LocalUsedElements, FE3D *LocalUsedElements,
484 int &N_Points,
double* &xi,
double* &eta,
double* &zeta,
485 double* &weights,
double* X,
double* Y,
double* Z,
490 double X,
double Y,
double Z,
491 double &xi,
double &eta,
double &zeta);
498 (BaseFunct3D BaseFunct, QuadFormula3D QuadFormula,
499 MultiIndex3D MultiIndex,
double **Values)
507 (BaseFunct3D BaseFunct, QuadFormula3D QuadFormula,
508 MultiIndex3D MultiIndex)
515 (BaseFunct3D BaseFunct, QuadFormula2D formula,
int joint,
523 (BaseFunct3D BaseFunct, QuadFormula2D formula,
int joint)
530 (BaseFunct3D BaseFunct, QuadFormula2D formula,
int joint,
531 MultiIndex3D MultiIndex,
double **Values)
538 (BaseFunct3D BaseFunct, QuadFormula2D formula,
int joint,
539 MultiIndex3D MultiIndex)
546 (BaseFunct3D BaseFunct, MultiIndex3D MultiIndex,
double **Values)
553 (BaseFunct3D BaseFunct, MultiIndex3D MultiIndex)
562 double *xi,
double *eta,
double *zeta,
564 BaseFunct3D BaseFunct,
565 QuadFormula3D QuadFormula);
570 double xi,
double eta,
double zeta,
572 double *uref,
double *uxiref,
double *uetaref,
double *uzetaref,
573 double *uorig,
double *uxorig,
double *uyorig,
double *uzorig);
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
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
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
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
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