PolyFEM
Loading...
Searching...
No Matches
auto_q_bases_2d_val.cpp
Go to the documentation of this file.
2
3
4namespace polyfem {
5namespace autogen {
6namespace {
7double q_0_basis_value_2d_single_0(double x, double y) {
8double result;
9result = 1;
10return result;
11}
12
13
14
15void q_0_basis_value_2d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
16result_0.resize(uv.rows(), 1);
17switch(local_index){
18 case 0:
19 for (Eigen::Index i = 0; i < uv.rows(); ++i)
20 result_0(i, 0) = q_0_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
21 break;
22 default: assert(false);
23}
24}
25double q_1_basis_value_2d_single_0(double x, double y) {
26double result;
27result = 1.0*(x - 1)*(y - 1);
28return result;
29}
30
31double q_1_basis_value_2d_single_1(double x, double y) {
32double result;
33result = -1.0*x*(y - 1);
34return result;
35}
36
37double q_1_basis_value_2d_single_2(double x, double y) {
38double result;
39result = 1.0*x*y;
40return result;
41}
42
43double q_1_basis_value_2d_single_3(double x, double y) {
44double result;
45result = -1.0*y*(x - 1);
46return result;
47}
48
49
50
51void q_1_basis_value_2d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
52result_0.resize(uv.rows(), 1);
53switch(local_index){
54 case 0:
55 for (Eigen::Index i = 0; i < uv.rows(); ++i)
56 result_0(i, 0) = q_1_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
57 break;
58 case 1:
59 for (Eigen::Index i = 0; i < uv.rows(); ++i)
60 result_0(i, 0) = q_1_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
61 break;
62 case 2:
63 for (Eigen::Index i = 0; i < uv.rows(); ++i)
64 result_0(i, 0) = q_1_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
65 break;
66 case 3:
67 for (Eigen::Index i = 0; i < uv.rows(); ++i)
68 result_0(i, 0) = q_1_basis_value_2d_single_3(uv(i, 0), uv(i, 1));
69 break;
70 default: assert(false);
71}
72}
73double q_2_basis_value_2d_single_0(double x, double y) {
74double result;
75result = 1.0*(x - 1)*(2.0*x - 1.0)*(y - 1)*(2.0*y - 1.0);
76return result;
77}
78
79double q_2_basis_value_2d_single_1(double x, double y) {
80double result;
81result = 1.0*x*(2.0*x - 1.0)*(y - 1)*(2.0*y - 1.0);
82return result;
83}
84
85double q_2_basis_value_2d_single_2(double x, double y) {
86double result;
87result = 1.0*x*y*(2.0*x - 1.0)*(2.0*y - 1.0);
88return result;
89}
90
91double q_2_basis_value_2d_single_3(double x, double y) {
92double result;
93result = 1.0*y*(x - 1)*(2.0*x - 1.0)*(2.0*y - 1.0);
94return result;
95}
96
97double q_2_basis_value_2d_single_4(double x, double y) {
98double result;
99result = -4.0*x*(x - 1)*(y - 1)*(2.0*y - 1.0);
100return result;
101}
102
103double q_2_basis_value_2d_single_5(double x, double y) {
104double result;
105result = -4.0*x*y*(2.0*x - 1.0)*(y - 1);
106return result;
107}
108
109double q_2_basis_value_2d_single_6(double x, double y) {
110double result;
111result = -4.0*x*y*(x - 1)*(2.0*y - 1.0);
112return result;
113}
114
115double q_2_basis_value_2d_single_7(double x, double y) {
116double result;
117result = -4.0*y*(x - 1)*(2.0*x - 1.0)*(y - 1);
118return result;
119}
120
121double q_2_basis_value_2d_single_8(double x, double y) {
122double result;
123result = 16.0*x*y*(x - 1)*(y - 1);
124return result;
125}
126
127
128
129void q_2_basis_value_2d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
130result_0.resize(uv.rows(), 1);
131switch(local_index){
132 case 0:
133 for (Eigen::Index i = 0; i < uv.rows(); ++i)
134 result_0(i, 0) = q_2_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
135 break;
136 case 1:
137 for (Eigen::Index i = 0; i < uv.rows(); ++i)
138 result_0(i, 0) = q_2_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
139 break;
140 case 2:
141 for (Eigen::Index i = 0; i < uv.rows(); ++i)
142 result_0(i, 0) = q_2_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
143 break;
144 case 3:
145 for (Eigen::Index i = 0; i < uv.rows(); ++i)
146 result_0(i, 0) = q_2_basis_value_2d_single_3(uv(i, 0), uv(i, 1));
147 break;
148 case 4:
149 for (Eigen::Index i = 0; i < uv.rows(); ++i)
150 result_0(i, 0) = q_2_basis_value_2d_single_4(uv(i, 0), uv(i, 1));
151 break;
152 case 5:
153 for (Eigen::Index i = 0; i < uv.rows(); ++i)
154 result_0(i, 0) = q_2_basis_value_2d_single_5(uv(i, 0), uv(i, 1));
155 break;
156 case 6:
157 for (Eigen::Index i = 0; i < uv.rows(); ++i)
158 result_0(i, 0) = q_2_basis_value_2d_single_6(uv(i, 0), uv(i, 1));
159 break;
160 case 7:
161 for (Eigen::Index i = 0; i < uv.rows(); ++i)
162 result_0(i, 0) = q_2_basis_value_2d_single_7(uv(i, 0), uv(i, 1));
163 break;
164 case 8:
165 for (Eigen::Index i = 0; i < uv.rows(); ++i)
166 result_0(i, 0) = q_2_basis_value_2d_single_8(uv(i, 0), uv(i, 1));
167 break;
168 default: assert(false);
169}
170}
171double q_3_basis_value_2d_single_0(double x, double y) {
172double result;
173result = 1.0*(x - 1)*(1.5*x - 1.0)*(3.0*x - 1.0)*(y - 1)*(1.5*y - 1.0)*(3.0*y - 1.0);
174return result;
175}
176
177double q_3_basis_value_2d_single_1(double x, double y) {
178double result;
179result = -1.0*x*(1.4999999999999998*x - 0.49999999999999989)*(2.9999999999999996*x - 1.9999999999999996)*(y - 1)*(1.5*y - 1.0)*(3.0*y - 1.0);
180return result;
181}
182
183double q_3_basis_value_2d_single_2(double x, double y) {
184double result;
185result = 1.0*x*y*(1.4999999999999998*x - 0.49999999999999989)*(2.9999999999999996*x - 1.9999999999999996)*(1.4999999999999998*y - 0.49999999999999989)*(2.9999999999999996*y - 1.9999999999999996);
186return result;
187}
188
189double q_3_basis_value_2d_single_3(double x, double y) {
190double result;
191result = -1.0*y*(x - 1)*(1.5*x - 1.0)*(3.0*x - 1.0)*(1.4999999999999998*y - 0.49999999999999989)*(2.9999999999999996*y - 1.9999999999999996);
192return result;
193}
194
195double q_3_basis_value_2d_single_4(double x, double y) {
196double result;
197result = -4.4999999999999991*x*(x - 1)*(3.0*x - 2.0)*(y - 1)*(1.5*y - 1.0)*(3.0*y - 1.0);
198return result;
199}
200
201double q_3_basis_value_2d_single_5(double x, double y) {
202double result;
203result = 4.4999999999999991*x*(x - 1)*(3.0*x - 1.0)*(y - 1)*(1.5*y - 1.0)*(3.0*y - 1.0);
204return result;
205}
206
207double q_3_basis_value_2d_single_6(double x, double y) {
208double result;
209result = 4.4999999999999991*x*y*(1.4999999999999998*x - 0.49999999999999989)*(2.9999999999999996*x - 1.9999999999999996)*(y - 1)*(3.0*y - 2.0);
210return result;
211}
212
213double q_3_basis_value_2d_single_7(double x, double y) {
214double result;
215result = -4.4999999999999991*x*y*(1.4999999999999998*x - 0.49999999999999989)*(2.9999999999999996*x - 1.9999999999999996)*(y - 1)*(3.0*y - 1.0);
216return result;
217}
218
219double q_3_basis_value_2d_single_8(double x, double y) {
220double result;
221result = -4.4999999999999991*x*y*(x - 1)*(3.0*x - 1.0)*(1.4999999999999998*y - 0.49999999999999989)*(2.9999999999999996*y - 1.9999999999999996);
222return result;
223}
224
225double q_3_basis_value_2d_single_9(double x, double y) {
226double result;
227result = 4.4999999999999991*x*y*(x - 1)*(3.0*x - 2.0)*(1.4999999999999998*y - 0.49999999999999989)*(2.9999999999999996*y - 1.9999999999999996);
228return result;
229}
230
231double q_3_basis_value_2d_single_10(double x, double y) {
232double result;
233result = 4.4999999999999991*y*(x - 1)*(1.5*x - 1.0)*(3.0*x - 1.0)*(y - 1)*(3.0*y - 1.0);
234return result;
235}
236
237double q_3_basis_value_2d_single_11(double x, double y) {
238double result;
239result = -4.4999999999999991*y*(x - 1)*(1.5*x - 1.0)*(3.0*x - 1.0)*(y - 1)*(3.0*y - 2.0);
240return result;
241}
242
243double q_3_basis_value_2d_single_12(double x, double y) {
244double result;
245result = 20.249999999999993*x*y*(x - 1)*(3.0*x - 2.0)*(y - 1)*(3.0*y - 2.0);
246return result;
247}
248
249double q_3_basis_value_2d_single_13(double x, double y) {
250double result;
251result = -20.249999999999993*x*y*(x - 1)*(3.0*x - 2.0)*(y - 1)*(3.0*y - 1.0);
252return result;
253}
254
255double q_3_basis_value_2d_single_14(double x, double y) {
256double result;
257result = -20.249999999999993*x*y*(x - 1)*(3.0*x - 1.0)*(y - 1)*(3.0*y - 2.0);
258return result;
259}
260
261double q_3_basis_value_2d_single_15(double x, double y) {
262double result;
263result = 20.249999999999993*x*y*(x - 1)*(3.0*x - 1.0)*(y - 1)*(3.0*y - 1.0);
264return result;
265}
266
267
268
269void q_3_basis_value_2d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
270result_0.resize(uv.rows(), 1);
271switch(local_index){
272 case 0:
273 for (Eigen::Index i = 0; i < uv.rows(); ++i)
274 result_0(i, 0) = q_3_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
275 break;
276 case 1:
277 for (Eigen::Index i = 0; i < uv.rows(); ++i)
278 result_0(i, 0) = q_3_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
279 break;
280 case 2:
281 for (Eigen::Index i = 0; i < uv.rows(); ++i)
282 result_0(i, 0) = q_3_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
283 break;
284 case 3:
285 for (Eigen::Index i = 0; i < uv.rows(); ++i)
286 result_0(i, 0) = q_3_basis_value_2d_single_3(uv(i, 0), uv(i, 1));
287 break;
288 case 4:
289 for (Eigen::Index i = 0; i < uv.rows(); ++i)
290 result_0(i, 0) = q_3_basis_value_2d_single_4(uv(i, 0), uv(i, 1));
291 break;
292 case 5:
293 for (Eigen::Index i = 0; i < uv.rows(); ++i)
294 result_0(i, 0) = q_3_basis_value_2d_single_5(uv(i, 0), uv(i, 1));
295 break;
296 case 6:
297 for (Eigen::Index i = 0; i < uv.rows(); ++i)
298 result_0(i, 0) = q_3_basis_value_2d_single_6(uv(i, 0), uv(i, 1));
299 break;
300 case 7:
301 for (Eigen::Index i = 0; i < uv.rows(); ++i)
302 result_0(i, 0) = q_3_basis_value_2d_single_7(uv(i, 0), uv(i, 1));
303 break;
304 case 8:
305 for (Eigen::Index i = 0; i < uv.rows(); ++i)
306 result_0(i, 0) = q_3_basis_value_2d_single_8(uv(i, 0), uv(i, 1));
307 break;
308 case 9:
309 for (Eigen::Index i = 0; i < uv.rows(); ++i)
310 result_0(i, 0) = q_3_basis_value_2d_single_9(uv(i, 0), uv(i, 1));
311 break;
312 case 10:
313 for (Eigen::Index i = 0; i < uv.rows(); ++i)
314 result_0(i, 0) = q_3_basis_value_2d_single_10(uv(i, 0), uv(i, 1));
315 break;
316 case 11:
317 for (Eigen::Index i = 0; i < uv.rows(); ++i)
318 result_0(i, 0) = q_3_basis_value_2d_single_11(uv(i, 0), uv(i, 1));
319 break;
320 case 12:
321 for (Eigen::Index i = 0; i < uv.rows(); ++i)
322 result_0(i, 0) = q_3_basis_value_2d_single_12(uv(i, 0), uv(i, 1));
323 break;
324 case 13:
325 for (Eigen::Index i = 0; i < uv.rows(); ++i)
326 result_0(i, 0) = q_3_basis_value_2d_single_13(uv(i, 0), uv(i, 1));
327 break;
328 case 14:
329 for (Eigen::Index i = 0; i < uv.rows(); ++i)
330 result_0(i, 0) = q_3_basis_value_2d_single_14(uv(i, 0), uv(i, 1));
331 break;
332 case 15:
333 for (Eigen::Index i = 0; i < uv.rows(); ++i)
334 result_0(i, 0) = q_3_basis_value_2d_single_15(uv(i, 0), uv(i, 1));
335 break;
336 default: assert(false);
337}
338}
339double q_m2_basis_value_2d_single_0(double x, double y) {
340double result;
341result = -1.0*(x - 1)*(y - 1)*(2*x + 2*y - 1);
342return result;
343}
344
345double q_m2_basis_value_2d_single_1(double x, double y) {
346double result;
347result = 1.0*x*(y - 1)*(-2*x + 2*y + 1);
348return result;
349}
350
351double q_m2_basis_value_2d_single_2(double x, double y) {
352double result;
353result = x*y*(2.0*x + 2.0*y - 3.0);
354return result;
355}
356
357double q_m2_basis_value_2d_single_3(double x, double y) {
358double result;
359result = 1.0*y*(x - 1)*(2*x - 2*y + 1);
360return result;
361}
362
363double q_m2_basis_value_2d_single_4(double x, double y) {
364double result;
365result = 4*x*(x - 1)*(y - 1);
366return result;
367}
368
369double q_m2_basis_value_2d_single_5(double x, double y) {
370double result;
371result = -4*x*y*(y - 1);
372return result;
373}
374
375double q_m2_basis_value_2d_single_6(double x, double y) {
376double result;
377result = -4*x*y*(x - 1);
378return result;
379}
380
381double q_m2_basis_value_2d_single_7(double x, double y) {
382double result;
383result = 4*y*(x - 1)*(y - 1);
384return result;
385}
386
387
388
389void q_m2_basis_value_2d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
390result_0.resize(uv.rows(), 1);
391switch(local_index){
392 case 0:
393 for (Eigen::Index i = 0; i < uv.rows(); ++i)
394 result_0(i, 0) = q_m2_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
395 break;
396 case 1:
397 for (Eigen::Index i = 0; i < uv.rows(); ++i)
398 result_0(i, 0) = q_m2_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
399 break;
400 case 2:
401 for (Eigen::Index i = 0; i < uv.rows(); ++i)
402 result_0(i, 0) = q_m2_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
403 break;
404 case 3:
405 for (Eigen::Index i = 0; i < uv.rows(); ++i)
406 result_0(i, 0) = q_m2_basis_value_2d_single_3(uv(i, 0), uv(i, 1));
407 break;
408 case 4:
409 for (Eigen::Index i = 0; i < uv.rows(); ++i)
410 result_0(i, 0) = q_m2_basis_value_2d_single_4(uv(i, 0), uv(i, 1));
411 break;
412 case 5:
413 for (Eigen::Index i = 0; i < uv.rows(); ++i)
414 result_0(i, 0) = q_m2_basis_value_2d_single_5(uv(i, 0), uv(i, 1));
415 break;
416 case 6:
417 for (Eigen::Index i = 0; i < uv.rows(); ++i)
418 result_0(i, 0) = q_m2_basis_value_2d_single_6(uv(i, 0), uv(i, 1));
419 break;
420 case 7:
421 for (Eigen::Index i = 0; i < uv.rows(); ++i)
422 result_0(i, 0) = q_m2_basis_value_2d_single_7(uv(i, 0), uv(i, 1));
423 break;
424 default: assert(false);
425}
426}
427}
428
429void q_basis_value_2d(const int q, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val){
430switch(q){
431 case 0: q_0_basis_value_2d(local_index, uv, val); break;
432 case 1: q_1_basis_value_2d(local_index, uv, val); break;
433 case 2: q_2_basis_value_2d(local_index, uv, val); break;
434 case 3: q_3_basis_value_2d(local_index, uv, val); break;
435 case -2: q_m2_basis_value_2d(local_index, uv, val); break;
436 default: assert(false);
437}}
438}}
double val
Definition Assembler.cpp:86
int y
int x
void q_basis_value_2d(const int q, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)