ParMooN
 All Classes Functions Variables Friends Pages
HexaIsoparametric.h
1 // =======================================================================
2 // @(#)HexaIsoparametric.h 1.3 02/22/00
3 //
4 // Class: THexaIsoparametric
5 //
6 // Purpose: Isoparametric reference transformations for Hexahedron
7 //
8 // Author: Gunar Matthies
9 //
10 // History: 2000/11/20 start implementation
11 //
12 // =======================================================================
13 
14 #ifndef __HexaIsoparametric__
15 #define __HexaIsoparametric__
16 
17 #include <Enumerations.h>
18 #include <RefTrans3D.h>
19 
22 {
23  protected:
25  double x0, x1, x2, x3, x4, x5, x6, x7;
26 
28  double y0, y1, y2, y3, y4, y5, y6, y7;
29 
31  double z0, z1, z2, z3, z4, z5, z6, z7;
32 
34  double xc0, xc1, xc2, xc3, xc4, xc5, xc6, xc7;
35 
37  double yc0, yc1, yc2, yc3, yc4, yc5, yc6, yc7;
38 
40  double zc0, zc1, zc2, zc3, zc4, zc5, zc6, zc7;
41 
44 
47  double XDistance[MaxN_BaseFunctions3D];
48 
51  double YDistance[MaxN_BaseFunctions3D];
52 
55  double ZDistance[MaxN_BaseFunctions3D];
56 
59 
61  double FctValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D];
62 
64  double XiDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D];
65 
67  double EtaDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D];
68 
70  double ZetaDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D];
71 
73  static BaseFunct3D BaseFunctFromOrder[];
74 
76  static FEDesc3D FEDescFromOrder[];
77 
79  double DoubleAux[MaxN_BaseFunctions3D];
80 
82  int IntAux[MaxN_BaseFunctions3D];
83 
85  QuadFormula3D QuadFormula;
86 
88  double *XI, *ETA, *ZETA, *W;
89 
92 
94  double detjk;
95 
97  double rec_detjk;
98 
99  public:
102 
104  void GetOrigFromRef(double eta, double xi, double zeta,
105  double &x, double &y, double &z);
106 
108  void GetOrigFromRef(int N_Points, double *eta, double *xi, double *zeta,
109  double *x, double *y, double *z, double *absdetjk);
110 
112  void GetOrigFromRef(double *ref, double *orig);
113 
115  void GetRefFromOrig(double x, double y, double z,
116  double &eta, double &xi, double &zeta);
117 
119  void GetRefFromOrig(double *orig, double *ref);
120 
123  void GetOrigValues(BaseFunct3D BaseFunct,
124  int N_Points, double *xi, double *eta, double *zeta,
125  int N_Functs, QuadFormula3D HexaFormula);
126 
129  void GetOrigValues(int N_Sets, BaseFunct3D *BaseFunct,
130  int N_Points, double *xi, double *eta, double *zeta,
131  QuadFormula3D HexaFormula,
132  bool *Needs2ndDer);
133 
136  void GetOrigValues(double xi, double eta, double zeta, int N_BaseFunct,
137  double *uref, double *uxiref, double *uetaref, double *uzetaref,
138  double *uorig, double *uxorig, double *uyorig, double *uzorig);
139 
142  void GetOrigValues(int JointNr, double p1, double p2, int N_BaseFunct,
143  double *uref, double *uxiref, double *uetaref, double *uzetaref,
144  double *uorig, double *uxorig, double *uyorig, double *uzorig);
145 
147  void SetCell(TBaseCell * cell);
148 
150  void SetApproximationOrder(int order)
151  {
152  if(order <= 0)
153  ApproximationOrder = 1;
154  else
155  ApproximationOrder = order;
156  }
157 
159  void SetQuadFormula(QuadFormula3D formula)
160  { QuadFormula = formula; }
161 
163  void GetOuterNormal(int j, double s, double t,
164  double &n1, double &n2, double &n3);
165 
167  void GetTangentVectors(int j, double p1, double p2,
168  double &t11, double &t12, double &t13,
169  double &t21, double &t22, double &t23);
170 
171 };
172 
173 #endif
double * XI
Definition: HexaIsoparametric.h:88
static FEDesc3D FEDescFromOrder[]
Definition: HexaIsoparametric.h:76
int N_QuadPoints
Definition: HexaIsoparametric.h:91
void GetOrigFromRef(double eta, double xi, double zeta, double &x, double &y, double &z)
Definition: HexaIsoparametric.C:38
void SetQuadFormula(QuadFormula3D formula)
Definition: HexaIsoparametric.h:159
Definition: RefTrans3D.h:22
double FctValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:61
double yc0
Definition: HexaIsoparametric.h:37
static BaseFunct3D BaseFunctFromOrder[]
Definition: HexaIsoparametric.h:73
void GetRefFromOrig(double x, double y, double z, double &eta, double &xi, double &zeta)
Definition: HexaIsoparametric.C:155
double zc0
Definition: HexaIsoparametric.h:40
QuadFormula3D QuadFormula
Definition: HexaIsoparametric.h:85
double y0
Definition: HexaIsoparametric.h:28
void SetCell(TBaseCell *cell)
Definition: HexaIsoparametric.C:689
int ApproximationOrder
Definition: HexaIsoparametric.h:58
double YDistance[MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:51
double XDistance[MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:47
double ZDistance[MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:55
void GetOuterNormal(int j, double s, double t, double &n1, double &n2, double &n3)
Definition: HexaIsoparametric.C:1550
int N_AuxPoints
Definition: HexaIsoparametric.h:43
double ZetaDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:70
double z0
Definition: HexaIsoparametric.h:31
information for finite element data structure
Definition: BaseCell.h:25
void GetOrigValues(BaseFunct3D BaseFunct, int N_Points, double *xi, double *eta, double *zeta, int N_Functs, QuadFormula3D HexaFormula)
Definition: HexaIsoparametric.C:212
int IntAux[MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:82
void GetTangentVectors(int j, double p1, double p2, double &t11, double &t12, double &t13, double &t21, double &t22, double &t23)
Definition: HexaIsoparametric.C:1572
double x0
Definition: HexaIsoparametric.h:25
double XiDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:64
double rec_detjk
Definition: HexaIsoparametric.h:97
Definition: HexaIsoparametric.h:21
void SetApproximationOrder(int order)
Definition: HexaIsoparametric.h:150
double detjk
Definition: HexaIsoparametric.h:94
double EtaDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:67
THexaIsoparametric()
Definition: HexaIsoparametric.C:33
double xc0
Definition: HexaIsoparametric.h:34
double DoubleAux[MaxN_BaseFunctions3D]
Definition: HexaIsoparametric.h:79