ParMooN
 All Classes Functions Variables Friends Pages
BF_D_Q_P3_2D.h
1 // ***********************************************************************
2 // P3 element, discontinous, 2D, quadrilateral
3 // ***********************************************************************
4 
5 // base function values
6 static void D_Q_P3_2D_Funct(double xi, double eta, double *values)
7 {
8  values[0] = 1;
9  values[1] = 3*xi;
10  values[2] = 3*eta;
11  values[3] = 1.25*(3*xi*xi-1);
12  values[4] = 9*xi*eta;
13  values[5] = 1.25*(3*eta*eta-1);
14  values[6] = 1.75*xi*(5*xi*xi-3);
15  values[7] = 3.75*eta*(3*xi*xi-1);
16  values[8] = 3.75*xi*(3*eta*eta-1);
17  values[9] = 1.75*eta*(5*eta*eta-3);
18 }
19 
20 // values of the derivatives in xi direction
21 static void D_Q_P3_2D_DeriveXi(double xi, double eta, double *values)
22 {
23  values[0] = 0;
24  values[1] = 3;
25  values[2] = 0;
26  values[3] = 7.5*xi;
27  values[4] = 9*eta;
28  values[5] = 0;
29  values[6] = 26.25*xi*xi-5.25;
30  values[7] = 22.5*xi*eta;
31  values[8] = 11.25*eta*eta-3.75;
32  values[9] = 0;
33 }
34 
35 // values of the derivatives in eta direction
36 static void D_Q_P3_2D_DeriveEta(double xi, double eta, double *values)
37 {
38  values[0] = 0;
39  values[1] = 0;
40  values[2] = 3;
41  values[3] = 0;
42  values[4] = 9*xi;
43  values[5] = 7.5*eta;
44  values[6] = 0;
45  values[7] = 11.25*xi*xi-3.75;
46  values[8] = 22.5*xi*eta;
47  values[9] = 26.25*eta*eta-5.25;
48 }
49 
50 // values of the derivatives in xi-xi direction
51 static void D_Q_P3_2D_DeriveXiXi(double xi, double eta,
52  double *values)
53 {
54  values[0]=0;
55  values[1]=0;
56  values[2]=0;
57  values[3]=7.5;
58  values[4]=0;
59  values[5]=0;
60  values[6]=52.5*xi;
61  values[7]=22.5*eta;
62  values[8]=0;
63  values[9]=0;
64 }
65 
66 // values of the derivatives in eta-eta direction
67 static void D_Q_P3_2D_DeriveEtaEta(double xi, double eta,
68  double *values)
69 {
70  values[0]=0;
71  values[1]=0;
72  values[2]=0;
73  values[3]=0;
74  values[4]=0;
75  values[5]=7.5;
76  values[6]=0;
77  values[7]=0;
78  values[8]=22.5*xi;
79  values[9]=52.5*eta;
80 }
81 
82 // values of the derivatives in xi-eta direction
83 static void D_Q_P3_2D_DeriveXiEta(double xi, double eta,
84  double *values)
85 {
86  values[0]=0;
87  values[1]=0;
88  values[2]=0;
89  values[3]=0;
90  values[4]=9;
91  values[5]=0;
92  values[6]=0;
93  values[7]=22.5*xi;
94  values[8]=22.5*eta;
95  values[9]=0;
96 }
97 // ***********************************************************************
98 
99 TBaseFunct2D *BF_D_Q_P3_2D_Obj = new TBaseFunct2D
100  (10, BF_D_Q_P3_2D, BFUnitSquare,
101  D_Q_P3_2D_Funct, D_Q_P3_2D_DeriveXi,
102  D_Q_P3_2D_DeriveEta, D_Q_P3_2D_DeriveXiXi,
103  D_Q_P3_2D_DeriveXiEta, D_Q_P3_2D_DeriveEtaEta, 3, 3,
104  0, NULL);
Definition: BaseFunct2D.h:27