ParMooN
 All Classes Functions Variables Friends Pages
BF_D_T_P2_2D.h
1 // ***********************************************************************
2 // P2 element, discontinous, 2D, triangle
3 // ***********************************************************************
4 
5 // base function values
6 static void D_T_P2_2D_Funct(double xi, double eta, double *values)
7 {
8  double t7, t9, t10, t11;
9 
10  t7 = xi*xi;
11  t9 = xi*eta;
12  t10 = 6.0*t9;
13  t11 = eta*eta;
14 
15  values[0] = 1.0;
16  values[1] = -8.0+24.0*xi;
17  values[2] = -8.0+24.0*eta;
18  values[3] = 1.0-6.0*xi-2.0*eta+6.0*t7+t10+t11;
19  values[4] = 1.0-4.0*xi-4.0*eta+3.0*t7+8.0*t9+3.0*t11;
20  values[5] = 1.0-2.0*xi-6.0*eta+t7+t10+6.0*t11;
21 }
22 
23 // values of the derivatives in xi direction
24 static void D_T_P2_2D_DeriveXi(double xi, double eta, double *values)
25 {
26  double t2;
27 
28  t2 = 6.0*eta;
29 
30  values[0] = 0.0;
31  values[1] = 24.0;
32  values[2] = 0.0;
33  values[3] = -6.0+12.0*xi+t2;
34  values[4] = -4.0+6.0*xi+8.0*eta;
35  values[5] = -2.0+2.0*xi+t2;
36 }
37 
38 // values of the derivatives in eta direction
39 static void D_T_P2_2D_DeriveEta(double xi, double eta, double *values)
40 {
41  double t1;
42 
43  t1 = 6.0*xi;
44 
45  values[0] = 0.0;
46  values[1] = 0.0;
47  values[2] = 24.0;
48  values[3] = -2.0+t1+2.0*eta;
49  values[4] = -4.0+8.0*xi+6.0*eta;
50  values[5] = -6.0+t1+12.0*eta;
51 }
52 
53 // values of the derivatives in xi-xi direction
54 static void D_T_P2_2D_DeriveXiXi(double xi, double eta,
55  double *values)
56 {
57  values[0] = 0.0;
58  values[1] = 0.0;
59  values[2] = 0.0;
60  values[3] = 12.0;
61  values[4] = 6.0;
62  values[5] = 2.0;
63 }
64 
65 // values of the derivatives in xi-eta direction
66 static void D_T_P2_2D_DeriveXiEta(double xi, double eta,
67  double *values)
68 {
69  values[0] = 0.0;
70  values[1] = 0.0;
71  values[2] = 0.0;
72  values[3] = 6.0;
73  values[4] = 8.0;
74  values[5] = 6.0;
75 }
76 
77 // values of the derivatives in eta-eta direction
78 static void D_T_P2_2D_DeriveEtaEta(double xi, double eta,
79  double *values)
80 {
81  values[0] = 0.0;
82  values[1] = 0.0;
83  values[2] = 0.0;
84  values[3] = 2.0;
85  values[4] = 6.0;
86  values[5] = 12.0;
87 }
88 
89 // ***********************************************************************
90 
91 TBaseFunct2D *BF_D_T_P2_2D_Obj = new TBaseFunct2D
92  (6, BF_D_T_P2_2D, BFUnitTriangle,
93  D_T_P2_2D_Funct, D_T_P2_2D_DeriveXi,
94  D_T_P2_2D_DeriveEta, D_T_P2_2D_DeriveXiXi,
95  D_T_P2_2D_DeriveXiEta, D_T_P2_2D_DeriveEtaEta, 2, 2,
96  0, NULL);
Definition: BaseFunct2D.h:27