ParMooN
 All Classes Functions Variables Friends Pages
TetraIsoparametric_orig.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 
21 class TTetraIsoparametric : public TRefTrans3D
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 
43  int N_AuxPoints;
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 
91  int N_QuadPoints;
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 QuadFormula);
126 
129  void GetOrigValues(int N_Sets, BaseFunct3D *BaseFunct,
130  int N_Points, double *xi, double *eta, double *zeta,
131  QuadFormula3D QuadFormula,
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 
141  void SetCell(TBaseCell * cell);
142 
144  void SetApproximationOrder(int order)
145  {
146  if(order <= 0)
147  ApproximationOrder = 1;
148  else
149  ApproximationOrder = order;
150  }
151 
153  void SetQuadFormula(QuadFormula3D formula)
154  { QuadFormula = formula; }
155 
157  void GetOuterNormal(int j, double s, double t,
158  double &n1, double &n2, double &n3);
159 
161  void GetTangentVectors(int j, double p1, double p2,
162  double &t11, double &t12, double &t13,
163  double &t21, double &t22, double &t23);
164 
165 };
166 
167 #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_orig.h:144
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_orig.h:153
void GetOuterNormal(int j, double s, double t, double &n1, double &n2, double &n3)
Definition: TetraIsoparametric.C:1082
int N_QuadPoints
Definition: TetraIsoparametric.h:91