Abaqus solid face Sk (1-based) -> local corner node indices (0-based, in the element's Abaqus node ordering).
| 259 | // Abaqus solid face Sk (1-based) -> local corner node indices (0-based, in the |
| 260 | // element's Abaqus node ordering). |
| 261 | static vector<int> FaceCornerIndices (netgen::ELEMENT_TYPE t, int sk) |
| 262 | { |
| 263 | using namespace netgen; |
| 264 | switch (t) |
| 265 | { |
| 266 | case TET: case TET10: |
| 267 | switch (sk) { case 1: return {0,1,2}; case 2: return {0,3,1}; |
| 268 | case 3: return {1,3,2}; case 4: return {2,3,0}; } |
| 269 | break; |
| 270 | case HEX: case HEX20: |
| 271 | switch (sk) { case 1: return {0,1,2,3}; case 2: return {4,5,6,7}; |
| 272 | case 3: return {0,4,5,1}; case 4: return {1,5,6,2}; |
| 273 | case 5: return {2,6,7,3}; case 6: return {3,7,4,0}; } |
| 274 | break; |
| 275 | case PRISM: case PRISM15: |
| 276 | switch (sk) { case 1: return {0,1,2}; case 2: return {3,4,5}; |
| 277 | case 3: return {0,1,4,3}; case 4: return {1,2,5,4}; case 5: return {2,0,3,5}; } |
| 278 | break; |
| 279 | case PYRAMID: |
| 280 | switch (sk) { case 1: return {0,1,2,3}; case 2: return {0,1,4}; |
| 281 | case 3: return {1,2,4}; case 4: return {2,3,4}; case 5: return {3,0,4}; } |
| 282 | break; |
| 283 | default: break; |
| 284 | } |
| 285 | return {}; |
| 286 | } |
| 287 | |
| 288 | |
| 289 | // ---------------------------------------------------------------------- |