ParMooN
 All Classes Functions Variables Friends Pages
TriaIsoparametric.h
1 // =======================================================================
2 // @(#)TriaIsoparametric.h 1.5 04/13/00
3 //
4 // Class: TTriaIsoparametric
5 //
6 // Purpose: isoparametric reference transformations for triangle
7 //
8 // Author: Gunar Matthies
9 //
10 // History: 29.04.98 start implementation
11 //
12 // =======================================================================
13 
14 #ifndef __TRIAISOPARAMETRIC__
15 #define __TRIAISOPARAMETRIC__
16 
17 #include <Enumerations.h>
18 #include <RefTrans2D.h>
19 
22 {
23  protected:
25  double x[3];
26 
28  double y[3];
29 
31  double xc0, xc1, xc2;
32 
34  double yc0, yc1, yc2;
35 
38 
41  double XDistance[MaxN_BaseFunctions2D];
42 
45  double YDistance[MaxN_BaseFunctions2D];
46 
49 
51  double FctValues[MaxN_QuadPoints_2D][MaxN_BaseFunctions2D];
52 
54  double XiDerValues[MaxN_QuadPoints_2D][MaxN_BaseFunctions2D];
55 
57  double EtaDerValues[MaxN_QuadPoints_2D][MaxN_BaseFunctions2D];
58 
60  static BaseFunct2D BaseFunctFromOrder[];
61 
63  static FEDesc2D FEDescFromOrder[];
64 
66  double DoubleAux[MaxN_BaseFunctions2D];
67 
69  int IntAux[MaxN_BaseFunctions2D];
70 
72  QuadFormula2D QuadFormula;
73 
75  double *XI, *ETA, *W;
76 
79 
80  public:
83 
85  void GetOrigFromRef(double eta, double xi, double &x, double &y);
86 
88  void GetOrigFromRef(int N_Points, double *eta, double *xi,
89  double *x, double *y, double *absdetjk);
90 
92  void GetOrigFromRef(double *ref, double *orig);
93 
95  void GetRefFromOrig(double x, double y, double &eta, double &xi);
96 
98  void GetRefFromOrig(double *orig, double *ref);
99 
102  void GetOrigValues(BaseFunct2D BaseFunct,
103  int N_Points, double *xi, double *eta,
104  int N_Functs, QuadFormula2D formula);
105 
108  void GetOrigValues(int N_Sets, BaseFunct2D *BaseFunct,
109  int N_Points, double *xi, double *eta,
110  QuadFormula2D formula,
111  bool *Needs2ndDer);
112 
115  void GetOrigValues(double xi, double eta, int N_BaseFunct,
116  double *uref, double *uxiref, double *uetaref,
117  double *uorig, double *uxorig, double *uyorig);
118 
121  void GetOrigValues(int joint, double zeta, int N_BaseFunct,
122  double *uref, double *uxiref, double *uetaref,
123  double *uorig, double *uxorig, double *uyorig);
124 
126  void SetCell(TBaseCell * cell);
127 
129  void SetApproximationOrder(int order)
130  {
131  if(order <= 0)
132  ApproximationOrder = 1;
133  else
134  ApproximationOrder = order;
135  }
136 
138  void SetQuadFormula(QuadFormula2D formula)
139  { QuadFormula = formula; }
140 
142  void GetOuterNormal(int j, double zeta,
143  double &n1, double &n2);
144 
146  void GetTangent(int j, double zeta,
147  double &t1, double &t2);
148 
150  double GetVolume();
151 
153  void GetOrigBoundFromRef( int joint, int N_Points, double *zeta, double *X, double *Y);
154 
155 };
156 
157 #endif
static BaseFunct2D BaseFunctFromOrder[]
Definition: TriaIsoparametric.h:60
double XiDerValues[MaxN_QuadPoints_2D][MaxN_BaseFunctions2D]
Definition: TriaIsoparametric.h:54
void GetTangent(int j, double zeta, double &t1, double &t2)
Definition: TriaIsoparametric.C:829
void SetCell(TBaseCell *cell)
Definition: TriaIsoparametric.C:600
TTriaIsoparametric()
Definition: TriaIsoparametric.C:35
QuadFormula2D QuadFormula
Definition: TriaIsoparametric.h:72
void GetOrigValues(BaseFunct2D BaseFunct, int N_Points, double *xi, double *eta, int N_Functs, QuadFormula2D formula)
Definition: TriaIsoparametric.C:257
double DoubleAux[MaxN_BaseFunctions2D]
Definition: TriaIsoparametric.h:66
Definition: RefTrans2D.h:22
void GetOuterNormal(int j, double zeta, double &n1, double &n2)
Definition: TriaIsoparametric.C:815
int N_QuadPoints
Definition: TriaIsoparametric.h:78
int N_AuxPoints
Definition: TriaIsoparametric.h:37
double XDistance[MaxN_BaseFunctions2D]
Definition: TriaIsoparametric.h:41
double GetVolume()
Definition: TriaIsoparametric.C:890
double x[3]
Definition: TriaIsoparametric.h:25
double y[3]
Definition: TriaIsoparametric.h:28
double YDistance[MaxN_BaseFunctions2D]
Definition: TriaIsoparametric.h:45
double FctValues[MaxN_QuadPoints_2D][MaxN_BaseFunctions2D]
Definition: TriaIsoparametric.h:51
void GetOrigFromRef(double eta, double xi, double &x, double &y)
Definition: TriaIsoparametric.C:40
void SetApproximationOrder(int order)
Definition: TriaIsoparametric.h:129
double xc0
Definition: TriaIsoparametric.h:31
double yc0
Definition: TriaIsoparametric.h:34
information for finite element data structure
Definition: BaseCell.h:25
int IntAux[MaxN_BaseFunctions2D]
Definition: TriaIsoparametric.h:69
double EtaDerValues[MaxN_QuadPoints_2D][MaxN_BaseFunctions2D]
Definition: TriaIsoparametric.h:57
int ApproximationOrder
Definition: TriaIsoparametric.h:48
void GetRefFromOrig(double x, double y, double &eta, double &xi)
Definition: TriaIsoparametric.C:243
void SetQuadFormula(QuadFormula2D formula)
Definition: TriaIsoparametric.h:138
double * XI
Definition: TriaIsoparametric.h:75
void GetOrigBoundFromRef(int joint, int N_Points, double *zeta, double *X, double *Y)
Definition: TriaIsoparametric.C:925
static FEDesc2D FEDescFromOrder[]
Definition: TriaIsoparametric.h:63
Definition: TriaIsoparametric.h:21