7double q_0_basis_value_2d_single_0(
double x,
double y) {
15void q_0_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
16result_0.resize(uv.rows(), 1);
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));
22 default: assert(
false);
25double q_1_basis_value_2d_single_0(
double x,
double y) {
27result = 1.0*(
x - 1)*(
y - 1);
31double q_1_basis_value_2d_single_1(
double x,
double y) {
33result = -1.0*
x*(
y - 1);
37double q_1_basis_value_2d_single_2(
double x,
double y) {
43double q_1_basis_value_2d_single_3(
double x,
double y) {
45result = -1.0*
y*(
x - 1);
51void q_1_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
52result_0.resize(uv.rows(), 1);
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));
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));
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));
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));
70 default: assert(
false);
73double q_2_basis_value_2d_single_0(
double x,
double y) {
75result = 1.0*(
x - 1)*(2.0*
x - 1.0)*(
y - 1)*(2.0*
y - 1.0);
79double q_2_basis_value_2d_single_1(
double x,
double y) {
81result = 1.0*
x*(2.0*
x - 1.0)*(
y - 1)*(2.0*
y - 1.0);
85double q_2_basis_value_2d_single_2(
double x,
double y) {
87result = 1.0*
x*
y*(2.0*
x - 1.0)*(2.0*
y - 1.0);
91double q_2_basis_value_2d_single_3(
double x,
double y) {
93result = 1.0*
y*(
x - 1)*(2.0*
x - 1.0)*(2.0*
y - 1.0);
97double q_2_basis_value_2d_single_4(
double x,
double y) {
99result = -4.0*
x*(
x - 1)*(
y - 1)*(2.0*
y - 1.0);
103double q_2_basis_value_2d_single_5(
double x,
double y) {
105result = -4.0*
x*
y*(2.0*
x - 1.0)*(
y - 1);
109double q_2_basis_value_2d_single_6(
double x,
double y) {
111result = -4.0*
x*
y*(
x - 1)*(2.0*
y - 1.0);
115double q_2_basis_value_2d_single_7(
double x,
double y) {
117result = -4.0*
y*(
x - 1)*(2.0*
x - 1.0)*(
y - 1);
121double q_2_basis_value_2d_single_8(
double x,
double y) {
123result = 16.0*
x*
y*(
x - 1)*(
y - 1);
129void q_2_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
130result_0.resize(uv.rows(), 1);
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));
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));
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));
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));
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));
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));
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));
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));
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));
168 default: assert(
false);
171double q_3_basis_value_2d_single_0(
double x,
double y) {
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);
177double q_3_basis_value_2d_single_1(
double x,
double y) {
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);
183double q_3_basis_value_2d_single_2(
double x,
double y) {
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);
189double q_3_basis_value_2d_single_3(
double x,
double y) {
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);
195double q_3_basis_value_2d_single_4(
double x,
double y) {
197result = -4.4999999999999991*
x*(
x - 1)*(3.0*
x - 2.0)*(
y - 1)*(1.5*
y - 1.0)*(3.0*
y - 1.0);
201double q_3_basis_value_2d_single_5(
double x,
double y) {
203result = 4.4999999999999991*
x*(
x - 1)*(3.0*
x - 1.0)*(
y - 1)*(1.5*
y - 1.0)*(3.0*
y - 1.0);
207double q_3_basis_value_2d_single_6(
double x,
double y) {
209result = 4.4999999999999991*
x*
y*(1.4999999999999998*
x - 0.49999999999999989)*(2.9999999999999996*
x - 1.9999999999999996)*(
y - 1)*(3.0*
y - 2.0);
213double q_3_basis_value_2d_single_7(
double x,
double y) {
215result = -4.4999999999999991*
x*
y*(1.4999999999999998*
x - 0.49999999999999989)*(2.9999999999999996*
x - 1.9999999999999996)*(
y - 1)*(3.0*
y - 1.0);
219double q_3_basis_value_2d_single_8(
double x,
double y) {
221result = -4.4999999999999991*
x*
y*(
x - 1)*(3.0*
x - 1.0)*(1.4999999999999998*
y - 0.49999999999999989)*(2.9999999999999996*
y - 1.9999999999999996);
225double q_3_basis_value_2d_single_9(
double x,
double y) {
227result = 4.4999999999999991*
x*
y*(
x - 1)*(3.0*
x - 2.0)*(1.4999999999999998*
y - 0.49999999999999989)*(2.9999999999999996*
y - 1.9999999999999996);
231double q_3_basis_value_2d_single_10(
double x,
double y) {
233result = 4.4999999999999991*
y*(
x - 1)*(1.5*
x - 1.0)*(3.0*
x - 1.0)*(
y - 1)*(3.0*
y - 1.0);
237double q_3_basis_value_2d_single_11(
double x,
double y) {
239result = -4.4999999999999991*
y*(
x - 1)*(1.5*
x - 1.0)*(3.0*
x - 1.0)*(
y - 1)*(3.0*
y - 2.0);
243double q_3_basis_value_2d_single_12(
double x,
double y) {
245result = 20.249999999999993*
x*
y*(
x - 1)*(3.0*
x - 2.0)*(
y - 1)*(3.0*
y - 2.0);
249double q_3_basis_value_2d_single_13(
double x,
double y) {
251result = -20.249999999999993*
x*
y*(
x - 1)*(3.0*
x - 2.0)*(
y - 1)*(3.0*
y - 1.0);
255double q_3_basis_value_2d_single_14(
double x,
double y) {
257result = -20.249999999999993*
x*
y*(
x - 1)*(3.0*
x - 1.0)*(
y - 1)*(3.0*
y - 2.0);
261double q_3_basis_value_2d_single_15(
double x,
double y) {
263result = 20.249999999999993*
x*
y*(
x - 1)*(3.0*
x - 1.0)*(
y - 1)*(3.0*
y - 1.0);
269void q_3_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
270result_0.resize(uv.rows(), 1);
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
336 default: assert(
false);
339double q_m2_basis_value_2d_single_0(
double x,
double y) {
341result = -1.0*(
x - 1)*(
y - 1)*(2*
x + 2*
y - 1);
345double q_m2_basis_value_2d_single_1(
double x,
double y) {
347result = 1.0*
x*(
y - 1)*(-2*
x + 2*
y + 1);
351double q_m2_basis_value_2d_single_2(
double x,
double y) {
353result =
x*
y*(2.0*
x + 2.0*
y - 3.0);
357double q_m2_basis_value_2d_single_3(
double x,
double y) {
359result = 1.0*
y*(
x - 1)*(2*
x - 2*
y + 1);
363double q_m2_basis_value_2d_single_4(
double x,
double y) {
365result = 4*
x*(
x - 1)*(
y - 1);
369double q_m2_basis_value_2d_single_5(
double x,
double y) {
371result = -4*
x*
y*(
y - 1);
375double q_m2_basis_value_2d_single_6(
double x,
double y) {
377result = -4*
x*
y*(
x - 1);
381double q_m2_basis_value_2d_single_7(
double x,
double y) {
383result = 4*
y*(
x - 1)*(
y - 1);
389void q_m2_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
390result_0.resize(uv.rows(), 1);
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));
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));
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));
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));
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));
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));
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));
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));
424 default: assert(
false);
429void q_basis_value_2d(
const int q,
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
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);
void q_basis_value_2d(const int q, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)