7void b_0_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
9auto x=uv.col(0).array();
10auto y=uv.col(1).array();
12result_0.resize(
x.size(),1);
14 case 0: {result_0.setOnes();}
break;
15 default: assert(
false);
17void b_0_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
19auto x=uv.col(0).array();
20auto y=uv.col(1).array();
22val.resize(uv.rows(), uv.cols());
23 Eigen::ArrayXd result_0(uv.rows());
25 case 0: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }}
break;
26 default: assert(
false);
30void b_1_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
32auto x=uv.col(0).array();
33auto y=uv.col(1).array();
36 case 0: {result_0 = -
x -
y + 1;}
break;
37 case 1: {result_0 =
x;}
break;
38 case 2: {result_0 =
y;}
break;
39 default: assert(
false);
41void b_1_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
43auto x=uv.col(0).array();
44auto y=uv.col(1).array();
46val.resize(uv.rows(), uv.cols());
47 Eigen::ArrayXd result_0(uv.rows());
49 case 0: {{result_0.setConstant(-1);
val.col(0) = result_0; }{result_0.setConstant(-1);
val.col(1) = result_0; }}
break;
50 case 1: {{result_0.setOnes();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }}
break;
51 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setOnes();
val.col(1) = result_0; }}
break;
52 default: assert(
false);
56void b_2_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
58auto x=uv.col(0).array();
59auto y=uv.col(1).array();
62 case 0: {result_0 = pow(
x +
y - 1, 2);}
break;
63 case 1: {result_0 = pow(
x, 2);}
break;
64 case 2: {result_0 = pow(
y, 2);}
break;
65 case 3: {result_0 = -2*
x*(
x +
y - 1);}
break;
66 case 4: {result_0 = 2*
x*
y;}
break;
67 case 5: {result_0 = -2*
y*(
x +
y - 1);}
break;
68 default: assert(
false);
70void b_2_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
72auto x=uv.col(0).array();
73auto y=uv.col(1).array();
75val.resize(uv.rows(), uv.cols());
76 Eigen::ArrayXd result_0(uv.rows());
78 case 0: {{result_0 = 2*(
x +
y - 1);
val.col(0) = result_0; }{result_0 = 2*(
x +
y - 1);
val.col(1) = result_0; }}
break;
79 case 1: {{result_0 = 2*
x;
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }}
break;
80 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 2*
y;
val.col(1) = result_0; }}
break;
81 case 3: {{result_0 = 2*(-2*
x -
y + 1);
val.col(0) = result_0; }{result_0 = -2*
x;
val.col(1) = result_0; }}
break;
82 case 4: {{result_0 = 2*
y;
val.col(0) = result_0; }{result_0 = 2*
x;
val.col(1) = result_0; }}
break;
83 case 5: {{result_0 = -2*
y;
val.col(0) = result_0; }{result_0 = 2*(-
x - 2*
y + 1);
val.col(1) = result_0; }}
break;
84 default: assert(
false);
88void b_3_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
90auto x=uv.col(0).array();
91auto y=uv.col(1).array();
94 case 0: {result_0 = -pow(
x +
y - 1, 3);}
break;
95 case 1: {result_0 = pow(
x, 3);}
break;
96 case 2: {result_0 = pow(
y, 3);}
break;
97 case 3: {result_0 = 3*
x*pow(
x +
y - 1, 2);}
break;
98 case 4: {result_0 = -3*pow(
x, 2)*(
x +
y - 1);}
break;
99 case 5: {result_0 = 3*pow(
x, 2)*
y;}
break;
100 case 6: {result_0 = 3*
x*pow(
y, 2);}
break;
101 case 7: {result_0 = -3*pow(
y, 2)*(
x +
y - 1);}
break;
102 case 8: {result_0 = 3*
y*pow(
x +
y - 1, 2);}
break;
103 case 9: {result_0 = -6*
x*
y*(
x +
y - 1);}
break;
104 default: assert(
false);
106void b_3_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
108auto x=uv.col(0).array();
109auto y=uv.col(1).array();
111val.resize(uv.rows(), uv.cols());
112 Eigen::ArrayXd result_0(uv.rows());
114 case 0: {{result_0 = -3*pow(
x +
y - 1, 2);
val.col(0) = result_0; }{result_0 = -3*pow(
x +
y - 1, 2);
val.col(1) = result_0; }}
break;
115 case 1: {{result_0 = 3*pow(
x, 2);
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }}
break;
116 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 3*pow(
y, 2);
val.col(1) = result_0; }}
break;
117 case 3: {{
const auto helper_0 =
y - 1;
118result_0 = 3*(helper_0 +
x)*(helper_0 + 3*
x);
val.col(0) = result_0; }{result_0 = 6*
x*(
x +
y - 1);
val.col(1) = result_0; }}
break;
119 case 4: {{
const auto helper_0 = 3*
x;
120result_0 = -helper_0*(helper_0 + 2*
y - 2);
val.col(0) = result_0; }{result_0 = -3*pow(
x, 2);
val.col(1) = result_0; }}
break;
121 case 5: {{result_0 = 6*
x*
y;
val.col(0) = result_0; }{result_0 = 3*pow(
x, 2);
val.col(1) = result_0; }}
break;
122 case 6: {{result_0 = 3*pow(
y, 2);
val.col(0) = result_0; }{result_0 = 6*
x*
y;
val.col(1) = result_0; }}
break;
123 case 7: {{result_0 = -3*pow(
y, 2);
val.col(0) = result_0; }{
const auto helper_0 = 3*
y;
124result_0 = -helper_0*(helper_0 + 2*
x - 2);
val.col(1) = result_0; }}
break;
125 case 8: {{result_0 = 6*
y*(
x +
y - 1);
val.col(0) = result_0; }{
const auto helper_0 =
x - 1;
126result_0 = 3*(helper_0 +
y)*(helper_0 + 3*
y);
val.col(1) = result_0; }}
break;
127 case 9: {{result_0 = -6*
y*(2*
x +
y - 1);
val.col(0) = result_0; }{result_0 = -6*
x*(
x + 2*
y - 1);
val.col(1) = result_0; }}
break;
128 default: assert(
false);
132void b_4_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
134auto x=uv.col(0).array();
135auto y=uv.col(1).array();
138 case 0: {result_0 = pow(
x +
y - 1, 4);}
break;
139 case 1: {result_0 = pow(
x, 4);}
break;
140 case 2: {result_0 = pow(
y, 4);}
break;
141 case 3: {result_0 = -4*
x*pow(
x +
y - 1, 3);}
break;
142 case 4: {result_0 = 6*pow(
x, 2)*pow(
x +
y - 1, 2);}
break;
143 case 5: {result_0 = -4*pow(
x, 3)*(
x +
y - 1);}
break;
144 case 6: {result_0 = 4*pow(
x, 3)*
y;}
break;
145 case 7: {result_0 = 6*pow(
x, 2)*pow(
y, 2);}
break;
146 case 8: {result_0 = 4*
x*pow(
y, 3);}
break;
147 case 9: {result_0 = -4*pow(
y, 3)*(
x +
y - 1);}
break;
148 case 10: {result_0 = 6*pow(
y, 2)*pow(
x +
y - 1, 2);}
break;
149 case 11: {result_0 = -4*
y*pow(
x +
y - 1, 3);}
break;
150 case 12: {result_0 = 12*
x*
y*pow(
x +
y - 1, 2);}
break;
151 case 13: {result_0 = -12*
x*pow(
y, 2)*(
x +
y - 1);}
break;
152 case 14: {result_0 = -12*pow(
x, 2)*
y*(
x +
y - 1);}
break;
153 default: assert(
false);
155void b_4_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
157auto x=uv.col(0).array();
158auto y=uv.col(1).array();
160val.resize(uv.rows(), uv.cols());
161 Eigen::ArrayXd result_0(uv.rows());
163 case 0: {{result_0 = 4*pow(
x +
y - 1, 3);
val.col(0) = result_0; }{result_0 = 4*pow(
x +
y - 1, 3);
val.col(1) = result_0; }}
break;
164 case 1: {{result_0 = 4*pow(
x, 3);
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }}
break;
165 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 4*pow(
y, 3);
val.col(1) = result_0; }}
break;
166 case 3: {{
const auto helper_0 =
y - 1;
167result_0 = -4*pow(helper_0 +
x, 2)*(helper_0 + 4*
x);
val.col(0) = result_0; }{result_0 = -12*
x*pow(
x +
y - 1, 2);
val.col(1) = result_0; }}
break;
168 case 4: {{
const auto helper_0 =
y - 1;
169result_0 = 12*
x*(helper_0 +
x)*(helper_0 + 2*
x);
val.col(0) = result_0; }{result_0 = 12*pow(
x, 2)*(
x +
y - 1);
val.col(1) = result_0; }}
break;
170 case 5: {{result_0 = -4*pow(
x, 2)*(4*
x + 3*
y - 3);
val.col(0) = result_0; }{result_0 = -4*pow(
x, 3);
val.col(1) = result_0; }}
break;
171 case 6: {{result_0 = 12*pow(
x, 2)*
y;
val.col(0) = result_0; }{result_0 = 4*pow(
x, 3);
val.col(1) = result_0; }}
break;
172 case 7: {{result_0 = 12*
x*pow(
y, 2);
val.col(0) = result_0; }{result_0 = 12*pow(
x, 2)*
y;
val.col(1) = result_0; }}
break;
173 case 8: {{result_0 = 4*pow(
y, 3);
val.col(0) = result_0; }{result_0 = 12*
x*pow(
y, 2);
val.col(1) = result_0; }}
break;
174 case 9: {{result_0 = -4*pow(
y, 3);
val.col(0) = result_0; }{result_0 = -4*pow(
y, 2)*(3*
x + 4*
y - 3);
val.col(1) = result_0; }}
break;
175 case 10: {{result_0 = 12*pow(
y, 2)*(
x +
y - 1);
val.col(0) = result_0; }{
const auto helper_0 =
x - 1;
176result_0 = 12*
y*(helper_0 +
y)*(helper_0 + 2*
y);
val.col(1) = result_0; }}
break;
177 case 11: {{result_0 = -12*
y*pow(
x +
y - 1, 2);
val.col(0) = result_0; }{
const auto helper_0 =
x - 1;
178result_0 = -4*pow(helper_0 +
y, 2)*(helper_0 + 4*
y);
val.col(1) = result_0; }}
break;
179 case 12: {{
const auto helper_0 =
y - 1;
180result_0 = 12*
y*(helper_0 +
x)*(helper_0 + 3*
x);
val.col(0) = result_0; }{
const auto helper_0 =
x - 1;
181result_0 = 12*
x*(helper_0 +
y)*(helper_0 + 3*
y);
val.col(1) = result_0; }}
break;
182 case 13: {{result_0 = -12*pow(
y, 2)*(2*
x +
y - 1);
val.col(0) = result_0; }{result_0 = -12*
x*
y*(2*
x + 3*
y - 2);
val.col(1) = result_0; }}
break;
183 case 14: {{result_0 = -12*
x*
y*(3*
x + 2*
y - 2);
val.col(0) = result_0; }{result_0 = -12*pow(
x, 2)*(
x + 2*
y - 1);
val.col(1) = result_0; }}
break;
184 default: assert(
false);
191void b_basis_value_2d(
const int b,
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
194 case 0: b_0_basis_value_2d(local_index, uv,
val);
break;
195 case 1: b_1_basis_value_2d(local_index, uv,
val);
break;
196 case 2: b_2_basis_value_2d(local_index, uv,
val);
break;
197 case 3: b_3_basis_value_2d(local_index, uv,
val);
break;
198 case 4: b_4_basis_value_2d(local_index, uv,
val);
break;
199 default: assert(
false);
205 case 0: b_0_basis_grad_value_2d(local_index, uv,
val);
break;
206 case 1: b_1_basis_grad_value_2d(local_index, uv,
val);
break;
207 case 2: b_2_basis_grad_value_2d(local_index, uv,
val);
break;
208 case 3: b_3_basis_grad_value_2d(local_index, uv,
val);
break;
209 case 4: b_4_basis_grad_value_2d(local_index, uv,
val);
break;
210 default: assert(
false);
214void b_0_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
216auto x=uv.col(0).array();
217auto y=uv.col(1).array();
218auto z=uv.col(2).array();
220result_0.resize(
x.size(),1);
222 case 0: {result_0.setOnes();}
break;
223 default: assert(
false);
225void b_0_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
227auto x=uv.col(0).array();
228auto y=uv.col(1).array();
229auto z=uv.col(2).array();
231val.resize(uv.rows(), uv.cols());
232 Eigen::ArrayXd result_0(uv.rows());
234 case 0: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
235 default: assert(
false);
239void b_1_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
241auto x=uv.col(0).array();
242auto y=uv.col(1).array();
243auto z=uv.col(2).array();
246 case 0: {result_0 = -
x -
y -
z + 1;}
break;
247 case 1: {result_0 =
x;}
break;
248 case 2: {result_0 =
y;}
break;
249 case 3: {result_0 =
z;}
break;
250 default: assert(
false);
252void b_1_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
254auto x=uv.col(0).array();
255auto y=uv.col(1).array();
256auto z=uv.col(2).array();
258val.resize(uv.rows(), uv.cols());
259 Eigen::ArrayXd result_0(uv.rows());
261 case 0: {{result_0.setConstant(-1);
val.col(0) = result_0; }{result_0.setConstant(-1);
val.col(1) = result_0; }{result_0.setConstant(-1);
val.col(2) = result_0; }}
break;
262 case 1: {{result_0.setOnes();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
263 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setOnes();
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
264 case 3: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0.setOnes();
val.col(2) = result_0; }}
break;
265 default: assert(
false);
269void b_2_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
271auto x=uv.col(0).array();
272auto y=uv.col(1).array();
273auto z=uv.col(2).array();
276 case 0: {result_0 = pow(
x +
y +
z - 1, 2);}
break;
277 case 1: {result_0 = pow(
x, 2);}
break;
278 case 2: {result_0 = pow(
y, 2);}
break;
279 case 3: {result_0 = pow(
z, 2);}
break;
280 case 4: {result_0 = -2*
x*(
x +
y +
z - 1);}
break;
281 case 5: {result_0 = 2*
x*
y;}
break;
282 case 6: {result_0 = -2*
y*(
x +
y +
z - 1);}
break;
283 case 7: {result_0 = -2*
z*(
x +
y +
z - 1);}
break;
284 case 8: {result_0 = 2*
x*
z;}
break;
285 case 9: {result_0 = 2*
y*
z;}
break;
286 default: assert(
false);
288void b_2_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
290auto x=uv.col(0).array();
291auto y=uv.col(1).array();
292auto z=uv.col(2).array();
294val.resize(uv.rows(), uv.cols());
295 Eigen::ArrayXd result_0(uv.rows());
297 case 0: {{result_0 = 2*(
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = 2*(
x +
y +
z - 1);
val.col(1) = result_0; }{result_0 = 2*(
x +
y +
z - 1);
val.col(2) = result_0; }}
break;
298 case 1: {{result_0 = 2*
x;
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
299 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 2*
y;
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
300 case 3: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 2*
z;
val.col(2) = result_0; }}
break;
301 case 4: {{result_0 = 2*(-2*
x -
y -
z + 1);
val.col(0) = result_0; }{result_0 = -2*
x;
val.col(1) = result_0; }{result_0 = -2*
x;
val.col(2) = result_0; }}
break;
302 case 5: {{result_0 = 2*
y;
val.col(0) = result_0; }{result_0 = 2*
x;
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
303 case 6: {{result_0 = -2*
y;
val.col(0) = result_0; }{result_0 = 2*(-
x - 2*
y -
z + 1);
val.col(1) = result_0; }{result_0 = -2*
y;
val.col(2) = result_0; }}
break;
304 case 7: {{result_0 = -2*
z;
val.col(0) = result_0; }{result_0 = -2*
z;
val.col(1) = result_0; }{result_0 = 2*(-
x -
y - 2*
z + 1);
val.col(2) = result_0; }}
break;
305 case 8: {{result_0 = 2*
z;
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 2*
x;
val.col(2) = result_0; }}
break;
306 case 9: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 2*
z;
val.col(1) = result_0; }{result_0 = 2*
y;
val.col(2) = result_0; }}
break;
307 default: assert(
false);
311void b_3_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
313auto x=uv.col(0).array();
314auto y=uv.col(1).array();
315auto z=uv.col(2).array();
318 case 0: {result_0 = -pow(
x +
y +
z - 1, 3);}
break;
319 case 1: {result_0 = pow(
x, 3);}
break;
320 case 2: {result_0 = pow(
y, 3);}
break;
321 case 3: {result_0 = pow(
z, 3);}
break;
322 case 4: {result_0 = 3*
x*pow(
x +
y +
z - 1, 2);}
break;
323 case 5: {result_0 = -3*pow(
x, 2)*(
x +
y +
z - 1);}
break;
324 case 6: {result_0 = 3*pow(
x, 2)*
y;}
break;
325 case 7: {result_0 = 3*
x*pow(
y, 2);}
break;
326 case 8: {result_0 = -3*pow(
y, 2)*(
x +
y +
z - 1);}
break;
327 case 9: {result_0 = 3*
y*pow(
x +
y +
z - 1, 2);}
break;
328 case 10: {result_0 = 3*
z*pow(
x +
y +
z - 1, 2);}
break;
329 case 11: {result_0 = -3*pow(
z, 2)*(
x +
y +
z - 1);}
break;
330 case 12: {result_0 = 3*pow(
x, 2)*
z;}
break;
331 case 13: {result_0 = 3*
x*pow(
z, 2);}
break;
332 case 14: {result_0 = 3*pow(
y, 2)*
z;}
break;
333 case 15: {result_0 = 3*
y*pow(
z, 2);}
break;
334 case 16: {result_0 = -6*
x*
y*(
x +
y +
z - 1);}
break;
335 case 17: {result_0 = -6*
x*
z*(
x +
y +
z - 1);}
break;
336 case 18: {result_0 = 6*
x*
y*
z;}
break;
337 case 19: {result_0 = -6*
y*
z*(
x +
y +
z - 1);}
break;
338 default: assert(
false);
340void b_3_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
342auto x=uv.col(0).array();
343auto y=uv.col(1).array();
344auto z=uv.col(2).array();
346val.resize(uv.rows(), uv.cols());
347 Eigen::ArrayXd result_0(uv.rows());
349 case 0: {{result_0 = -3*pow(
x +
y +
z - 1, 2);
val.col(0) = result_0; }{result_0 = -3*pow(
x +
y +
z - 1, 2);
val.col(1) = result_0; }{result_0 = -3*pow(
x +
y +
z - 1, 2);
val.col(2) = result_0; }}
break;
350 case 1: {{result_0 = 3*pow(
x, 2);
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
351 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 3*pow(
y, 2);
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
352 case 3: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 3*pow(
z, 2);
val.col(2) = result_0; }}
break;
353 case 4: {{
const auto helper_0 =
y +
z - 1;
354result_0 = 3*(helper_0 +
x)*(helper_0 + 3*
x);
val.col(0) = result_0; }{result_0 = 6*
x*(
x +
y +
z - 1);
val.col(1) = result_0; }{result_0 = 6*
x*(
x +
y +
z - 1);
val.col(2) = result_0; }}
break;
355 case 5: {{
const auto helper_0 = 3*
x;
356result_0 = -helper_0*(helper_0 + 2*
y + 2*
z - 2);
val.col(0) = result_0; }{result_0 = -3*pow(
x, 2);
val.col(1) = result_0; }{result_0 = -3*pow(
x, 2);
val.col(2) = result_0; }}
break;
357 case 6: {{result_0 = 6*
x*
y;
val.col(0) = result_0; }{result_0 = 3*pow(
x, 2);
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
358 case 7: {{result_0 = 3*pow(
y, 2);
val.col(0) = result_0; }{result_0 = 6*
x*
y;
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
359 case 8: {{result_0 = -3*pow(
y, 2);
val.col(0) = result_0; }{
const auto helper_0 = 3*
y;
360result_0 = -helper_0*(helper_0 + 2*
x + 2*
z - 2);
val.col(1) = result_0; }{result_0 = -3*pow(
y, 2);
val.col(2) = result_0; }}
break;
361 case 9: {{result_0 = 6*
y*(
x +
y +
z - 1);
val.col(0) = result_0; }{
const auto helper_0 =
x +
z - 1;
362result_0 = 3*(helper_0 +
y)*(helper_0 + 3*
y);
val.col(1) = result_0; }{result_0 = 6*
y*(
x +
y +
z - 1);
val.col(2) = result_0; }}
break;
363 case 10: {{result_0 = 6*
z*(
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = 6*
z*(
x +
y +
z - 1);
val.col(1) = result_0; }{
const auto helper_0 =
x +
y - 1;
364result_0 = 3*(helper_0 +
z)*(helper_0 + 3*
z);
val.col(2) = result_0; }}
break;
365 case 11: {{result_0 = -3*pow(
z, 2);
val.col(0) = result_0; }{result_0 = -3*pow(
z, 2);
val.col(1) = result_0; }{
const auto helper_0 = 3*
z;
366result_0 = -helper_0*(helper_0 + 2*
x + 2*
y - 2);
val.col(2) = result_0; }}
break;
367 case 12: {{result_0 = 6*
x*
z;
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 3*pow(
x, 2);
val.col(2) = result_0; }}
break;
368 case 13: {{result_0 = 3*pow(
z, 2);
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 6*
x*
z;
val.col(2) = result_0; }}
break;
369 case 14: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 6*
y*
z;
val.col(1) = result_0; }{result_0 = 3*pow(
y, 2);
val.col(2) = result_0; }}
break;
370 case 15: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 3*pow(
z, 2);
val.col(1) = result_0; }{result_0 = 6*
y*
z;
val.col(2) = result_0; }}
break;
371 case 16: {{result_0 = -6*
y*(2*
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = -6*
x*(
x + 2*
y +
z - 1);
val.col(1) = result_0; }{result_0 = -6*
x*
y;
val.col(2) = result_0; }}
break;
372 case 17: {{result_0 = -6*
z*(2*
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = -6*
x*
z;
val.col(1) = result_0; }{result_0 = -6*
x*(
x +
y + 2*
z - 1);
val.col(2) = result_0; }}
break;
373 case 18: {{result_0 = 6*
y*
z;
val.col(0) = result_0; }{result_0 = 6*
x*
z;
val.col(1) = result_0; }{result_0 = 6*
x*
y;
val.col(2) = result_0; }}
break;
374 case 19: {{result_0 = -6*
y*
z;
val.col(0) = result_0; }{result_0 = -6*
z*(
x + 2*
y +
z - 1);
val.col(1) = result_0; }{result_0 = -6*
y*(
x +
y + 2*
z - 1);
val.col(2) = result_0; }}
break;
375 default: assert(
false);
379void b_4_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
381auto x=uv.col(0).array();
382auto y=uv.col(1).array();
383auto z=uv.col(2).array();
386 case 0: {result_0 = pow(
x +
y +
z - 1, 4);}
break;
387 case 1: {result_0 = pow(
x, 4);}
break;
388 case 2: {result_0 = pow(
y, 4);}
break;
389 case 3: {result_0 = pow(
z, 4);}
break;
390 case 4: {result_0 = -4*
x*pow(
x +
y +
z - 1, 3);}
break;
391 case 5: {result_0 = 6*pow(
x, 2)*pow(
x +
y +
z - 1, 2);}
break;
392 case 6: {result_0 = -4*pow(
x, 3)*(
x +
y +
z - 1);}
break;
393 case 7: {result_0 = 4*pow(
x, 3)*
y;}
break;
394 case 8: {result_0 = 6*pow(
x, 2)*pow(
y, 2);}
break;
395 case 9: {result_0 = 4*
x*pow(
y, 3);}
break;
396 case 10: {result_0 = -4*pow(
y, 3)*(
x +
y +
z - 1);}
break;
397 case 11: {result_0 = 6*pow(
y, 2)*pow(
x +
y +
z - 1, 2);}
break;
398 case 12: {result_0 = -4*
y*pow(
x +
y +
z - 1, 3);}
break;
399 case 13: {result_0 = -4*
z*pow(
x +
y +
z - 1, 3);}
break;
400 case 14: {result_0 = 6*pow(
z, 2)*pow(
x +
y +
z - 1, 2);}
break;
401 case 15: {result_0 = -4*pow(
z, 3)*(
x +
y +
z - 1);}
break;
402 case 16: {result_0 = 4*pow(
x, 3)*
z;}
break;
403 case 17: {result_0 = 6*pow(
x, 2)*pow(
z, 2);}
break;
404 case 18: {result_0 = 4*
x*pow(
z, 3);}
break;
405 case 19: {result_0 = 4*pow(
y, 3)*
z;}
break;
406 case 20: {result_0 = 6*pow(
y, 2)*pow(
z, 2);}
break;
407 case 21: {result_0 = 4*
y*pow(
z, 3);}
break;
408 case 22: {result_0 = 12*
x*
y*pow(
x +
y +
z - 1, 2);}
break;
409 case 23: {result_0 = -12*
x*pow(
y, 2)*(
x +
y +
z - 1);}
break;
410 case 24: {result_0 = -12*pow(
x, 2)*
y*(
x +
y +
z - 1);}
break;
411 case 25: {result_0 = 12*
x*
z*pow(
x +
y +
z - 1, 2);}
break;
412 case 26: {result_0 = -12*
x*pow(
z, 2)*(
x +
y +
z - 1);}
break;
413 case 27: {result_0 = -12*pow(
x, 2)*
z*(
x +
y +
z - 1);}
break;
414 case 28: {result_0 = 12*pow(
x, 2)*
y*
z;}
break;
415 case 29: {result_0 = 12*
x*
y*pow(
z, 2);}
break;
416 case 30: {result_0 = 12*
x*pow(
y, 2)*
z;}
break;
417 case 31: {result_0 = -12*pow(
y, 2)*
z*(
x +
y +
z - 1);}
break;
418 case 32: {result_0 = -12*
y*pow(
z, 2)*(
x +
y +
z - 1);}
break;
419 case 33: {result_0 = 12*
y*
z*pow(
x +
y +
z - 1, 2);}
break;
420 case 34: {result_0 = -24*
x*
y*
z*(
x +
y +
z - 1);}
break;
421 default: assert(
false);
423void b_4_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
425auto x=uv.col(0).array();
426auto y=uv.col(1).array();
427auto z=uv.col(2).array();
429val.resize(uv.rows(), uv.cols());
430 Eigen::ArrayXd result_0(uv.rows());
432 case 0: {{result_0 = 4*pow(
x +
y +
z - 1, 3);
val.col(0) = result_0; }{result_0 = 4*pow(
x +
y +
z - 1, 3);
val.col(1) = result_0; }{result_0 = 4*pow(
x +
y +
z - 1, 3);
val.col(2) = result_0; }}
break;
433 case 1: {{result_0 = 4*pow(
x, 3);
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
434 case 2: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 4*pow(
y, 3);
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
435 case 3: {{result_0.setZero();
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 4*pow(
z, 3);
val.col(2) = result_0; }}
break;
436 case 4: {{
const auto helper_0 =
y +
z - 1;
437result_0 = -4*pow(helper_0 +
x, 2)*(helper_0 + 4*
x);
val.col(0) = result_0; }{result_0 = -12*
x*pow(
x +
y +
z - 1, 2);
val.col(1) = result_0; }{result_0 = -12*
x*pow(
x +
y +
z - 1, 2);
val.col(2) = result_0; }}
break;
438 case 5: {{
const auto helper_0 =
y +
z - 1;
439result_0 = 12*
x*(helper_0 +
x)*(helper_0 + 2*
x);
val.col(0) = result_0; }{result_0 = 12*pow(
x, 2)*(
x +
y +
z - 1);
val.col(1) = result_0; }{result_0 = 12*pow(
x, 2)*(
x +
y +
z - 1);
val.col(2) = result_0; }}
break;
440 case 6: {{result_0 = -4*pow(
x, 2)*(4*
x + 3*
y + 3*
z - 3);
val.col(0) = result_0; }{result_0 = -4*pow(
x, 3);
val.col(1) = result_0; }{result_0 = -4*pow(
x, 3);
val.col(2) = result_0; }}
break;
441 case 7: {{result_0 = 12*pow(
x, 2)*
y;
val.col(0) = result_0; }{result_0 = 4*pow(
x, 3);
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
442 case 8: {{result_0 = 12*
x*pow(
y, 2);
val.col(0) = result_0; }{result_0 = 12*pow(
x, 2)*
y;
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
443 case 9: {{result_0 = 4*pow(
y, 3);
val.col(0) = result_0; }{result_0 = 12*
x*pow(
y, 2);
val.col(1) = result_0; }{result_0.setZero();
val.col(2) = result_0; }}
break;
444 case 10: {{result_0 = -4*pow(
y, 3);
val.col(0) = result_0; }{result_0 = -4*pow(
y, 2)*(3*
x + 4*
y + 3*
z - 3);
val.col(1) = result_0; }{result_0 = -4*pow(
y, 3);
val.col(2) = result_0; }}
break;
445 case 11: {{result_0 = 12*pow(
y, 2)*(
x +
y +
z - 1);
val.col(0) = result_0; }{
const auto helper_0 =
x +
z - 1;
446result_0 = 12*
y*(helper_0 +
y)*(helper_0 + 2*
y);
val.col(1) = result_0; }{result_0 = 12*pow(
y, 2)*(
x +
y +
z - 1);
val.col(2) = result_0; }}
break;
447 case 12: {{result_0 = -12*
y*pow(
x +
y +
z - 1, 2);
val.col(0) = result_0; }{
const auto helper_0 =
x +
z - 1;
448result_0 = -4*pow(helper_0 +
y, 2)*(helper_0 + 4*
y);
val.col(1) = result_0; }{result_0 = -12*
y*pow(
x +
y +
z - 1, 2);
val.col(2) = result_0; }}
break;
449 case 13: {{result_0 = -12*
z*pow(
x +
y +
z - 1, 2);
val.col(0) = result_0; }{result_0 = -12*
z*pow(
x +
y +
z - 1, 2);
val.col(1) = result_0; }{
const auto helper_0 =
x +
y - 1;
450result_0 = -4*pow(helper_0 +
z, 2)*(helper_0 + 4*
z);
val.col(2) = result_0; }}
break;
451 case 14: {{result_0 = 12*pow(
z, 2)*(
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = 12*pow(
z, 2)*(
x +
y +
z - 1);
val.col(1) = result_0; }{
const auto helper_0 =
x +
y - 1;
452result_0 = 12*
z*(helper_0 +
z)*(helper_0 + 2*
z);
val.col(2) = result_0; }}
break;
453 case 15: {{result_0 = -4*pow(
z, 3);
val.col(0) = result_0; }{result_0 = -4*pow(
z, 3);
val.col(1) = result_0; }{result_0 = -4*pow(
z, 2)*(3*
x + 3*
y + 4*
z - 3);
val.col(2) = result_0; }}
break;
454 case 16: {{result_0 = 12*pow(
x, 2)*
z;
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 4*pow(
x, 3);
val.col(2) = result_0; }}
break;
455 case 17: {{result_0 = 12*
x*pow(
z, 2);
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 12*pow(
x, 2)*
z;
val.col(2) = result_0; }}
break;
456 case 18: {{result_0 = 4*pow(
z, 3);
val.col(0) = result_0; }{result_0.setZero();
val.col(1) = result_0; }{result_0 = 12*
x*pow(
z, 2);
val.col(2) = result_0; }}
break;
457 case 19: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 12*pow(
y, 2)*
z;
val.col(1) = result_0; }{result_0 = 4*pow(
y, 3);
val.col(2) = result_0; }}
break;
458 case 20: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 12*
y*pow(
z, 2);
val.col(1) = result_0; }{result_0 = 12*pow(
y, 2)*
z;
val.col(2) = result_0; }}
break;
459 case 21: {{result_0.setZero();
val.col(0) = result_0; }{result_0 = 4*pow(
z, 3);
val.col(1) = result_0; }{result_0 = 12*
y*pow(
z, 2);
val.col(2) = result_0; }}
break;
460 case 22: {{
const auto helper_0 =
y +
z - 1;
461result_0 = 12*
y*(helper_0 +
x)*(helper_0 + 3*
x);
val.col(0) = result_0; }{
const auto helper_0 =
x +
z - 1;
462result_0 = 12*
x*(helper_0 +
y)*(helper_0 + 3*
y);
val.col(1) = result_0; }{result_0 = 24*
x*
y*(
x +
y +
z - 1);
val.col(2) = result_0; }}
break;
463 case 23: {{result_0 = -12*pow(
y, 2)*(2*
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = -12*
x*
y*(2*
x + 3*
y + 2*
z - 2);
val.col(1) = result_0; }{result_0 = -12*
x*pow(
y, 2);
val.col(2) = result_0; }}
break;
464 case 24: {{result_0 = -12*
x*
y*(3*
x + 2*
y + 2*
z - 2);
val.col(0) = result_0; }{result_0 = -12*pow(
x, 2)*(
x + 2*
y +
z - 1);
val.col(1) = result_0; }{result_0 = -12*pow(
x, 2)*
y;
val.col(2) = result_0; }}
break;
465 case 25: {{
const auto helper_0 =
y +
z - 1;
466result_0 = 12*
z*(helper_0 +
x)*(helper_0 + 3*
x);
val.col(0) = result_0; }{result_0 = 24*
x*
z*(
x +
y +
z - 1);
val.col(1) = result_0; }{
const auto helper_0 =
x +
y - 1;
467result_0 = 12*
x*(helper_0 +
z)*(helper_0 + 3*
z);
val.col(2) = result_0; }}
break;
468 case 26: {{result_0 = -12*pow(
z, 2)*(2*
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = -12*
x*pow(
z, 2);
val.col(1) = result_0; }{result_0 = -12*
x*
z*(2*
x + 2*
y + 3*
z - 2);
val.col(2) = result_0; }}
break;
469 case 27: {{result_0 = -12*
x*
z*(3*
x + 2*
y + 2*
z - 2);
val.col(0) = result_0; }{result_0 = -12*pow(
x, 2)*
z;
val.col(1) = result_0; }{result_0 = -12*pow(
x, 2)*(
x +
y + 2*
z - 1);
val.col(2) = result_0; }}
break;
470 case 28: {{result_0 = 24*
x*
y*
z;
val.col(0) = result_0; }{result_0 = 12*pow(
x, 2)*
z;
val.col(1) = result_0; }{result_0 = 12*pow(
x, 2)*
y;
val.col(2) = result_0; }}
break;
471 case 29: {{result_0 = 12*
y*pow(
z, 2);
val.col(0) = result_0; }{result_0 = 12*
x*pow(
z, 2);
val.col(1) = result_0; }{result_0 = 24*
x*
y*
z;
val.col(2) = result_0; }}
break;
472 case 30: {{result_0 = 12*pow(
y, 2)*
z;
val.col(0) = result_0; }{result_0 = 24*
x*
y*
z;
val.col(1) = result_0; }{result_0 = 12*
x*pow(
y, 2);
val.col(2) = result_0; }}
break;
473 case 31: {{result_0 = -12*pow(
y, 2)*
z;
val.col(0) = result_0; }{result_0 = -12*
y*
z*(2*
x + 3*
y + 2*
z - 2);
val.col(1) = result_0; }{result_0 = -12*pow(
y, 2)*(
x +
y + 2*
z - 1);
val.col(2) = result_0; }}
break;
474 case 32: {{result_0 = -12*
y*pow(
z, 2);
val.col(0) = result_0; }{result_0 = -12*pow(
z, 2)*(
x + 2*
y +
z - 1);
val.col(1) = result_0; }{result_0 = -12*
y*
z*(2*
x + 2*
y + 3*
z - 2);
val.col(2) = result_0; }}
break;
475 case 33: {{result_0 = 24*
y*
z*(
x +
y +
z - 1);
val.col(0) = result_0; }{
const auto helper_0 =
x +
z - 1;
476result_0 = 12*
z*(helper_0 +
y)*(helper_0 + 3*
y);
val.col(1) = result_0; }{
const auto helper_0 =
x +
y - 1;
477result_0 = 12*
y*(helper_0 +
z)*(helper_0 + 3*
z);
val.col(2) = result_0; }}
break;
478 case 34: {{result_0 = -24*
y*
z*(2*
x +
y +
z - 1);
val.col(0) = result_0; }{result_0 = -24*
x*
z*(
x + 2*
y +
z - 1);
val.col(1) = result_0; }{result_0 = -24*
x*
y*(
x +
y + 2*
z - 1);
val.col(2) = result_0; }}
break;
479 default: assert(
false);
486void b_basis_value_3d(
const int b,
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
489 case 0: b_0_basis_value_3d(local_index, uv,
val);
break;
490 case 1: b_1_basis_value_3d(local_index, uv,
val);
break;
491 case 2: b_2_basis_value_3d(local_index, uv,
val);
break;
492 case 3: b_3_basis_value_3d(local_index, uv,
val);
break;
493 case 4: b_4_basis_value_3d(local_index, uv,
val);
break;
494 default: assert(
false);
500 case 0: b_0_basis_grad_value_3d(local_index, uv,
val);
break;
501 case 1: b_1_basis_grad_value_3d(local_index, uv,
val);
break;
502 case 2: b_2_basis_grad_value_3d(local_index, uv,
val);
break;
503 case 3: b_3_basis_grad_value_3d(local_index, uv,
val);
break;
504 case 4: b_4_basis_grad_value_3d(local_index, uv,
val);
break;
505 default: assert(
false);