20 #pragma warning(disable: 4786)
24 #include "vnl/vnl_math.h"
36 if (order==0) { order=2; }
39 pt[0] = gaussPoint[order][i%order];
40 pt[1] = gaussPoint[order][(i/order)%order];
41 pt[2] = gaussPoint[order][(i/(order*order))];
43 w=gaussWeight[order][i%order]*gaussWeight[order][(i/order)%order]*gaussWeight[order][(i/(order*order))];
54 if (order==0) { order=2; }
56 return order*order*order;
74 shapeF[0] = (1 - pt[0]) * (1 - pt[1]) * (1 - pt[2]) * 0.125;
77 shapeF[1] = (1 + pt[0]) * (1 - pt[1]) * (1 - pt[2]) * 0.125;
80 shapeF[2] = (1 + pt[0]) * (1 + pt[1]) * (1 - pt[2]) * 0.125;
83 shapeF[3] = (1 - pt[0]) * (1 + pt[1]) * (1 - pt[2]) * 0.125;
86 shapeF[4] = (1 - pt[0]) * (1 - pt[1]) * (1 + pt[2]) * 0.125;
89 shapeF[5] = (1 + pt[0]) * (1 - pt[1]) * (1 + pt[2]) * 0.125;
92 shapeF[6] = (1 + pt[0]) * (1 + pt[1]) * (1 + pt[2]) * 0.125;
95 shapeF[7] = (1 - pt[0]) * (1 + pt[1]) * (1 + pt[2]) * 0.125;
105 shapeD.set_size(3,8);
108 shapeD[0][0] = (-1) * (1 - pt[1]) * (1 - pt[2]) * 0.125;
111 shapeD[1][0] = (-1) * (1 - pt[0]) * (1 - pt[2]) * 0.125;
114 shapeD[2][0] = (-1) * (1 - pt[0]) * (1 - pt[1]) * 0.125;
117 shapeD[0][1] = (+1) * (1 - pt[1]) * (1 - pt[2]) * 0.125;
120 shapeD[1][1] = (-1) * (1 + pt[0]) * (1 - pt[2]) * 0.125;
123 shapeD[2][1] = (-1) * (1 + pt[0]) * (1 - pt[1]) * 0.125;
126 shapeD[0][2] = (+1) * (1 + pt[1]) * (1 - pt[2]) * 0.125;
129 shapeD[1][2] = (+1) * (1 + pt[0]) * (1 - pt[2]) * 0.125;
132 shapeD[2][2] = (-1) * (1 + pt[0]) * (1 + pt[1]) * 0.125;
135 shapeD[0][3] = (-1) * (1 + pt[1]) * (1 - pt[2]) * 0.125;
138 shapeD[1][3] = (+1) * (1 - pt[0]) * (1 - pt[2]) * 0.125;
141 shapeD[2][3] = (-1) * (1 - pt[0]) * (1 + pt[1]) * 0.125;
144 shapeD[0][4] = (-1) * (1 - pt[1]) * (1 + pt[2]) * 0.125;
147 shapeD[1][4] = (-1) * (1 - pt[0]) * (1 + pt[2]) * 0.125;
150 shapeD[2][4] = (+1) * (1 - pt[0]) * (1 - pt[1]) * 0.125;
153 shapeD[0][5] = (+1) * (1 - pt[1]) * (1 + pt[2]) * 0.125;
156 shapeD[1][5] = (-1) * (1 + pt[0]) * (1 + pt[2]) * 0.125;
159 shapeD[2][5] = (+1) * (1 + pt[0]) * (1 - pt[1]) * 0.125;
162 shapeD[0][6] = (+1) * (1 + pt[1]) * (1 + pt[2]) * 0.125;
165 shapeD[1][6] = (+1) * (1 + pt[0]) * (1 + pt[2]) * 0.125;
168 shapeD[2][6] = (+1) * (1 + pt[0]) * (1 + pt[1]) * 0.125;
171 shapeD[0][7] = (-1) * (1 + pt[1]) * (1 + pt[2]) * 0.125;
174 shapeD[1][7] = (+1) * (1 - pt[0]) * (1 + pt[2]) * 0.125;
177 shapeD[2][7] = (+1) * (1 - pt[0]) * (1 + pt[1]) * 0.125;
237 #ifdef FEM_BUILD_VISUALIZATION
239 Element3DC0LinearHexahedron