ParMooN
 All Classes Functions Variables Friends Pages
BF_D_T_SV1_2D.h
1 // ***********************************************************************
2 // SV1 element, discont. pressure, 2D
3 // ***********************************************************************
4 
5 // base function values
6 static void D_T_SV1_2D_Funct(double xi, double eta, double *values)
7 {
8  // first triangle
9  if( (xi-eta)>0 && (xi+2*eta-1)<0 )
10  {
11  values[0] = 1;
12  values[1] = 2*xi+eta-1;
13  values[2] = xi+5*eta-1;
14  values[3] = 0;
15  values[4] = 0;
16  values[5] = 0;
17  values[6] = 0;
18  values[7] = 0;
19  values[8] = 0;
20  }
21  else
22  // second triangle
23  if( (xi+2*eta-1)>=0 && (-2*xi-eta+1)<0 )
24  {
25  values[0] = 0;
26  values[1] = 0;
27  values[2] = 0;
28  values[3] = 1;
29  values[4] = -xi+eta;
30  values[5] = -5*xi-4*eta+4;
31  values[6] = 0;
32  values[7] = 0;
33  values[8] = 0;
34  }
35  else
36  {
37  values[0] = 0;
38  values[1] = 0;
39  values[2] = 0;
40  values[3] = 0;
41  values[4] = 0;
42  values[5] = 0;
43  values[6] = 1;
44  values[7] = -xi-2*eta+1;
45  values[8] = 4*xi-eta;
46  }
47 }
48 
49 // values of the derivatives in xi direction
50 static void D_T_SV1_2D_DeriveXi(double xi, double eta, double *values)
51 {
52  // first triangle
53  if( (xi-eta)>0 && (xi+2*eta-1)<0 )
54  {
55  values[0] = 0;
56  values[1] = 2;
57  values[2] = 1;
58  values[3] = 0;
59  values[4] = 0;
60  values[5] = 0;
61  values[6] = 0;
62  values[7] = 0;
63  values[8] = 0;
64  }
65  else
66  // second triangle
67  if( (xi+2*eta-1)>=0 && (-2*xi-eta+1)<0 )
68  {
69  values[0] = 0;
70  values[1] = 0;
71  values[2] = 0;
72  values[3] = 0;
73  values[4] = -1;
74  values[5] = -5;
75  values[6] = 0;
76  values[7] = 0;
77  values[8] = 0;
78  }
79  else
80  {
81  values[0] = 0;
82  values[1] = 0;
83  values[2] = 0;
84  values[3] = 0;
85  values[4] = 0;
86  values[5] = 0;
87  values[6] = 0;
88  values[7] = -1;
89  values[8] = 4;
90  }
91 }
92 
93 // values of the derivatives in eta direction
94 static void D_T_SV1_2D_DeriveEta(double xi, double eta, double *values)
95 {
96  // first triangle
97  if( (xi-eta)>0 && (xi+2*eta-1)<0 )
98  {
99  values[0] = 0;
100  values[1] = 1;
101  values[2] = 5;
102  values[3] = 0;
103  values[4] = 0;
104  values[5] = 0;
105  values[6] = 0;
106  values[7] = 0;
107  values[8] = 0;
108  }
109  else
110  // second triangle
111  if( (xi+2*eta-1)>=0 && (-2*xi-eta+1)<0 )
112  {
113  values[0] = 0;
114  values[1] = 0;
115  values[2] = 0;
116  values[3] = 0;
117  values[4] = 1;
118  values[5] = -4;
119  values[6] = 0;
120  values[7] = 0;
121  values[8] = 0;
122  }
123  else
124  {
125  values[0] = 0;
126  values[1] = 0;
127  values[2] = 0;
128  values[3] = 0;
129  values[4] = 0;
130  values[5] = 0;
131  values[6] = 0;
132  values[7] = -2;
133  values[8] = -1;
134  }
135 }
136 
137 // values of the derivatives in xi-xi direction
138 static void D_T_SV1_2D_DeriveXiXi(double xi, double eta, double *values)
139 {
140  values[0] = 0;
141  values[1] = 0;
142  values[2] = 0;
143  values[3] = 0;
144  values[4] = 0;
145  values[5] = 0;
146  values[6] = 0;
147  values[7] = 0;
148  values[8] = 0;
149 }
150 
151 // values of the derivatives in xi-eta direction
152 static void D_T_SV1_2D_DeriveXiEta(double xi, double eta, double *values)
153 {
154  values[0] = 0;
155  values[1] = 0;
156  values[2] = 0;
157  values[3] = 0;
158  values[4] = 0;
159  values[5] = 0;
160  values[6] = 0;
161  values[7] = 0;
162  values[8] = 0;
163 }
164 
165 // values of the derivatives in eta-eta direction
166 static void D_T_SV1_2D_DeriveEtaEta(double xi, double eta, double *values)
167 {
168  values[0] = 0;
169  values[1] = 0;
170  values[2] = 0;
171  values[3] = 0;
172  values[4] = 0;
173  values[5] = 0;
174  values[6] = 0;
175  values[7] = 0;
176  values[8] = 0;
177 }
178 
179 // ***********************************************************************
180 
181 TBaseFunct2D *BF_D_T_SV1_2D_Obj = new TBaseFunct2D
182  (9, BF_D_T_SV1_2D, BFUnitTriangle,
183  D_T_SV1_2D_Funct, D_T_SV1_2D_DeriveXi,
184  D_T_SV1_2D_DeriveEta, D_T_SV1_2D_DeriveXiXi,
185  D_T_SV1_2D_DeriveXiEta, D_T_SV1_2D_DeriveEtaEta, 1, 1,
186  0, NULL);
Definition: BaseFunct2D.h:27