PolyFEM
Loading...
Searching...
No Matches
auto_q_bases_3d_grad_1.cpp
Go to the documentation of this file.
1#include <Eigen/Dense>
2 namespace polyfem {
3namespace autogen {void q_1_basis_grad_value_3d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val){
4
5auto x=uv.col(0).array();
6auto y=uv.col(1).array();
7auto z=uv.col(2).array();
8
9val.resize(uv.rows(), uv.cols());
10 Eigen::ArrayXd result_0(uv.rows());
11switch(local_index){
12 case 0: {{result_0 = -1.0*(y - 1)*(z - 1);val.col(0) = result_0; }{result_0 = -1.0*(x - 1)*(z - 1);val.col(1) = result_0; }{result_0 = -1.0*(x - 1)*(y - 1);val.col(2) = result_0; }} break;
13 case 1: {{result_0 = 1.0*(y - 1)*(z - 1);val.col(0) = result_0; }{result_0 = 1.0*x*(z - 1);val.col(1) = result_0; }{result_0 = 1.0*x*(y - 1);val.col(2) = result_0; }} break;
14 case 2: {{result_0 = -1.0*y*(z - 1);val.col(0) = result_0; }{result_0 = -1.0*x*(z - 1);val.col(1) = result_0; }{result_0 = -1.0*x*y;val.col(2) = result_0; }} break;
15 case 3: {{result_0 = 1.0*y*(z - 1);val.col(0) = result_0; }{result_0 = 1.0*(x - 1)*(z - 1);val.col(1) = result_0; }{result_0 = 1.0*y*(x - 1);val.col(2) = result_0; }} break;
16 case 4: {{result_0 = 1.0*z*(y - 1);val.col(0) = result_0; }{result_0 = 1.0*z*(x - 1);val.col(1) = result_0; }{result_0 = 1.0*(x - 1)*(y - 1);val.col(2) = result_0; }} break;
17 case 5: {{result_0 = -1.0*z*(y - 1);val.col(0) = result_0; }{result_0 = -1.0*x*z;val.col(1) = result_0; }{result_0 = -1.0*x*(y - 1);val.col(2) = result_0; }} break;
18 case 6: {{result_0 = 1.0*y*z;val.col(0) = result_0; }{result_0 = 1.0*x*z;val.col(1) = result_0; }{result_0 = 1.0*x*y;val.col(2) = result_0; }} break;
19 case 7: {{result_0 = -1.0*y*z;val.col(0) = result_0; }{result_0 = -1.0*z*(x - 1);val.col(1) = result_0; }{result_0 = -1.0*y*(x - 1);val.col(2) = result_0; }} break;
20 default: assert(false);
21}}
22
23}}
double val
Definition Assembler.cpp:86
int y
int z
int x
void q_1_basis_grad_value_3d(const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)