7void q_0_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
14void q_0_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
15val.resize(uv.rows(), 2);
19 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
20 q_0_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
21 val(i, 0) = gradient[0];
22 val(i, 1) = gradient[1];
25 default: assert(
false);
29void q_1_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
30{
val[0] = 1.0*(
y - 1);}
31{
val[1] = 1.0*(
x - 1);}
34void q_1_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
35{
val[0] = 1.0*(1 -
y);}
39void q_1_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
44void q_1_basis_grad_value_2d_single_3(
double x,
double y,
double *
val) {
46{
val[1] = 1.0*(1 -
x);}
51void q_1_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
52val.resize(uv.rows(), 2);
56 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
57 q_1_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
58 val(i, 0) = gradient[0];
59 val(i, 1) = gradient[1];
63 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
64 q_1_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
65 val(i, 0) = gradient[0];
66 val(i, 1) = gradient[1];
70 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
71 q_1_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
72 val(i, 0) = gradient[0];
73 val(i, 1) = gradient[1];
77 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
78 q_1_basis_grad_value_2d_single_3(uv(i, 0), uv(i, 1), gradient);
79 val(i, 0) = gradient[0];
80 val(i, 1) = gradient[1];
83 default: assert(
false);
87void q_2_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
88{
val[0] = (4.0*
x - 3.0)*(
y - 1)*(2.0*
y - 1.0);}
89{
val[1] = (
x - 1)*(2.0*
x - 1.0)*(4.0*
y - 3.0);}
92void q_2_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
93{
val[0] = (4.0*
x - 1.0)*(
y - 1)*(2.0*
y - 1.0);}
94{
val[1] =
x*(2.0*
x - 1.0)*(4.0*
y - 3.0);}
97void q_2_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
98{
val[0] =
y*(4.0*
x - 1.0)*(2.0*
y - 1.0);}
99{
val[1] =
x*(2.0*
x - 1.0)*(4.0*
y - 1.0);}
102void q_2_basis_grad_value_2d_single_3(
double x,
double y,
double *
val) {
103{
val[0] =
y*(4.0*
x - 3.0)*(2.0*
y - 1.0);}
104{
val[1] = (
x - 1)*(2.0*
x - 1.0)*(4.0*
y - 1.0);}
107void q_2_basis_grad_value_2d_single_4(
double x,
double y,
double *
val) {
108{
val[0] = -4.0*(2*
x - 1)*(
y - 1)*(2.0*
y - 1.0);}
109{
val[1] = -
x*(
x - 1)*(16.0*
y - 12.0);}
112void q_2_basis_grad_value_2d_single_5(
double x,
double y,
double *
val) {
113{
val[0] = -
y*(16.0*
x - 4.0)*(
y - 1);}
114{
val[1] = -4.0*
x*(2.0*
x - 1.0)*(2*
y - 1);}
117void q_2_basis_grad_value_2d_single_6(
double x,
double y,
double *
val) {
118{
val[0] = -4.0*
y*(2*
x - 1)*(2.0*
y - 1.0);}
119{
val[1] = -
x*(
x - 1)*(16.0*
y - 4.0);}
122void q_2_basis_grad_value_2d_single_7(
double x,
double y,
double *
val) {
123{
val[0] = -
y*(16.0*
x - 12.0)*(
y - 1);}
124{
val[1] = -4.0*(
x - 1)*(2.0*
x - 1.0)*(2*
y - 1);}
127void q_2_basis_grad_value_2d_single_8(
double x,
double y,
double *
val) {
128{
val[0] = 16.0*
y*(2*
x - 1)*(
y - 1);}
129{
val[1] = 16.0*
x*(
x - 1)*(2*
y - 1);}
134void q_2_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
135val.resize(uv.rows(), 2);
139 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
140 q_2_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
141 val(i, 0) = gradient[0];
142 val(i, 1) = gradient[1];
146 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
147 q_2_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
148 val(i, 0) = gradient[0];
149 val(i, 1) = gradient[1];
153 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
154 q_2_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
155 val(i, 0) = gradient[0];
156 val(i, 1) = gradient[1];
160 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
161 q_2_basis_grad_value_2d_single_3(uv(i, 0), uv(i, 1), gradient);
162 val(i, 0) = gradient[0];
163 val(i, 1) = gradient[1];
167 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
168 q_2_basis_grad_value_2d_single_4(uv(i, 0), uv(i, 1), gradient);
169 val(i, 0) = gradient[0];
170 val(i, 1) = gradient[1];
174 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
175 q_2_basis_grad_value_2d_single_5(uv(i, 0), uv(i, 1), gradient);
176 val(i, 0) = gradient[0];
177 val(i, 1) = gradient[1];
181 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
182 q_2_basis_grad_value_2d_single_6(uv(i, 0), uv(i, 1), gradient);
183 val(i, 0) = gradient[0];
184 val(i, 1) = gradient[1];
188 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
189 q_2_basis_grad_value_2d_single_7(uv(i, 0), uv(i, 1), gradient);
190 val(i, 0) = gradient[0];
191 val(i, 1) = gradient[1];
195 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
196 q_2_basis_grad_value_2d_single_8(uv(i, 0), uv(i, 1), gradient);
197 val(i, 0) = gradient[0];
198 val(i, 1) = gradient[1];
201 default: assert(
false);
205void q_3_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
206{
double helper_0 =
x - 1;
207double helper_1 = 1.5*
x - 1.0;
208double helper_2 = 3.0*
x - 1.0;
209val[0] = (
y - 1)*(1.5*
y - 1.0)*(3.0*
y - 1.0)*(3.0*helper_0*helper_1 + 1.5*helper_0*helper_2 + 1.0*helper_1*helper_2);}
210{
double helper_0 =
y - 1;
211double helper_1 = 1.5*
y - 1.0;
212double helper_2 = 3.0*
y - 1.0;
213val[1] = (
x - 1)*(1.5*
x - 1.0)*(3.0*
x - 1.0)*(3.0*helper_0*helper_1 + 1.5*helper_0*helper_2 + 1.0*helper_1*helper_2);}
216void q_3_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
217{
double helper_0 = 1.4999999999999998*
x;
218double helper_1 = helper_0 - 0.49999999999999989;
219double helper_2 = 2.9999999999999996*
x;
220double helper_3 = helper_2 - 1.9999999999999996;
221val[0] = -(
y - 1)*(1.5*
y - 1.0)*(3.0*
y - 1.0)*(helper_0*helper_3 + helper_1*helper_2 + 1.0*helper_1*helper_3);}
222{
double helper_0 =
y - 1;
223double helper_1 = 1.5*
y - 1.0;
224double helper_2 = 3.0*
y - 1.0;
225val[1] = -
x*(1.4999999999999998*
x - 0.49999999999999989)*(2.9999999999999996*
x - 1.9999999999999996)*(3.0*helper_0*helper_1 + 1.5*helper_0*helper_2 + 1.0*helper_1*helper_2);}
228void q_3_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
229{
double helper_0 = 1.4999999999999998*
x;
230double helper_1 = helper_0 - 0.49999999999999989;
231double helper_2 = 2.9999999999999996*
x;
232double helper_3 = helper_2 - 1.9999999999999996;
233val[0] =
y*(1.4999999999999998*
y - 0.49999999999999989)*(2.9999999999999996*
y - 1.9999999999999996)*(helper_0*helper_3 + helper_1*helper_2 + 1.0*helper_1*helper_3);}
234{
double helper_0 = 1.4999999999999998*
y;
235double helper_1 = helper_0 - 0.49999999999999989;
236double helper_2 = 2.9999999999999996*
y;
237double helper_3 = helper_2 - 1.9999999999999996;
238val[1] =
x*(1.4999999999999998*
x - 0.49999999999999989)*(2.9999999999999996*
x - 1.9999999999999996)*(helper_0*helper_3 + helper_1*helper_2 + 1.0*helper_1*helper_3);}
241void q_3_basis_grad_value_2d_single_3(
double x,
double y,
double *
val) {
242{
double helper_0 =
x - 1;
243double helper_1 = 1.5*
x - 1.0;
244double helper_2 = 3.0*
x - 1.0;
245val[0] = -
y*(1.4999999999999998*
y - 0.49999999999999989)*(2.9999999999999996*
y - 1.9999999999999996)*(3.0*helper_0*helper_1 + 1.5*helper_0*helper_2 + 1.0*helper_1*helper_2);}
246{
double helper_0 = 1.4999999999999998*
y;
247double helper_1 = helper_0 - 0.49999999999999989;
248double helper_2 = 2.9999999999999996*
y;
249double helper_3 = helper_2 - 1.9999999999999996;
250val[1] = -(
x - 1)*(1.5*
x - 1.0)*(3.0*
x - 1.0)*(helper_0*helper_3 + helper_1*helper_2 + 1.0*helper_1*helper_3);}
253void q_3_basis_grad_value_2d_single_4(
double x,
double y,
double *
val) {
254{
double helper_0 =
x - 1;
255double helper_1 = 13.499999999999996*
x - 8.9999999999999982;
256val[0] = -(
y - 1)*(1.5*
y - 1.0)*(3.0*
y - 1.0)*(helper_0*helper_1 + 13.499999999999996*helper_0*
x + helper_1*
x);}
257{
double helper_0 =
y - 1;
258double helper_1 = 1.5*
y - 1.0;
259double helper_2 = 3.0*
y - 1.0;
260val[1] = -
x*(
x - 1)*(3.0*
x - 2.0)*(13.499999999999996*helper_0*helper_1 + 6.7499999999999982*helper_0*helper_2 + 4.4999999999999991*helper_1*helper_2);}
263void q_3_basis_grad_value_2d_single_5(
double x,
double y,
double *
val) {
264{
double helper_0 =
x - 1;
265double helper_1 = 13.499999999999996*
x - 4.4999999999999991;
266val[0] = (
y - 1)*(1.5*
y - 1.0)*(3.0*
y - 1.0)*(helper_0*helper_1 + 13.499999999999996*helper_0*
x + helper_1*
x);}
267{
double helper_0 =
y - 1;
268double helper_1 = 1.5*
y - 1.0;
269double helper_2 = 3.0*
y - 1.0;
270val[1] =
x*(
x - 1)*(3.0*
x - 1.0)*(13.499999999999996*helper_0*helper_1 + 6.7499999999999982*helper_0*helper_2 + 4.4999999999999991*helper_1*helper_2);}
273void q_3_basis_grad_value_2d_single_6(
double x,
double y,
double *
val) {
274{
double helper_0 = 1.4999999999999998*
x - 0.49999999999999989;
275double helper_1 = 2.9999999999999996*
x - 1.9999999999999996;
276val[0] =
y*(
y - 1)*(3.0*
y - 2.0)*(4.4999999999999991*helper_0*helper_1 + 13.499999999999995*helper_0*
x + 6.7499999999999973*helper_1*
x);}
277{
double helper_0 =
y - 1;
278double helper_1 = 13.499999999999996*
y - 8.9999999999999982;
279val[1] =
x*(1.4999999999999998*
x - 0.49999999999999989)*(2.9999999999999996*
x - 1.9999999999999996)*(helper_0*helper_1 + 13.499999999999996*helper_0*
y + helper_1*
y);}
282void q_3_basis_grad_value_2d_single_7(
double x,
double y,
double *
val) {
283{
double helper_0 = 1.4999999999999998*
x - 0.49999999999999989;
284double helper_1 = 2.9999999999999996*
x - 1.9999999999999996;
285val[0] = -
y*(
y - 1)*(3.0*
y - 1.0)*(4.4999999999999991*helper_0*helper_1 + 13.499999999999995*helper_0*
x + 6.7499999999999973*helper_1*
x);}
286{
double helper_0 =
y - 1;
287double helper_1 = 13.499999999999996*
y - 4.4999999999999991;
288val[1] = -
x*(1.4999999999999998*
x - 0.49999999999999989)*(2.9999999999999996*
x - 1.9999999999999996)*(helper_0*helper_1 + 13.499999999999996*helper_0*
y + helper_1*
y);}
291void q_3_basis_grad_value_2d_single_8(
double x,
double y,
double *
val) {
292{
double helper_0 =
x - 1;
293double helper_1 = 13.499999999999996*
x - 4.4999999999999991;
294val[0] = -
y*(1.4999999999999998*
y - 0.49999999999999989)*(2.9999999999999996*
y - 1.9999999999999996)*(helper_0*helper_1 + 13.499999999999996*helper_0*
x + helper_1*
x);}
295{
double helper_0 = 1.4999999999999998*
y - 0.49999999999999989;
296double helper_1 = 2.9999999999999996*
y - 1.9999999999999996;
297val[1] = -
x*(
x - 1)*(3.0*
x - 1.0)*(4.4999999999999991*helper_0*helper_1 + 13.499999999999995*helper_0*
y + 6.7499999999999973*helper_1*
y);}
300void q_3_basis_grad_value_2d_single_9(
double x,
double y,
double *
val) {
301{
double helper_0 =
x - 1;
302double helper_1 = 13.499999999999996*
x - 8.9999999999999982;
303val[0] =
y*(1.4999999999999998*
y - 0.49999999999999989)*(2.9999999999999996*
y - 1.9999999999999996)*(helper_0*helper_1 + 13.499999999999996*helper_0*
x + helper_1*
x);}
304{
double helper_0 = 1.4999999999999998*
y - 0.49999999999999989;
305double helper_1 = 2.9999999999999996*
y - 1.9999999999999996;
306val[1] =
x*(
x - 1)*(3.0*
x - 2.0)*(4.4999999999999991*helper_0*helper_1 + 13.499999999999995*helper_0*
y + 6.7499999999999973*helper_1*
y);}
309void q_3_basis_grad_value_2d_single_10(
double x,
double y,
double *
val) {
310{
double helper_0 =
x - 1;
311double helper_1 = 1.5*
x - 1.0;
312double helper_2 = 3.0*
x - 1.0;
313val[0] =
y*(
y - 1)*(3.0*
y - 1.0)*(13.499999999999996*helper_0*helper_1 + 6.7499999999999982*helper_0*helper_2 + 4.4999999999999991*helper_1*helper_2);}
314{
double helper_0 =
y - 1;
315double helper_1 = 13.499999999999996*
y - 4.4999999999999991;
316val[1] = (
x - 1)*(1.5*
x - 1.0)*(3.0*
x - 1.0)*(helper_0*helper_1 + 13.499999999999996*helper_0*
y + helper_1*
y);}
319void q_3_basis_grad_value_2d_single_11(
double x,
double y,
double *
val) {
320{
double helper_0 =
x - 1;
321double helper_1 = 1.5*
x - 1.0;
322double helper_2 = 3.0*
x - 1.0;
323val[0] = -
y*(
y - 1)*(3.0*
y - 2.0)*(13.499999999999996*helper_0*helper_1 + 6.7499999999999982*helper_0*helper_2 + 4.4999999999999991*helper_1*helper_2);}
324{
double helper_0 =
y - 1;
325double helper_1 = 13.499999999999996*
y - 8.9999999999999982;
326val[1] = -(
x - 1)*(1.5*
x - 1.0)*(3.0*
x - 1.0)*(helper_0*helper_1 + 13.499999999999996*helper_0*
y + helper_1*
y);}
329void q_3_basis_grad_value_2d_single_12(
double x,
double y,
double *
val) {
330{
double helper_0 =
x - 1;
331double helper_1 = 60.749999999999979*
x - 40.499999999999986;
332val[0] =
y*(
y - 1)*(3.0*
y - 2.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
x + helper_1*
x);}
333{
double helper_0 =
y - 1;
334double helper_1 = 60.749999999999979*
y - 40.499999999999986;
335val[1] =
x*(
x - 1)*(3.0*
x - 2.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
y + helper_1*
y);}
338void q_3_basis_grad_value_2d_single_13(
double x,
double y,
double *
val) {
339{
double helper_0 =
x - 1;
340double helper_1 = 60.749999999999979*
x - 40.499999999999986;
341val[0] = -
y*(
y - 1)*(3.0*
y - 1.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
x + helper_1*
x);}
342{
double helper_0 =
y - 1;
343double helper_1 = 60.749999999999979*
y - 20.249999999999993;
344val[1] = -
x*(
x - 1)*(3.0*
x - 2.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
y + helper_1*
y);}
347void q_3_basis_grad_value_2d_single_14(
double x,
double y,
double *
val) {
348{
double helper_0 =
x - 1;
349double helper_1 = 60.749999999999979*
x - 20.249999999999993;
350val[0] = -
y*(
y - 1)*(3.0*
y - 2.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
x + helper_1*
x);}
351{
double helper_0 =
y - 1;
352double helper_1 = 60.749999999999979*
y - 40.499999999999986;
353val[1] = -
x*(
x - 1)*(3.0*
x - 1.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
y + helper_1*
y);}
356void q_3_basis_grad_value_2d_single_15(
double x,
double y,
double *
val) {
357{
double helper_0 =
x - 1;
358double helper_1 = 60.749999999999979*
x - 20.249999999999993;
359val[0] =
y*(
y - 1)*(3.0*
y - 1.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
x + helper_1*
x);}
360{
double helper_0 =
y - 1;
361double helper_1 = 60.749999999999979*
y - 20.249999999999993;
362val[1] =
x*(
x - 1)*(3.0*
x - 1.0)*(helper_0*helper_1 + 60.749999999999979*helper_0*
y + helper_1*
y);}
367void q_3_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
368val.resize(uv.rows(), 2);
372 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
373 q_3_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
374 val(i, 0) = gradient[0];
375 val(i, 1) = gradient[1];
379 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
380 q_3_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
381 val(i, 0) = gradient[0];
382 val(i, 1) = gradient[1];
386 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
387 q_3_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
388 val(i, 0) = gradient[0];
389 val(i, 1) = gradient[1];
393 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
394 q_3_basis_grad_value_2d_single_3(uv(i, 0), uv(i, 1), gradient);
395 val(i, 0) = gradient[0];
396 val(i, 1) = gradient[1];
400 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
401 q_3_basis_grad_value_2d_single_4(uv(i, 0), uv(i, 1), gradient);
402 val(i, 0) = gradient[0];
403 val(i, 1) = gradient[1];
407 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
408 q_3_basis_grad_value_2d_single_5(uv(i, 0), uv(i, 1), gradient);
409 val(i, 0) = gradient[0];
410 val(i, 1) = gradient[1];
414 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
415 q_3_basis_grad_value_2d_single_6(uv(i, 0), uv(i, 1), gradient);
416 val(i, 0) = gradient[0];
417 val(i, 1) = gradient[1];
421 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
422 q_3_basis_grad_value_2d_single_7(uv(i, 0), uv(i, 1), gradient);
423 val(i, 0) = gradient[0];
424 val(i, 1) = gradient[1];
428 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
429 q_3_basis_grad_value_2d_single_8(uv(i, 0), uv(i, 1), gradient);
430 val(i, 0) = gradient[0];
431 val(i, 1) = gradient[1];
435 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
436 q_3_basis_grad_value_2d_single_9(uv(i, 0), uv(i, 1), gradient);
437 val(i, 0) = gradient[0];
438 val(i, 1) = gradient[1];
442 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
443 q_3_basis_grad_value_2d_single_10(uv(i, 0), uv(i, 1), gradient);
444 val(i, 0) = gradient[0];
445 val(i, 1) = gradient[1];
449 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
450 q_3_basis_grad_value_2d_single_11(uv(i, 0), uv(i, 1), gradient);
451 val(i, 0) = gradient[0];
452 val(i, 1) = gradient[1];
456 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
457 q_3_basis_grad_value_2d_single_12(uv(i, 0), uv(i, 1), gradient);
458 val(i, 0) = gradient[0];
459 val(i, 1) = gradient[1];
463 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
464 q_3_basis_grad_value_2d_single_13(uv(i, 0), uv(i, 1), gradient);
465 val(i, 0) = gradient[0];
466 val(i, 1) = gradient[1];
470 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
471 q_3_basis_grad_value_2d_single_14(uv(i, 0), uv(i, 1), gradient);
472 val(i, 0) = gradient[0];
473 val(i, 1) = gradient[1];
477 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
478 q_3_basis_grad_value_2d_single_15(uv(i, 0), uv(i, 1), gradient);
479 val(i, 0) = gradient[0];
480 val(i, 1) = gradient[1];
483 default: assert(
false);
487void q_m2_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
488{
val[0] = -(
y - 1)*(4.0*
x + 2.0*
y - 3.0);}
489{
val[1] = -(
x - 1)*(2.0*
x + 4.0*
y - 3.0);}
492void q_m2_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
493{
val[0] = (
y - 1)*(-4.0*
x + 2.0*
y + 1.0);}
494{
val[1] = -
x*(2.0*
x - 4.0*
y + 1.0);}
497void q_m2_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
498{
val[0] =
y*(4.0*
x + 2.0*
y - 3.0);}
499{
val[1] =
x*(2.0*
x + 4.0*
y - 3.0);}
502void q_m2_basis_grad_value_2d_single_3(
double x,
double y,
double *
val) {
503{
val[0] = -
y*(-4.0*
x + 2.0*
y + 1.0);}
504{
val[1] = (
x - 1)*(2.0*
x - 4.0*
y + 1.0);}
507void q_m2_basis_grad_value_2d_single_4(
double x,
double y,
double *
val) {
508{
val[0] = 4*(2*
x - 1)*(
y - 1);}
509{
val[1] = 4*
x*(
x - 1);}
512void q_m2_basis_grad_value_2d_single_5(
double x,
double y,
double *
val) {
513{
val[0] = -4*
y*(
y - 1);}
514{
val[1] = -4*
x*(2*
y - 1);}
517void q_m2_basis_grad_value_2d_single_6(
double x,
double y,
double *
val) {
518{
val[0] = -4*
y*(2*
x - 1);}
519{
val[1] = -4*
x*(
x - 1);}
522void q_m2_basis_grad_value_2d_single_7(
double x,
double y,
double *
val) {
523{
val[0] = 4*
y*(
y - 1);}
524{
val[1] = 4*(
x - 1)*(2*
y - 1);}
529void q_m2_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
530val.resize(uv.rows(), 2);
534 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
535 q_m2_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
536 val(i, 0) = gradient[0];
537 val(i, 1) = gradient[1];
541 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
542 q_m2_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
543 val(i, 0) = gradient[0];
544 val(i, 1) = gradient[1];
548 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
549 q_m2_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
550 val(i, 0) = gradient[0];
551 val(i, 1) = gradient[1];
555 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
556 q_m2_basis_grad_value_2d_single_3(uv(i, 0), uv(i, 1), gradient);
557 val(i, 0) = gradient[0];
558 val(i, 1) = gradient[1];
562 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
563 q_m2_basis_grad_value_2d_single_4(uv(i, 0), uv(i, 1), gradient);
564 val(i, 0) = gradient[0];
565 val(i, 1) = gradient[1];
569 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
570 q_m2_basis_grad_value_2d_single_5(uv(i, 0), uv(i, 1), gradient);
571 val(i, 0) = gradient[0];
572 val(i, 1) = gradient[1];
576 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
577 q_m2_basis_grad_value_2d_single_6(uv(i, 0), uv(i, 1), gradient);
578 val(i, 0) = gradient[0];
579 val(i, 1) = gradient[1];
583 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
584 q_m2_basis_grad_value_2d_single_7(uv(i, 0), uv(i, 1), gradient);
585 val(i, 0) = gradient[0];
586 val(i, 1) = gradient[1];
589 default: assert(
false);
597 case 0: q_0_basis_grad_value_2d(local_index, uv,
val);
break;
598 case 1: q_1_basis_grad_value_2d(local_index, uv,
val);
break;
599 case 2: q_2_basis_grad_value_2d(local_index, uv,
val);
break;
600 case 3: q_3_basis_grad_value_2d(local_index, uv,
val);
break;
601 case -2: q_m2_basis_grad_value_2d(local_index, uv,
val);
break;
602 default: assert(
false);
void q_grad_basis_value_2d(const int q, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)