PolyFEM
Loading...
Searching...
No Matches
auto_q_bases_1d_val.cpp
Go to the documentation of this file.
2
3
4namespace polyfem {
5namespace autogen {
6namespace {
7double q_0_basis_value_1d_single_0(double x) {
8double result;
9result = 1;
10return result;
11}
12
13
14
15void q_0_basis_value_1d(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_1d_single_0(uv(i, 0));
21 break;
22 default: assert(false);
23}
24}
25double q_1_basis_value_1d_single_0(double x) {
26double result;
27result = 1.0*(1 - x);
28return result;
29}
30
31double q_1_basis_value_1d_single_1(double x) {
32double result;
33result = 1.0*x;
34return result;
35}
36
37
38
39void q_1_basis_value_1d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
40result_0.resize(uv.rows(), 1);
41switch(local_index){
42 case 0:
43 for (Eigen::Index i = 0; i < uv.rows(); ++i)
44 result_0(i, 0) = q_1_basis_value_1d_single_0(uv(i, 0));
45 break;
46 case 1:
47 for (Eigen::Index i = 0; i < uv.rows(); ++i)
48 result_0(i, 0) = q_1_basis_value_1d_single_1(uv(i, 0));
49 break;
50 default: assert(false);
51}
52}
53double q_2_basis_value_1d_single_0(double x) {
54double result;
55result = 1.0*(x - 1)*(2.0*x - 1.0);
56return result;
57}
58
59double q_2_basis_value_1d_single_1(double x) {
60double result;
61result = -4.0*x*(x - 1);
62return result;
63}
64
65double q_2_basis_value_1d_single_2(double x) {
66double result;
67result = x*(2.0*x - 1.0);
68return result;
69}
70
71
72
73void q_2_basis_value_1d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
74result_0.resize(uv.rows(), 1);
75switch(local_index){
76 case 0:
77 for (Eigen::Index i = 0; i < uv.rows(); ++i)
78 result_0(i, 0) = q_2_basis_value_1d_single_0(uv(i, 0));
79 break;
80 case 1:
81 for (Eigen::Index i = 0; i < uv.rows(); ++i)
82 result_0(i, 0) = q_2_basis_value_1d_single_1(uv(i, 0));
83 break;
84 case 2:
85 for (Eigen::Index i = 0; i < uv.rows(); ++i)
86 result_0(i, 0) = q_2_basis_value_1d_single_2(uv(i, 0));
87 break;
88 default: assert(false);
89}
90}
91double q_3_basis_value_1d_single_0(double x) {
92double result;
93result = -4.5*pow(x, 3) + 9.0*pow(x, 2) - 5.5*x + 1.0;
94return result;
95}
96
97double q_3_basis_value_1d_single_1(double x) {
98double result;
99result = 4.4999999999999991*x*(x - 1)*(3.0*x - 2.0);
100return result;
101}
102
103double q_3_basis_value_1d_single_2(double x) {
104double result;
105result = -x*(13.499999999999996*pow(x, 2) - 17.999999999999996*x + 4.4999999999999991);
106return result;
107}
108
109double q_3_basis_value_1d_single_3(double x) {
110double result;
111result = x*(4.4999999999999991*pow(x, 2) - 4.4999999999999982*x + 0.99999999999999956);
112return result;
113}
114
115
116
117void q_3_basis_value_1d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
118result_0.resize(uv.rows(), 1);
119switch(local_index){
120 case 0:
121 for (Eigen::Index i = 0; i < uv.rows(); ++i)
122 result_0(i, 0) = q_3_basis_value_1d_single_0(uv(i, 0));
123 break;
124 case 1:
125 for (Eigen::Index i = 0; i < uv.rows(); ++i)
126 result_0(i, 0) = q_3_basis_value_1d_single_1(uv(i, 0));
127 break;
128 case 2:
129 for (Eigen::Index i = 0; i < uv.rows(); ++i)
130 result_0(i, 0) = q_3_basis_value_1d_single_2(uv(i, 0));
131 break;
132 case 3:
133 for (Eigen::Index i = 0; i < uv.rows(); ++i)
134 result_0(i, 0) = q_3_basis_value_1d_single_3(uv(i, 0));
135 break;
136 default: assert(false);
137}
138}
139double q_m2_basis_value_1d_single_0(double x) {
140double result;
141result = 1.0*(x - 1)*(2.0*x - 1.0);
142return result;
143}
144
145double q_m2_basis_value_1d_single_1(double x) {
146double result;
147result = -4.0*x*(x - 1);
148return result;
149}
150
151double q_m2_basis_value_1d_single_2(double x) {
152double result;
153result = x*(2.0*x - 1.0);
154return result;
155}
156
157
158
159void q_m2_basis_value_1d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
160result_0.resize(uv.rows(), 1);
161switch(local_index){
162 case 0:
163 for (Eigen::Index i = 0; i < uv.rows(); ++i)
164 result_0(i, 0) = q_m2_basis_value_1d_single_0(uv(i, 0));
165 break;
166 case 1:
167 for (Eigen::Index i = 0; i < uv.rows(); ++i)
168 result_0(i, 0) = q_m2_basis_value_1d_single_1(uv(i, 0));
169 break;
170 case 2:
171 for (Eigen::Index i = 0; i < uv.rows(); ++i)
172 result_0(i, 0) = q_m2_basis_value_1d_single_2(uv(i, 0));
173 break;
174 default: assert(false);
175}
176}
177double q_4_basis_value_1d_single_0(double x) {
178double result;
179result = 1.0*(x - 1)*(1.3333333333333333*x - 1.0)*(2.0*x - 1.0)*(4.0*x - 1.0);
180return result;
181}
182
183double q_4_basis_value_1d_single_1(double x) {
184double result;
185result = -x*(42.666666666666664*pow(x, 3) - 96.0*pow(x, 2) + 69.333333333333329*x - 16.0);
186return result;
187}
188
189double q_4_basis_value_1d_single_2(double x) {
190double result;
191double helper_0 = 4.0*x;
192result = helper_0*(helper_0 - 3.0)*(helper_0 - 1.0)*(x - 1);
193return result;
194}
195
196double q_4_basis_value_1d_single_3(double x) {
197double result;
198result = -x*(42.666666666666664*pow(x, 3) - 74.666666666666657*pow(x, 2) + 37.333333333333329*x - 5.333333333333333);
199return result;
200}
201
202double q_4_basis_value_1d_single_4(double x) {
203double result;
204result = x*(10.666666666666666*pow(x, 3) - 16.0*pow(x, 2) + 7.333333333333333*x - 1.0);
205return result;
206}
207
208
209
210void q_4_basis_value_1d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
211result_0.resize(uv.rows(), 1);
212switch(local_index){
213 case 0:
214 for (Eigen::Index i = 0; i < uv.rows(); ++i)
215 result_0(i, 0) = q_4_basis_value_1d_single_0(uv(i, 0));
216 break;
217 case 1:
218 for (Eigen::Index i = 0; i < uv.rows(); ++i)
219 result_0(i, 0) = q_4_basis_value_1d_single_1(uv(i, 0));
220 break;
221 case 2:
222 for (Eigen::Index i = 0; i < uv.rows(); ++i)
223 result_0(i, 0) = q_4_basis_value_1d_single_2(uv(i, 0));
224 break;
225 case 3:
226 for (Eigen::Index i = 0; i < uv.rows(); ++i)
227 result_0(i, 0) = q_4_basis_value_1d_single_3(uv(i, 0));
228 break;
229 case 4:
230 for (Eigen::Index i = 0; i < uv.rows(); ++i)
231 result_0(i, 0) = q_4_basis_value_1d_single_4(uv(i, 0));
232 break;
233 default: assert(false);
234}
235}
236double q_5_basis_value_1d_single_0(double x) {
237double result;
238result = -26.041666666666671*pow(x, 5) + 78.125*pow(x, 4) - 88.541666666666671*pow(x, 3) + 46.875*pow(x, 2) - 11.416666666666668*x + 1.0;
239return result;
240}
241
242double q_5_basis_value_1d_single_1(double x) {
243double result;
244result = 6.25*x*(x - 1)*(1.6666666666666665*x - 1.3333333333333333)*(2.5*x - 1.5)*(5.0*x - 2.0);
245return result;
246}
247
248double q_5_basis_value_1d_single_2(double x) {
249double result;
250result = -x*(260.41666666666674*pow(x, 4) - 677.08333333333348*pow(x, 3) + 614.58333333333348*pow(x, 2) - 222.91666666666674*x + 25.000000000000007);
251return result;
252}
253
254double q_5_basis_value_1d_single_3(double x) {
255double result;
256result = 4.166666666666667*x*(x - 1)*(2.5*x - 0.5)*(4.9999999999999982*x - 3.9999999999999987)*(5.0000000000000009*x - 2.0000000000000004);
257return result;
258}
259
260double q_5_basis_value_1d_single_4(double x) {
261double result;
262result = -x*(130.20833333333329*pow(x, 4) - 286.45833333333326*pow(x, 3) + 213.5416666666666*pow(x, 2) - 63.541666666666636*x + 6.2499999999999982);
263return result;
264}
265
266double q_5_basis_value_1d_single_5(double x) {
267double result;
268result = x*(26.041666666666675*pow(x, 4) - 52.08333333333335*pow(x, 3) + 36.458333333333343*pow(x, 2) - 10.41666666666667*x + 1.0000000000000002);
269return result;
270}
271
272
273
274void q_5_basis_value_1d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
275result_0.resize(uv.rows(), 1);
276switch(local_index){
277 case 0:
278 for (Eigen::Index i = 0; i < uv.rows(); ++i)
279 result_0(i, 0) = q_5_basis_value_1d_single_0(uv(i, 0));
280 break;
281 case 1:
282 for (Eigen::Index i = 0; i < uv.rows(); ++i)
283 result_0(i, 0) = q_5_basis_value_1d_single_1(uv(i, 0));
284 break;
285 case 2:
286 for (Eigen::Index i = 0; i < uv.rows(); ++i)
287 result_0(i, 0) = q_5_basis_value_1d_single_2(uv(i, 0));
288 break;
289 case 3:
290 for (Eigen::Index i = 0; i < uv.rows(); ++i)
291 result_0(i, 0) = q_5_basis_value_1d_single_3(uv(i, 0));
292 break;
293 case 4:
294 for (Eigen::Index i = 0; i < uv.rows(); ++i)
295 result_0(i, 0) = q_5_basis_value_1d_single_4(uv(i, 0));
296 break;
297 case 5:
298 for (Eigen::Index i = 0; i < uv.rows(); ++i)
299 result_0(i, 0) = q_5_basis_value_1d_single_5(uv(i, 0));
300 break;
301 default: assert(false);
302}
303}
304double q_6_basis_value_1d_single_0(double x) {
305double result;
306result = 1.0*(x - 1)*(1.2*x - 1.0)*(1.5*x - 1.0)*(2.0*x - 1.0)*(3.0*x - 1.0)*(6.0*x - 1.0);
307return result;
308}
309
310double q_6_basis_value_1d_single_1(double x) {
311double result;
312result = -x*(388.79999999999984*pow(x, 5) - 1295.9999999999995*pow(x, 4) + 1673.9999999999993*pow(x, 3) - 1043.9999999999995*pow(x, 2) + 313.19999999999987*x - 35.999999999999986);
313return result;
314}
315
316double q_6_basis_value_1d_single_2(double x) {
317double result;
318result = 4.4999999999999991*x*(x - 1)*(2.0*x - 1.6666666666666667)*(3.0*x - 2.0)*(5.9999999999999991*x - 2.9999999999999996)*(6.0*x - 1.0);
319return result;
320}
321
322double q_6_basis_value_1d_single_3(double x) {
323double result;
324result = -x*(1295.9999999999998*pow(x, 5) - 3887.9999999999991*pow(x, 4) + 4355.9999999999982*pow(x, 3) - 2231.9999999999991*pow(x, 2) + 507.99999999999983*x - 39.999999999999986);
325return result;
326}
327
328double q_6_basis_value_1d_single_4(double x) {
329double result;
330result = 4.4999999999999991*x*(x - 1)*(2.0*x - 0.33333333333333331)*(3.0*x - 1.0)*(5.9999999999999973*x - 4.9999999999999982)*(6.0000000000000018*x - 3.0000000000000009);
331return result;
332}
333
334double q_6_basis_value_1d_single_5(double x) {
335double result;
336result = -x*(388.79999999999984*pow(x, 5) - 1036.7999999999997*pow(x, 4) + 1025.9999999999995*pow(x, 3) - 467.99999999999983*pow(x, 2) + 97.199999999999946*x - 7.1999999999999957);
337return result;
338}
339
340double q_6_basis_value_1d_single_6(double x) {
341double result;
342result = x*(64.799999999999997*pow(x, 5) - 162.0*pow(x, 4) + 153.0*pow(x, 3) - 67.5*pow(x, 2) + 13.699999999999998*x - 0.99999999999999967);
343return result;
344}
345
346
347
348void q_6_basis_value_1d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
349result_0.resize(uv.rows(), 1);
350switch(local_index){
351 case 0:
352 for (Eigen::Index i = 0; i < uv.rows(); ++i)
353 result_0(i, 0) = q_6_basis_value_1d_single_0(uv(i, 0));
354 break;
355 case 1:
356 for (Eigen::Index i = 0; i < uv.rows(); ++i)
357 result_0(i, 0) = q_6_basis_value_1d_single_1(uv(i, 0));
358 break;
359 case 2:
360 for (Eigen::Index i = 0; i < uv.rows(); ++i)
361 result_0(i, 0) = q_6_basis_value_1d_single_2(uv(i, 0));
362 break;
363 case 3:
364 for (Eigen::Index i = 0; i < uv.rows(); ++i)
365 result_0(i, 0) = q_6_basis_value_1d_single_3(uv(i, 0));
366 break;
367 case 4:
368 for (Eigen::Index i = 0; i < uv.rows(); ++i)
369 result_0(i, 0) = q_6_basis_value_1d_single_4(uv(i, 0));
370 break;
371 case 5:
372 for (Eigen::Index i = 0; i < uv.rows(); ++i)
373 result_0(i, 0) = q_6_basis_value_1d_single_5(uv(i, 0));
374 break;
375 case 6:
376 for (Eigen::Index i = 0; i < uv.rows(); ++i)
377 result_0(i, 0) = q_6_basis_value_1d_single_6(uv(i, 0));
378 break;
379 default: assert(false);
380}
381}
382}
383
384void q_basis_value_1d(const int q, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val){
385switch(q){
386 case 0: q_0_basis_value_1d(local_index, uv, val); break;
387 case 1: q_1_basis_value_1d(local_index, uv, val); break;
388 case 2: q_2_basis_value_1d(local_index, uv, val); break;
389 case 3: q_3_basis_value_1d(local_index, uv, val); break;
390 case -2: q_m2_basis_value_1d(local_index, uv, val); break;
391 case 4: q_4_basis_value_1d(local_index, uv, val); break;
392 case 5: q_5_basis_value_1d(local_index, uv, val); break;
393 case 6: q_6_basis_value_1d(local_index, uv, val); break;
394 default: assert(false);
395}}
396}}
double val
Definition Assembler.cpp:86
int x
void q_basis_value_1d(const int q, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)