ParMooN
 All Classes Functions Variables Friends Pages
TetraIsoparametric.h
1 // =======================================================================
2 // @(#)TetraIsoparametric.h 1.3 02/22/00
3 //
4 // Class: TTetraIsoparametric
5 //
6 // Purpose: Isoparametric reference transformations for Tetrahedron
7 //
8 // Author: Gunar Matthies
9 //
10 // History: 2000/11/20 start implementation
11 //
12 // =======================================================================
13 
14 #ifndef __TetraIsoparametric__
15 #define __TetraIsoparametric__
16 
17 #include <Enumerations.h>
18 #include <RefTrans3D.h>
19 
22 {
23  protected:
25  double x0, x1, x2, x3;
26 
28  double y0, y1, y2, y3;
29 
31  double z0, z1, z2, z3;
32 
34  double xc0, xc1, xc2, xc3;
35 
37  double yc0, yc1, yc2, yc3;
38 
40  double zc0, zc1, zc2, zc3;
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 GetOrigBoundFromRef(int Joint, double xi, double eta,
105  double &X, double &Y, double &Z);
106 
108  void GetOrigBoundFromRef(int Joint, int N_Points, double *xi, double *eta,
109  double *X, double *Y, double *Z);
110 
111 
113  void GetOrigFromRef(double eta, double xi, double zeta,
114  double &x, double &y, double &z);
115 
117  void GetOrigFromRef(int N_Points, double *eta, double *xi, double *zeta,
118  double *x, double *y, double *z, double *absdetjk);
119 
121  void GetOrigFromRef(double *ref, double *orig);
122 
124  void GetRefFromOrig(double x, double y, double z,
125  double &eta, double &xi, double &zeta);
126 
128  void GetRefFromOrig(double *orig, double *ref);
129 
132  void GetOrigValues(BaseFunct3D BaseFunct,
133  int N_Points, double *xi, double *eta, double *zeta,
134  int N_Functs, QuadFormula3D QuadFormula);
135 
138  void GetOrigValues(int N_Sets, BaseFunct3D *BaseFunct,
139  int N_Points, double *xi, double *eta, double *zeta,
140  QuadFormula3D QuadFormula,
141  bool *Needs2ndDer);
142 
143  void GetOrigValues(int JointNr, double p1, double p2,
144  int N_BaseFunct,
145  double *uref, double *uxiref, double *uetaref, double *uzetaref,
146  double *uorig, double *uxorig, double *uyorig, double *uzorig);
147 
150  void GetOrigValues(double xi, double eta, double zeta, int N_BaseFunct,
151  double *uref, double *uxiref, double *uetaref, double *uzetaref,
152  double *uorig, double *uxorig, double *uyorig, double *uzorig);
153 
155  void SetCell(TBaseCell * cell);
156 
158  void SetApproximationOrder(int order)
159  {
160  if(order <= 0)
161  ApproximationOrder = 1;
162  else
163  ApproximationOrder = order;
164  }
165 
167  void SetQuadFormula(QuadFormula3D formula)
168  { QuadFormula = formula; }
169 
171  void GetOuterNormal(int j, double s, double t,
172  double &n1, double &n2, double &n3);
173 
175  void GetTangentVectors(int j, double p1, double p2,
176  double &t11, double &t12, double &t13,
177  double &t21, double &t22, double &t23);
178 
179 };
180 
181 #endif
double EtaDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:67
double XiDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:64
int IntAux[MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:82
void SetCell(TBaseCell *cell)
Definition: TetraIsoparametric.C:738
int ApproximationOrder
Definition: TetraIsoparametric.h:58
TTetraIsoparametric()
Definition: TetraIsoparametric.C:35
void GetOrigValues(BaseFunct3D BaseFunct, int N_Points, double *xi, double *eta, double *zeta, int N_Functs, QuadFormula3D QuadFormula)
Definition: TetraIsoparametric.C:324
double * XI
Definition: TetraIsoparametric.h:88
double x0
Definition: TetraIsoparametric.h:25
double y0
Definition: TetraIsoparametric.h:28
Definition: RefTrans3D.h:22
double ZDistance[MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:55
double zc0
Definition: TetraIsoparametric.h:40
void GetRefFromOrig(double x, double y, double z, double &eta, double &xi, double &zeta)
Definition: TetraIsoparametric.C:293
Definition: TetraIsoparametric.h:21
double XDistance[MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:47
QuadFormula3D QuadFormula
Definition: TetraIsoparametric.h:85
double YDistance[MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:51
double yc0
Definition: TetraIsoparametric.h:37
double ZetaDerValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:70
double xc0
Definition: TetraIsoparametric.h:34
double DoubleAux[MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:79
int N_AuxPoints
Definition: TetraIsoparametric.h:43
void GetOrigFromRef(double eta, double xi, double zeta, double &x, double &y, double &z)
Definition: TetraIsoparametric.C:163
static FEDesc3D FEDescFromOrder[]
Definition: TetraIsoparametric.h:76
double detjk
Definition: TetraIsoparametric.h:94
double z0
Definition: TetraIsoparametric.h:31
information for finite element data structure
Definition: BaseCell.h:25
static BaseFunct3D BaseFunctFromOrder[]
Definition: TetraIsoparametric.h:73
double rec_detjk
Definition: TetraIsoparametric.h:97
double FctValues[MaxN_QuadPoints_3D][MaxN_BaseFunctions3D]
Definition: TetraIsoparametric.h:61
void SetApproximationOrder(int order)
Definition: TetraIsoparametric.h:158
void GetTangentVectors(int j, double p1, double p2, double &t11, double &t12, double &t13, double &t21, double &t22, double &t23)
Definition: TetraIsoparametric.C:1097
void SetQuadFormula(QuadFormula3D formula)
Definition: TetraIsoparametric.h:167
void GetOuterNormal(int j, double s, double t, double &n1, double &n2, double &n3)
Definition: TetraIsoparametric.C:1082
void GetOrigBoundFromRef(int Joint, double xi, double eta, double &X, double &Y, double &Z)
Definition: TetraIsoparametric.C:40
int N_QuadPoints
Definition: TetraIsoparametric.h:91