ParMooN
 All Classes Functions Variables Friends Pages
BF_N_T_RT0_3D.h
1 // ***********************************************************************
2 // Raviart-Thomas element of zero-th order on tetrahedra, 3D
3 // ***********************************************************************
4 
5 static void N_T_RT0_3D_Funct(double xi, double eta, double zeta,
6  double *values)
7 {
8  // first component
9  values[0] = xi;
10  values[1] = xi;
11  values[2] = xi;
12  values[3] = xi - 1.0;
13 
14  // second component
15  values[4] = eta;
16  values[5] = eta - 1.0;
17  values[6] = eta;
18  values[7] = eta;
19 
20  // third component
21  values[8] = zeta - 1.0;
22  values[9] = zeta;
23  values[10] = zeta;
24  values[11] = zeta;
25 }
26 
27 static void N_T_RT0_3D_DeriveXi(double xi, double eta, double zeta,
28  double *values)
29 {
30  // first component
31  values[0] = 1.0;
32  values[1] = 1.0;
33  values[2] = 1.0;
34  values[3] = 1.0;
35 
36  // second component
37  values[4] = 0;
38  values[5] = 0;
39  values[6] = 0;
40  values[7] = 0;
41 
42  // third component
43  values[8] = 0;
44  values[9] = 0;
45  values[10] = 0;
46  values[11] = 0;
47 }
48 
49 static void N_T_RT0_3D_DeriveEta(double xi, double eta, double zeta,
50  double *values)
51 {
52  // first component
53  values[0] = 0;
54  values[1] = 0;
55  values[2] = 0;
56  values[3] = 0;
57 
58  // second component
59  values[4] = 1.0;
60  values[5] = 1.0;
61  values[6] = 1.0;
62  values[7] = 1.0;
63 
64  // third component
65  values[8] = 0;
66  values[9] = 0;
67  values[10] = 0;
68  values[11] = 0;
69 }
70 
71 static void N_T_RT0_3D_DeriveZeta(double xi, double eta, double zeta,
72  double *values)
73 {
74  // first component
75  values[0] = 0;
76  values[1] = 0;
77  values[2] = 0;
78  values[3] = 0;
79 
80  // second component
81  values[4] = 0;
82  values[5] = 0;
83  values[6] = 0;
84  values[7] = 0;
85 
86  // third component
87  values[8] = 1.0;
88  values[9] = 1.0;
89  values[10] = 1.0;
90  values[11] = 1.0;
91 }
92 
93 static void N_T_RT0_3D_DeriveXiXi(double xi, double eta, double zeta,
94  double *values)
95 {
96  for(int i = 0; i < 12; i++)
97  values[i] = 0;
98 }
99 
100 static void N_T_RT0_3D_DeriveXiEta(double xi, double eta, double zeta,
101  double *values)
102 {
103  for(int i = 0; i < 12; i++)
104  values[i] = 0;
105 }
106 
107 static void N_T_RT0_3D_DeriveXiZeta(double xi, double eta, double zeta,
108  double *values)
109 {
110  for(int i = 0; i < 12; i++)
111  values[i] = 0;
112 }
113 
114 static void N_T_RT0_3D_DeriveEtaEta(double xi, double eta, double zeta,
115  double *values)
116 {
117  for(int i = 0; i < 12; i++)
118  values[i] = 0;
119 }
120 
121 static void N_T_RT0_3D_DeriveEtaZeta(double xi, double eta, double zeta,
122  double *values)
123 {
124  for(int i = 0; i < 12; i++)
125  values[i] = 0;
126 }
127 
128 static void N_T_RT0_3D_DeriveZetaZeta(double xi, double eta, double zeta,
129  double *values)
130 {
131  for(int i = 0; i < 12; i++)
132  values[i] = 0;
133 }
134 
135 TBaseFunct3D *BF_N_T_RT0_3D_Obj =
136 new TBaseFunct3D(4, BF_N_T_RT0_3D, BFUnitTetrahedron,
137  N_T_RT0_3D_Funct, N_T_RT0_3D_DeriveXi,
138  N_T_RT0_3D_DeriveEta, N_T_RT0_3D_DeriveZeta,
139  N_T_RT0_3D_DeriveXiXi, N_T_RT0_3D_DeriveXiEta,
140  N_T_RT0_3D_DeriveXiZeta, N_T_RT0_3D_DeriveEtaEta,
141  N_T_RT0_3D_DeriveEtaZeta, N_T_RT0_3D_DeriveZetaZeta,
142  1, 1,
143  0, NULL, 3);
Definition: BaseFunct3D.h:27