ParMooN
 All Classes Functions Variables Friends Pages
BF_N_Q_Q1_2D.h
1 // ***********************************************************************
2 // Q1 element, nonconforming, 2D
3 // ***********************************************************************
4 
5 // base function values
6 static void N_Q_Q1_2D_Funct(double xi, double eta, double *values)
7 {
8  double h=0.375*(xi*xi-eta*eta);
9  values[0]=-h -0.5*eta+0.25;
10  values[1]= h+0.5*xi +0.25;
11  values[2]=-h +0.5*eta+0.25;
12  values[3]= h-0.5*xi +0.25;
13 }
14 
15 // values of the derivatives in xi direction
16 static void N_Q_Q1_2D_DeriveXi(double xi, double eta, double *values)
17 {
18  values[0]=-0.75*xi;
19  values[1]= 0.75*xi+0.5;
20  values[2]=-0.75*xi;
21  values[3]= 0.75*xi-0.5;
22 }
23 
24 // values of the derivatives in eta direction
25 static void N_Q_Q1_2D_DeriveEta(double xi, double eta, double *values)
26 {
27  values[0]= 0.75*eta-0.5;
28  values[1]=-0.75*eta;
29  values[2]= 0.75*eta+0.5;
30  values[3]=-0.75*eta;
31 }
32 
33 // values of derivatives in xi-xi direction
34 static void N_Q_Q1_2D_DeriveXiXi(double xi, double eta, double *values)
35 {
36  values[0]=-0.75;
37  values[1]= 0.75;
38  values[2]=-0.75;
39  values[3]= 0.75;
40 }
41 
42 // values of derivatives in eta-eta direction
43 static void N_Q_Q1_2D_DeriveEtaEta(double xi, double eta, double *values)
44 {
45  values[0]= 0.75;
46  values[1]=-0.75;
47  values[2]= 0.75;
48  values[3]=-0.75;
49 }
50 
51 // values of derivatives in xi-eta direction
52 static void N_Q_Q1_2D_DeriveXiEta(double xi, double eta, double *values)
53 {
54  values[0]=0;
55  values[1]=0;
56  values[2]=0;
57  values[3]=0;
58 }
59 
60 // ***********************************************************************
61 
62 TBaseFunct2D *BF_N_Q_Q1_2D_Obj = new TBaseFunct2D
63  (4, BF_N_Q_Q1_2D, BFUnitSquare,
64  N_Q_Q1_2D_Funct, N_Q_Q1_2D_DeriveXi,
65  N_Q_Q1_2D_DeriveEta, N_Q_Q1_2D_DeriveXiXi,
66  N_Q_Q1_2D_DeriveXiEta, N_Q_Q1_2D_DeriveEtaEta, 2, 1,
67  0, NULL);
Definition: BaseFunct2D.h:27