ParMooN
 All Classes Functions Variables Friends Pages
BF_N_T_RT0_2D.h
1 // ***********************************************************************
2 // P0 Raviart-Thomas vector element, nonconforming , 2D
3 // History: 02.09.2010 implementation (Alfonso)
4 // ***********************************************************************
5 
6 // base function values
7 // vector function, orthoonal to edges,
8 // function i has
9 // * flux 1 through edge i
10 // * flux 0 through other edges
11 static void N_T_RT0_2D_Funct(double xi, double eta, double *values)
12 {
13  // first component
14  values[0]= xi;
15  values[1]= xi;
16  values[2]= xi-1.;
17 
18  // second component
19  values[3]= eta-1.;
20  values[4]= eta;
21  values[5]= eta;
22 }
23 
24 // values of the derivatives in xi direction
25 static void N_T_RT0_2D_DeriveXi(double xi, double eta, double *values)
26 {
27  // first component
28  values[0]= 1.;
29  values[1]= 1.;
30  values[2]= 1.;
31 
32  // second component
33  values[3]= 0.;
34  values[4]= 0.;
35  values[5]= 0.;
36 }
37 
38 // values of the derivatives in eta direction
39 static void N_T_RT0_2D_DeriveEta(double xi, double eta, double *values)
40 {
41  // first component
42  values[0]= 0.;
43  values[1]= 0.;
44  values[2]= 0.;
45 
46  // second component
47  values[3]= 1.;
48  values[4]= 1.;
49  values[5]= 1.;
50 }
51 
52 // values of derivatives in xi-xi direction
53 static void N_T_RT0_2D_DeriveXiXi(double xi, double eta, double *values)
54 {
55  // first component
56  values[0]= 0.;
57  values[1]= 0.;
58  values[2]= 0.;
59 
60  // second component
61  values[3]= 0.;
62  values[4]= 0.;
63  values[5]= 0;
64 }
65 
66 // values of derivatives in eta-eta direction
67 static void N_T_RT0_2D_DeriveEtaEta(double xi, double eta, double *values)
68 {
69  // first component
70  values[0]= 0;
71  values[1]= 0;
72  values[2]= 0;
73 
74  // second component
75  values[3]= 0;
76  values[4]= 0;
77  values[5]= 0;
78 }
79 
80 // values of derivatives in xi-eta direction
81 static void N_T_RT0_2D_DeriveXiEta(double xi, double eta, double *values)
82 {
83  // first component
84  values[0]= 0;
85  values[1]= 0;
86  values[2]= 0;
87 
88  // second component
89  values[3]= 0;
90  values[4]= 0;
91  values[5]= 0;
92 }
93 
94 // ***********************************************************************
95 
96 TBaseFunct2D *BF_N_T_RT0_2D_Obj = new TBaseFunct2D
97  (3, BF_N_T_RT0_2D, BFUnitTriangle,
98  N_T_RT0_2D_Funct, N_T_RT0_2D_DeriveXi,
99  N_T_RT0_2D_DeriveEta, N_T_RT0_2D_DeriveXiXi,
100  N_T_RT0_2D_DeriveXiEta, N_T_RT0_2D_DeriveEtaEta, 1, 1,
101  0, NULL, 2);
Definition: BaseFunct2D.h:27