ParMooN
 All Classes Functions Variables Friends Pages
BF_C_T_P1MINI_2D.h
1 // ***********************************************************************
2 // P1MINI element, conforming, 2D
3 // ***********************************************************************
4 
5 // base function values
6 static void C_T_P1MINI_2D_Funct(double xi, double eta, double *values)
7 {
8  double t3, t4;
9 
10  t3 = (1.0-xi-eta)*xi*eta;
11  t4 = 20.0*t3;
12 
13  values[0] = 1.0-xi-eta-t4;
14  values[1] = xi-t4;
15  values[2] = eta-t4;
16  values[3] = 27*t3;
17 }
18 
19 // values of the derivatives in xi direction
20 static void C_T_P1MINI_2D_DeriveXi(double xi, double eta, double *values)
21 {
22  double t1, t2, t4, t5, t8;
23 
24  t1 = xi*eta;
25  t2 = 20.0*t1;
26  t4 = (1.0-xi-eta)*eta;
27  t5 = 20.0*t4;
28  t8 = t1-t4;
29 
30  values[0] = -1.0+t2-t5;
31  values[1] = 1.0+t2-t5;
32  values[2] = 20.0*t8;
33  values[3] = -27*t8;
34 }
35 
36 // values of the derivatives in eta direction
37 static void C_T_P1MINI_2D_DeriveEta(double xi, double eta, double *values)
38 {
39  double t1, t2, t4, t5, t7;
40 
41  t1 = xi*eta;
42  t2 = 20.0*t1;
43  t4 = (1.0-xi-eta)*xi;
44  t5 = 20.0*t4;
45  t7 = t1-t4;
46 
47  values[0] = -1.0+t2-t5;
48  values[1] = 20.0*t7;
49  values[2] = 1.0+t2-t5;
50  values[3] = -27*t7;
51 }
52 
53 // values of the derivatives in xi-xi direction
54 static void C_T_P1MINI_2D_DeriveXiXi(double xi, double eta, double *values)
55 {
56  double t1;
57 
58  t1 = 40.0*eta;
59  values[0] = t1;
60  values[1] = t1;
61  values[2] = t1;
62  values[3] = -27*2.0*eta;
63 }
64 
65 // values of the derivatives in xi-eta direction
66 static void C_T_P1MINI_2D_DeriveXiEta(double xi, double eta, double *values)
67 {
68  double t3;
69 
70  t3 = 40.0*xi+40.0*eta-20.0;
71 
72  values[0] = t3;
73  values[1] = t3;
74  values[2] = t3;
75  values[3] = -27*(2.0*xi-2.0*eta+1.0);
76 }
77 
78 // values of the derivatives in eta-eta direction
79 static void C_T_P1MINI_2D_DeriveEtaEta(double xi, double eta, double *values)
80 {
81  double t1;
82 
83  t1 = 40.0*xi;
84 
85  values[0] = t1;
86  values[1] = t1;
87  values[2] = t1;
88  values[3] = -27*2.0*xi;
89 }
90 
91 // ***********************************************************************
92 
93 TBaseFunct2D *BF_C_T_P1MINI_2D_Obj = new TBaseFunct2D
94  (4, BF_C_T_P1MINI_2D, BFUnitTriangle,
95  C_T_P1MINI_2D_Funct, C_T_P1MINI_2D_DeriveXi,
96  C_T_P1MINI_2D_DeriveEta, C_T_P1MINI_2D_DeriveXiXi,
97  C_T_P1MINI_2D_DeriveXiEta, C_T_P1MINI_2D_DeriveEtaEta, 3, 1,
98  0, NULL);
Definition: BaseFunct2D.h:27