PolyFEM
Loading...
Searching...
No Matches
auto_q_bases_3d_nodes.cpp
Go to the documentation of this file.
2
3
4namespace polyfem {
5namespace autogen {
6namespace {
7void q_0_nodes_3d(Eigen::MatrixXd &res) {
8 res.resize(1, 3); res <<
90.5, 0.5, 0.5;
10}
11
12void q_1_nodes_3d(Eigen::MatrixXd &res) {
13 res.resize(8, 3); res <<
140, 0, 0,
151, 0, 0,
161, 1, 0,
170, 1, 0,
180, 0, 1,
191, 0, 1,
201, 1, 1,
210, 1, 1;
22}
23
24void q_2_nodes_3d(Eigen::MatrixXd &res) {
25 res.resize(27, 3); res <<
260, 0, 0,
271, 0, 0,
281, 1, 0,
290, 1, 0,
300, 0, 1,
311, 0, 1,
321, 1, 1,
330, 1, 1,
341.0/2.0, 0, 0,
351, 1.0/2.0, 0,
361.0/2.0, 1, 0,
370, 1.0/2.0, 0,
380, 0, 1.0/2.0,
391, 0, 1.0/2.0,
401, 1, 1.0/2.0,
410, 1, 1.0/2.0,
421.0/2.0, 0, 1,
431, 1.0/2.0, 1,
441.0/2.0, 1, 1,
450, 1.0/2.0, 1,
460, 1.0/2.0, 1.0/2.0,
471, 1.0/2.0, 1.0/2.0,
481.0/2.0, 0, 1.0/2.0,
491.0/2.0, 1, 1.0/2.0,
501.0/2.0, 1.0/2.0, 0,
511.0/2.0, 1.0/2.0, 1,
521.0/2.0, 1.0/2.0, 1.0/2.0;
53}
54
55void q_3_nodes_3d(Eigen::MatrixXd &res) {
56 res.resize(64, 3); res <<
570, 0, 0,
581, 0, 0,
591, 1, 0,
600, 1, 0,
610, 0, 1,
621, 0, 1,
631, 1, 1,
640, 1, 1,
651.0/3.0, 0, 0,
662.0/3.0, 0, 0,
671, 1.0/3.0, 0,
681, 2.0/3.0, 0,
692.0/3.0, 1, 0,
701.0/3.0, 1, 0,
710, 2.0/3.0, 0,
720, 1.0/3.0, 0,
730, 0, 1.0/3.0,
740, 0, 2.0/3.0,
751, 0, 2.0/3.0,
761, 0, 1.0/3.0,
771, 1, 2.0/3.0,
781, 1, 1.0/3.0,
790, 1, 2.0/3.0,
800, 1, 1.0/3.0,
811.0/3.0, 0, 1,
822.0/3.0, 0, 1,
831, 1.0/3.0, 1,
841, 2.0/3.0, 1,
852.0/3.0, 1, 1,
861.0/3.0, 1, 1,
870, 2.0/3.0, 1,
880, 1.0/3.0, 1,
890, 2.0/3.0, 2.0/3.0,
900, 2.0/3.0, 1.0/3.0,
910, 1.0/3.0, 2.0/3.0,
920, 1.0/3.0, 1.0/3.0,
931, 1.0/3.0, 1.0/3.0,
941, 1.0/3.0, 2.0/3.0,
951, 2.0/3.0, 1.0/3.0,
961, 2.0/3.0, 2.0/3.0,
971.0/3.0, 0, 1.0/3.0,
981.0/3.0, 0, 2.0/3.0,
992.0/3.0, 0, 1.0/3.0,
1002.0/3.0, 0, 2.0/3.0,
1011.0/3.0, 1, 1.0/3.0,
1021.0/3.0, 1, 2.0/3.0,
1032.0/3.0, 1, 1.0/3.0,
1042.0/3.0, 1, 2.0/3.0,
1051.0/3.0, 1.0/3.0, 0,
1061.0/3.0, 2.0/3.0, 0,
1072.0/3.0, 1.0/3.0, 0,
1082.0/3.0, 2.0/3.0, 0,
1091.0/3.0, 1.0/3.0, 1,
1101.0/3.0, 2.0/3.0, 1,
1112.0/3.0, 1.0/3.0, 1,
1122.0/3.0, 2.0/3.0, 1,
1131.0/3.0, 1.0/3.0, 1.0/3.0,
1141.0/3.0, 1.0/3.0, 2.0/3.0,
1151.0/3.0, 2.0/3.0, 1.0/3.0,
1161.0/3.0, 2.0/3.0, 2.0/3.0,
1172.0/3.0, 1.0/3.0, 1.0/3.0,
1182.0/3.0, 1.0/3.0, 2.0/3.0,
1192.0/3.0, 2.0/3.0, 1.0/3.0,
1202.0/3.0, 2.0/3.0, 2.0/3.0;
121}
122
123void q_m2_nodes_3d(Eigen::MatrixXd &res) {
124 res.resize(20, 3); res <<
1250.0, 0.0, 0.0,
1261.0, 0.0, 0.0,
1271.0, 1.0, 0.0,
1280.0, 1.0, 0.0,
1290.0, 0.0, 1.0,
1301.0, 0.0, 1.0,
1311.0, 1.0, 1.0,
1320.0, 1.0, 1.0,
1330.5, 0.0, 0.0,
1341.0, 0.5, 0.0,
1350.5, 1.0, 0.0,
1360.0, 0.5, 0.0,
1370.0, 0.0, 0.5,
1381.0, 0.0, 0.5,
1391.0, 1.0, 0.5,
1400.0, 1.0, 0.5,
1410.5, 0.0, 1.0,
1421.0, 0.5, 1.0,
1430.5, 1.0, 1.0,
1440.0, 0.5, 1.0;
145}
146
147}
148
149void q_nodes_3d(const int q, Eigen::MatrixXd &val){
150switch(q){
151 case 0: q_0_nodes_3d(val); break;
152 case 1: q_1_nodes_3d(val); break;
153 case 2: q_2_nodes_3d(val); break;
154 case 3: q_3_nodes_3d(val); break;
155 case -2: q_m2_nodes_3d(val); break;
156 default: assert(false);
157}}
158}}
double val
Definition Assembler.cpp:86
void q_nodes_3d(const int q, Eigen::MatrixXd &val)