diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index 32db3a3d12..06f01e160a 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -53,6 +53,7 @@ SET(FemExampleMeshes_SRCS femexamples/meshes/__init__.py femexamples/meshes/mesh_boxanalysis_tetra10.py femexamples/meshes/mesh_boxes_2_vertikal_tetra10.py + femexamples/meshes/mesh_canticcx_hexa20.py femexamples/meshes/mesh_canticcx_tetra10.py femexamples/meshes/mesh_constraint_tie_tetra10.py femexamples/meshes/mesh_contact_box_halfcylinder_tetra10.py diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_std.py b/src/Mod/Fem/femexamples/ccx_cantilever_std.py index e39f5dcca1..3519bff199 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_std.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_std.py @@ -30,6 +30,7 @@ canti.setup_cantileverbase() canti.setup_cantileverfaceload() canti.setup_cantilevernodeload() canti.setup_cantileverprescribeddisplacement() +canti.setup_cantileverhexa20faceload() """ @@ -184,3 +185,23 @@ def setup_cantileverprescribeddisplacement(doc=None, solvertype="ccxtools"): doc.recompute() return doc + + +def setup_cantileverhexa20faceload(doc=None, solvertype="ccxtools"): + doc = setup_cantileverfaceload(doc, solvertype) + + # load the hexa20 mesh + from .meshes.mesh_canticcx_hexa20 import create_nodes, create_elements + fem_mesh = Fem.FemMesh() + control = create_nodes(fem_mesh) + if not control: + FreeCAD.Console.PrintError("Error on creating nodes.\n") + control = create_elements(fem_mesh) + if not control: + FreeCAD.Console.PrintError("Error on creating elements.\n") + + # overwrite mesh with the hexa20 mesh + doc.getObject(mesh_name).FemMesh = fem_mesh + + doc.recompute() + return doc diff --git a/src/Mod/Fem/femexamples/manager.py b/src/Mod/Fem/femexamples/manager.py index 11c7ad6a1d..8a499620b4 100644 --- a/src/Mod/Fem/femexamples/manager.py +++ b/src/Mod/Fem/femexamples/manager.py @@ -33,6 +33,7 @@ doc = run_boxanalysisfrequency() doc = run_ccx_cantileverfaceload() doc = run_ccx_cantilevernodeload() doc = run_ccx_cantileverprescribeddisplacement() +doc = setup_cantileverhexa20faceload() doc = run_constraint_contact_shell_shell() doc = run_constraint_contact_solid_solid() doc = run_constraint_tie() @@ -176,6 +177,21 @@ def run_ccx_cantileverprescribeddisplacement(solver=None, base_name=None): return doc +def setup_cantileverhexa20faceload(solver=None, base_name=None): + + from .ccx_cantilever_std import setup_cantileverhexa20faceload as setup + doc = setup() + + if base_name is None: + base_name = "CantilverHexa20FaceLoad" + if solver is not None: + base_name += "_" + solver + run_analysis(doc, base_name) + doc.recompute() + + return doc + + def run_constraint_contact_shell_shell(solver=None, base_name=None): from .constraint_contact_shell_shell import setup diff --git a/src/Mod/Fem/femexamples/meshes/mesh_canticcx_hexa20.py b/src/Mod/Fem/femexamples/meshes/mesh_canticcx_hexa20.py new file mode 100644 index 0000000000..63e11c0b49 --- /dev/null +++ b/src/Mod/Fem/femexamples/meshes/mesh_canticcx_hexa20.py @@ -0,0 +1,394 @@ +def create_nodes(femmesh): + # nodes + femmesh.addNode(-2.22e-13, 0.0, 1000.0, 1) + femmesh.addNode(4.460492503132002e-17, 0.0, 0.0, 2) + femmesh.addNode(4.460492503132002e-17, 1000.0, 0.0, 3) + femmesh.addNode(-2.22e-13, 1000.0, 1000.0, 4) + femmesh.addNode(8000.0, 0.0, 1000.0000000000018, 5) + femmesh.addNode(8000.0, 0.0, 1.8189894035458565e-12, 6) + femmesh.addNode(8000.0, 1000.0, 1.8189894035458565e-12, 7) + femmesh.addNode(8000.0, 1000.0, 1000.0000000000018, 8) + femmesh.addNode(-1.6648884876874216e-13, 0.0, 750.0, 9) + femmesh.addNode(-1.1097769753748433e-13, 0.0, 500.0, 10) + femmesh.addNode(-5.546654630622651e-14, 0.0, 250.0, 11) + femmesh.addNode(4.460492503132002e-17, 250.0, 0.0, 12) + femmesh.addNode(4.460492503132002e-17, 500.0, 0.0, 13) + femmesh.addNode(4.460492503132002e-17, 750.0, 0.0, 14) + femmesh.addNode(-5.546654630622651e-14, 1000.0, 250.0, 15) + femmesh.addNode(-1.1097769753748433e-13, 1000.0, 500.0, 16) + femmesh.addNode(-1.6648884876874216e-13, 1000.0, 750.0, 17) + femmesh.addNode(-2.22e-13, 750.0, 1000.0, 18) + femmesh.addNode(-2.22e-13, 500.0, 1000.0, 19) + femmesh.addNode(-2.22e-13, 250.0, 1000.0, 20) + femmesh.addNode(8000.0, 0.0, 750.0000000000018, 21) + femmesh.addNode(8000.0, 0.0, 500.00000000000176, 22) + femmesh.addNode(8000.0, 0.0, 250.00000000000182, 23) + femmesh.addNode(8000.0, 250.0, 1.8189894035458565e-12, 24) + femmesh.addNode(8000.0, 500.0, 1.8189894035458565e-12, 25) + femmesh.addNode(8000.0, 750.0, 1.8189894035458565e-12, 26) + femmesh.addNode(8000.0, 1000.0, 250.00000000000182, 27) + femmesh.addNode(8000.0, 1000.0, 500.00000000000176, 28) + femmesh.addNode(8000.0, 1000.0, 750.0000000000018, 29) + femmesh.addNode(8000.0, 750.0, 1000.0000000000018, 30) + femmesh.addNode(8000.0, 500.0, 1000.0000000000018, 31) + femmesh.addNode(8000.0, 250.0, 1000.0000000000018, 32) + femmesh.addNode(500.0, 0.0, 1.1368683772161603e-13, 33) + femmesh.addNode(1000.0, 0.0, 2.2737367544323206e-13, 34) + femmesh.addNode(1500.0, 0.0, 3.410605131648481e-13, 35) + femmesh.addNode(2000.0, 0.0, 4.547473508864641e-13, 36) + femmesh.addNode(2500.0, 0.0, 5.684341886080801e-13, 37) + femmesh.addNode(3000.0, 0.0, 6.821210263296962e-13, 38) + femmesh.addNode(3500.0, 0.0, 7.958078640513122e-13, 39) + femmesh.addNode(4000.0, 0.0, 9.094947017729282e-13, 40) + femmesh.addNode(4500.0, 0.0, 1.0231815394945443e-12, 41) + femmesh.addNode(5000.0, 0.0, 1.1368683772161603e-12, 42) + femmesh.addNode(5500.0, 0.0, 1.2505552149377763e-12, 43) + femmesh.addNode(6000.0, 0.0, 1.3642420526593924e-12, 44) + femmesh.addNode(6500.0, 0.0, 1.4779288903810084e-12, 45) + femmesh.addNode(7000.0, 0.0, 1.5916157281026244e-12, 46) + femmesh.addNode(7500.0, 0.0, 1.7053025658242404e-12, 47) + femmesh.addNode(7500.0, 0.0, 1000.0000000000017, 48) + femmesh.addNode(7000.0, 0.0, 1000.0000000000016, 49) + femmesh.addNode(6500.0, 0.0, 1000.0000000000015, 50) + femmesh.addNode(6000.0, 0.0, 1000.0000000000014, 51) + femmesh.addNode(5500.0, 0.0, 1000.0000000000013, 52) + femmesh.addNode(5000.0, 0.0, 1000.0000000000011, 53) + femmesh.addNode(4500.0, 0.0, 1000.000000000001, 54) + femmesh.addNode(4000.0, 0.0, 1000.0000000000009, 55) + femmesh.addNode(3500.0, 0.0, 1000.0000000000008, 56) + femmesh.addNode(3000.0, 0.0, 1000.0000000000007, 57) + femmesh.addNode(2500.0, 0.0, 1000.0000000000006, 58) + femmesh.addNode(1999.9999999999998, 0.0, 1000.0000000000005, 59) + femmesh.addNode(1499.9999999999998, 0.0, 1000.0000000000003, 60) + femmesh.addNode(999.9999999999998, 0.0, 1000.0000000000002, 61) + femmesh.addNode(499.9999999999998, 0.0, 1000.0000000000001, 62) + femmesh.addNode(500.0, 1000.0, 1.1368683772161603e-13, 63) + femmesh.addNode(1000.0, 1000.0, 2.2737367544323206e-13, 64) + femmesh.addNode(1500.0, 1000.0, 3.410605131648481e-13, 65) + femmesh.addNode(2000.0, 1000.0, 4.547473508864641e-13, 66) + femmesh.addNode(2500.0, 1000.0, 5.684341886080801e-13, 67) + femmesh.addNode(3000.0, 1000.0, 6.821210263296962e-13, 68) + femmesh.addNode(3500.0, 1000.0, 7.958078640513122e-13, 69) + femmesh.addNode(4000.0, 1000.0, 9.094947017729282e-13, 70) + femmesh.addNode(4500.0, 1000.0, 1.0231815394945443e-12, 71) + femmesh.addNode(5000.0, 1000.0, 1.1368683772161603e-12, 72) + femmesh.addNode(5500.0, 1000.0, 1.2505552149377763e-12, 73) + femmesh.addNode(6000.0, 1000.0, 1.3642420526593924e-12, 74) + femmesh.addNode(6500.0, 1000.0, 1.4779288903810084e-12, 75) + femmesh.addNode(7000.0, 1000.0, 1.5916157281026244e-12, 76) + femmesh.addNode(7500.0, 1000.0, 1.7053025658242404e-12, 77) + femmesh.addNode(499.9999999999998, 1000.0, 1000.0000000000001, 78) + femmesh.addNode(999.9999999999998, 1000.0, 1000.0000000000002, 79) + femmesh.addNode(1499.9999999999998, 1000.0, 1000.0000000000003, 80) + femmesh.addNode(1999.9999999999998, 1000.0, 1000.0000000000005, 81) + femmesh.addNode(2500.0, 1000.0, 1000.0000000000006, 82) + femmesh.addNode(3000.0, 1000.0, 1000.0000000000007, 83) + femmesh.addNode(3500.0, 1000.0, 1000.0000000000008, 84) + femmesh.addNode(4000.0, 1000.0, 1000.0000000000009, 85) + femmesh.addNode(4500.0, 1000.0, 1000.000000000001, 86) + femmesh.addNode(5000.0, 1000.0, 1000.0000000000011, 87) + femmesh.addNode(5500.0, 1000.0, 1000.0000000000013, 88) + femmesh.addNode(6000.0, 1000.0, 1000.0000000000014, 89) + femmesh.addNode(6500.0, 1000.0, 1000.0000000000015, 90) + femmesh.addNode(7000.0, 1000.0, 1000.0000000000016, 91) + femmesh.addNode(7500.0, 1000.0, 1000.0000000000017, 92) + femmesh.addNode(-1.1097769753748433e-13, 250.0, 500.0, 93) + femmesh.addNode(-1.6648884876874216e-13, 500.0, 750.0, 94) + femmesh.addNode(-1.1097769753748433e-13, 500.0, 500.0, 95) + femmesh.addNode(-5.546654630622651e-14, 500.0, 250.0, 96) + femmesh.addNode(-1.1097769753748433e-13, 750.0, 500.0, 97) + femmesh.addNode(8000.0, 250.0, 500.00000000000176, 98) + femmesh.addNode(8000.0, 500.0, 750.0000000000018, 99) + femmesh.addNode(8000.0, 500.0, 500.00000000000176, 100) + femmesh.addNode(8000.0, 500.0, 250.00000000000182, 101) + femmesh.addNode(8000.0, 750.0, 500.00000000000176, 102) + femmesh.addNode(499.9999999999999, 0.0, 500.0000000000001, 103) + femmesh.addNode(999.9999999999998, 0.0, 750.0000000000002, 104) + femmesh.addNode(999.9999999999999, 0.0, 500.0000000000002, 105) + femmesh.addNode(999.9999999999999, 0.0, 250.00000000000023, 106) + femmesh.addNode(1499.9999999999998, 0.0, 500.00000000000034, 107) + femmesh.addNode(1999.9999999999998, 0.0, 750.0000000000005, 108) + femmesh.addNode(1999.9999999999998, 0.0, 500.00000000000045, 109) + femmesh.addNode(2000.0, 0.0, 250.00000000000045, 110) + femmesh.addNode(2500.0, 0.0, 500.00000000000057, 111) + femmesh.addNode(3000.0, 0.0, 750.0000000000007, 112) + femmesh.addNode(3000.0, 0.0, 500.0000000000007, 113) + femmesh.addNode(3000.0, 0.0, 250.00000000000068, 114) + femmesh.addNode(3500.0, 0.0, 500.0000000000008, 115) + femmesh.addNode(4000.0, 0.0, 750.0000000000009, 116) + femmesh.addNode(4000.0, 0.0, 500.0000000000009, 117) + femmesh.addNode(4000.0, 0.0, 250.0000000000009, 118) + femmesh.addNode(4500.0, 0.0, 500.000000000001, 119) + femmesh.addNode(5000.0, 0.0, 750.0000000000011, 120) + femmesh.addNode(5000.0, 0.0, 500.00000000000114, 121) + femmesh.addNode(5000.0, 0.0, 250.00000000000114, 122) + femmesh.addNode(5500.0, 0.0, 500.0000000000012, 123) + femmesh.addNode(6000.0, 0.0, 750.0000000000014, 124) + femmesh.addNode(6000.0, 0.0, 500.0000000000013, 125) + femmesh.addNode(6000.0, 0.0, 250.00000000000136, 126) + femmesh.addNode(6500.0, 0.0, 500.0000000000014, 127) + femmesh.addNode(7000.0, 0.0, 750.0000000000016, 128) + femmesh.addNode(7000.0, 0.0, 500.00000000000153, 129) + femmesh.addNode(7000.0, 0.0, 250.0000000000016, 130) + femmesh.addNode(7500.0, 0.0, 500.00000000000165, 131) + femmesh.addNode(500.0, 500.0, 1.1368683772161603e-13, 132) + femmesh.addNode(1000.0, 250.0, 2.2737367544323206e-13, 133) + femmesh.addNode(1000.0, 500.0, 2.2737367544323206e-13, 134) + femmesh.addNode(1000.0, 750.0, 2.2737367544323206e-13, 135) + femmesh.addNode(1500.0, 500.0, 3.410605131648481e-13, 136) + femmesh.addNode(2000.0, 250.0, 4.547473508864641e-13, 137) + femmesh.addNode(2000.0, 500.0, 4.547473508864641e-13, 138) + femmesh.addNode(2000.0, 750.0, 4.547473508864641e-13, 139) + femmesh.addNode(2500.0, 500.0, 5.684341886080801e-13, 140) + femmesh.addNode(3000.0, 250.0, 6.821210263296962e-13, 141) + femmesh.addNode(3000.0, 500.0, 6.821210263296962e-13, 142) + femmesh.addNode(3000.0, 750.0, 6.821210263296962e-13, 143) + femmesh.addNode(3500.0, 500.0, 7.958078640513122e-13, 144) + femmesh.addNode(4000.0, 250.0, 9.094947017729282e-13, 145) + femmesh.addNode(4000.0, 500.0, 9.094947017729282e-13, 146) + femmesh.addNode(4000.0, 750.0, 9.094947017729282e-13, 147) + femmesh.addNode(4500.0, 500.0, 1.0231815394945443e-12, 148) + femmesh.addNode(5000.0, 250.0, 1.1368683772161603e-12, 149) + femmesh.addNode(5000.0, 500.0, 1.1368683772161603e-12, 150) + femmesh.addNode(5000.0, 750.0, 1.1368683772161603e-12, 151) + femmesh.addNode(5500.0, 500.0, 1.2505552149377763e-12, 152) + femmesh.addNode(6000.0, 250.0, 1.3642420526593924e-12, 153) + femmesh.addNode(6000.0, 500.0, 1.3642420526593924e-12, 154) + femmesh.addNode(6000.0, 750.0, 1.3642420526593924e-12, 155) + femmesh.addNode(6500.0, 500.0, 1.4779288903810084e-12, 156) + femmesh.addNode(7000.0, 250.0, 1.5916157281026244e-12, 157) + femmesh.addNode(7000.0, 500.0, 1.5916157281026244e-12, 158) + femmesh.addNode(7000.0, 750.0, 1.5916157281026244e-12, 159) + femmesh.addNode(7500.0, 500.0, 1.7053025658242404e-12, 160) + femmesh.addNode(499.9999999999999, 1000.0, 500.0000000000001, 161) + femmesh.addNode(999.9999999999999, 1000.0, 250.00000000000023, 162) + femmesh.addNode(999.9999999999999, 1000.0, 500.0000000000002, 163) + femmesh.addNode(999.9999999999998, 1000.0, 750.0000000000002, 164) + femmesh.addNode(1499.9999999999998, 1000.0, 500.00000000000034, 165) + femmesh.addNode(2000.0, 1000.0, 250.00000000000045, 166) + femmesh.addNode(1999.9999999999998, 1000.0, 500.00000000000045, 167) + femmesh.addNode(1999.9999999999998, 1000.0, 750.0000000000005, 168) + femmesh.addNode(2500.0, 1000.0, 500.00000000000057, 169) + femmesh.addNode(3000.0, 1000.0, 250.00000000000068, 170) + femmesh.addNode(3000.0, 1000.0, 500.0000000000007, 171) + femmesh.addNode(3000.0, 1000.0, 750.0000000000007, 172) + femmesh.addNode(3500.0, 1000.0, 500.0000000000008, 173) + femmesh.addNode(4000.0, 1000.0, 250.0000000000009, 174) + femmesh.addNode(4000.0, 1000.0, 500.0000000000009, 175) + femmesh.addNode(4000.0, 1000.0, 750.0000000000009, 176) + femmesh.addNode(4500.0, 1000.0, 500.000000000001, 177) + femmesh.addNode(5000.0, 1000.0, 250.00000000000114, 178) + femmesh.addNode(5000.0, 1000.0, 500.00000000000114, 179) + femmesh.addNode(5000.0, 1000.0, 750.0000000000011, 180) + femmesh.addNode(5500.0, 1000.0, 500.0000000000012, 181) + femmesh.addNode(6000.0, 1000.0, 250.00000000000136, 182) + femmesh.addNode(6000.0, 1000.0, 500.0000000000013, 183) + femmesh.addNode(6000.0, 1000.0, 750.0000000000014, 184) + femmesh.addNode(6500.0, 1000.0, 500.0000000000014, 185) + femmesh.addNode(7000.0, 1000.0, 250.0000000000016, 186) + femmesh.addNode(7000.0, 1000.0, 500.00000000000153, 187) + femmesh.addNode(7000.0, 1000.0, 750.0000000000016, 188) + femmesh.addNode(7500.0, 1000.0, 500.00000000000165, 189) + femmesh.addNode(499.9999999999998, 500.0, 1000.0000000000001, 190) + femmesh.addNode(999.9999999999998, 750.0, 1000.0000000000002, 191) + femmesh.addNode(999.9999999999998, 500.0, 1000.0000000000002, 192) + femmesh.addNode(999.9999999999998, 250.0, 1000.0000000000002, 193) + femmesh.addNode(1499.9999999999998, 500.0, 1000.0000000000003, 194) + femmesh.addNode(1999.9999999999998, 750.0, 1000.0000000000005, 195) + femmesh.addNode(1999.9999999999998, 500.0, 1000.0000000000005, 196) + femmesh.addNode(1999.9999999999998, 250.0, 1000.0000000000005, 197) + femmesh.addNode(2500.0, 500.0, 1000.0000000000006, 198) + femmesh.addNode(3000.0, 750.0, 1000.0000000000007, 199) + femmesh.addNode(3000.0, 500.0, 1000.0000000000007, 200) + femmesh.addNode(3000.0, 250.0, 1000.0000000000007, 201) + femmesh.addNode(3500.0, 500.0, 1000.0000000000008, 202) + femmesh.addNode(4000.0, 750.0, 1000.0000000000009, 203) + femmesh.addNode(4000.0, 500.0, 1000.0000000000009, 204) + femmesh.addNode(4000.0, 250.0, 1000.0000000000009, 205) + femmesh.addNode(4500.0, 500.0, 1000.000000000001, 206) + femmesh.addNode(5000.0, 750.0, 1000.0000000000011, 207) + femmesh.addNode(5000.0, 500.0, 1000.0000000000011, 208) + femmesh.addNode(5000.0, 250.0, 1000.0000000000011, 209) + femmesh.addNode(5500.0, 500.0, 1000.0000000000013, 210) + femmesh.addNode(6000.0, 750.0, 1000.0000000000014, 211) + femmesh.addNode(6000.0, 500.0, 1000.0000000000014, 212) + femmesh.addNode(6000.0, 250.0, 1000.0000000000014, 213) + femmesh.addNode(6500.0, 500.0, 1000.0000000000015, 214) + femmesh.addNode(7000.0, 750.0, 1000.0000000000016, 215) + femmesh.addNode(7000.0, 500.0, 1000.0000000000016, 216) + femmesh.addNode(7000.0, 250.0, 1000.0000000000016, 217) + femmesh.addNode(7500.0, 500.0, 1000.0000000000017, 218) + femmesh.addNode(499.9999999999999, 500.0, 500.0000000000001, 219) + femmesh.addNode(999.9999999999999, 250.0, 500.0000000000002, 220) + femmesh.addNode(999.9999999999998, 500.0, 750.0000000000002, 221) + femmesh.addNode(999.9999999999999, 500.0, 500.0000000000002, 222) + femmesh.addNode(999.9999999999999, 500.0, 250.00000000000023, 223) + femmesh.addNode(999.9999999999999, 750.0, 500.0000000000002, 224) + femmesh.addNode(1499.9999999999998, 500.0, 500.00000000000034, 225) + femmesh.addNode(1999.9999999999998, 250.0, 500.00000000000045, 226) + femmesh.addNode(1999.9999999999998, 500.0, 750.0000000000005, 227) + femmesh.addNode(1999.9999999999998, 500.0, 500.00000000000045, 228) + femmesh.addNode(2000.0, 500.0, 250.00000000000045, 229) + femmesh.addNode(1999.9999999999998, 750.0, 500.00000000000045, 230) + femmesh.addNode(2500.0, 500.0, 500.00000000000057, 231) + femmesh.addNode(3000.0, 250.0, 500.0000000000007, 232) + femmesh.addNode(3000.0, 500.0, 750.0000000000007, 233) + femmesh.addNode(3000.0, 500.0, 500.0000000000007, 234) + femmesh.addNode(3000.0, 500.0, 250.00000000000068, 235) + femmesh.addNode(3000.0, 750.0, 500.0000000000007, 236) + femmesh.addNode(3500.0, 500.0, 500.0000000000008, 237) + femmesh.addNode(4000.0, 250.0, 500.0000000000009, 238) + femmesh.addNode(4000.0, 500.0, 750.0000000000009, 239) + femmesh.addNode(4000.0, 500.0, 500.0000000000009, 240) + femmesh.addNode(4000.0, 500.0, 250.0000000000009, 241) + femmesh.addNode(4000.0, 750.0, 500.0000000000009, 242) + femmesh.addNode(4500.0, 500.0, 500.000000000001, 243) + femmesh.addNode(5000.0, 250.0, 500.00000000000114, 244) + femmesh.addNode(5000.0, 500.0, 750.0000000000011, 245) + femmesh.addNode(5000.0, 500.0, 500.00000000000114, 246) + femmesh.addNode(5000.0, 500.0, 250.00000000000114, 247) + femmesh.addNode(5000.0, 750.0, 500.00000000000114, 248) + femmesh.addNode(5500.0, 500.0, 500.0000000000012, 249) + femmesh.addNode(6000.0, 250.0, 500.0000000000013, 250) + femmesh.addNode(6000.0, 500.0, 750.0000000000014, 251) + femmesh.addNode(6000.0, 500.0, 500.0000000000013, 252) + femmesh.addNode(6000.0, 500.0, 250.00000000000136, 253) + femmesh.addNode(6000.0, 750.0, 500.0000000000013, 254) + femmesh.addNode(6500.0, 500.0, 500.0000000000014, 255) + femmesh.addNode(7000.0, 250.0, 500.00000000000153, 256) + femmesh.addNode(7000.0, 500.0, 750.0000000000016, 257) + femmesh.addNode(7000.0, 500.0, 500.00000000000153, 258) + femmesh.addNode(7000.0, 500.0, 250.0000000000016, 259) + femmesh.addNode(7000.0, 750.0, 500.00000000000153, 260) + femmesh.addNode(7500.0, 500.0, 500.00000000000165, 261) + return True + + +def create_elements(femmesh): + # elements + femmesh.addVolume([ + 192, 61, 105, 222, 19, 1, 10, 95, 193, 104, 220, 221, 20, 9, 93, 94, 190, 62, 103, 219 + ], 1) + femmesh.addVolume([ + 222, 105, 34, 134, 95, 10, 2, 13, 220, 106, 133, 223, 93, 11, 12, 96, 219, 103, 33, 132 + ], 2) + femmesh.addVolume([ + 79, 192, 222, 163, 4, 19, 95, 16, 191, 221, 224, 164, 18, 94, 97, 17, 78, 190, 219, 161 + ], 3) + femmesh.addVolume([ + 163, 222, 134, 64, 16, 95, 13, 3, 224, 223, + 135, 162, 97, 96, 14, 15, 161, 219, 132, 63 + ], 4) + femmesh.addVolume([ + 196, 59, 109, 228, 192, 61, 105, 222, 197, + 108, 226, 227, 193, 104, 220, 221, 194, 60, 107, 225 + ], 5) + femmesh.addVolume([ + 228, 109, 36, 138, 222, 105, 34, 134, 226, + 110, 137, 229, 220, 106, 133, 223, 225, 107, 35, 136 + ], 6) + femmesh.addVolume([ + 81, 196, 228, 167, 79, 192, 222, 163, 195, 227, + 230, 168, 191, 221, 224, 164, 80, 194, 225, 165 + ], 7) + femmesh.addVolume([ + 167, 228, 138, 66, 163, 222, 134, 64, 230, 229, + 139, 166, 224, 223, 135, 162, 165, 225, 136, 65 + ], 8) + femmesh.addVolume([ + 200, 57, 113, 234, 196, 59, 109, 228, 201, 112, + 232, 233, 197, 108, 226, 227, 198, 58, 111, 231 + ], 9) + femmesh.addVolume([ + 234, 113, 38, 142, 228, 109, 36, 138, 232, 114, + 141, 235, 226, 110, 137, 229, 231, 111, 37, 140 + ], 10) + femmesh.addVolume([ + 83, 200, 234, 171, 81, 196, 228, 167, 199, 233, + 236, 172, 195, 227, 230, 168, 82, 198, 231, 169 + ], 11) + femmesh.addVolume([ + 171, 234, 142, 68, 167, 228, 138, 66, 236, 235, + 143, 170, 230, 229, 139, 166, 169, 231, 140, 67 + ], 12) + femmesh.addVolume([ + 204, 55, 117, 240, 200, 57, 113, 234, 205, 116, + 238, 239, 201, 112, 232, 233, 202, 56, 115, 237 + ], 13) + femmesh.addVolume([ + 240, 117, 40, 146, 234, 113, 38, 142, 238, 118, + 145, 241, 232, 114, 141, 235, 237, 115, 39, 144 + ], 14) + femmesh.addVolume([ + 85, 204, 240, 175, 83, 200, 234, 171, 203, 239, + 242, 176, 199, 233, 236, 172, 84, 202, 237, 173 + ], 15) + femmesh.addVolume([ + 175, 240, 146, 70, 171, 234, 142, 68, 242, 241, + 147, 174, 236, 235, 143, 170, 173, 237, 144, 69 + ], 16) + femmesh.addVolume([ + 208, 53, 121, 246, 204, 55, 117, 240, 209, 120, + 244, 245, 205, 116, 238, 239, 206, 54, 119, 243 + ], 17) + femmesh.addVolume([ + 246, 121, 42, 150, 240, 117, 40, 146, 244, 122, + 149, 247, 238, 118, 145, 241, 243, 119, 41, 148 + ], 18) + femmesh.addVolume([ + 87, 208, 246, 179, 85, 204, 240, 175, 207, 245, + 248, 180, 203, 239, 242, 176, 86, 206, 243, 177 + ], 19) + femmesh.addVolume([ + 179, 246, 150, 72, 175, 240, 146, 70, 248, 247, + 151, 178, 242, 241, 147, 174, 177, 243, 148, 71 + ], 20) + femmesh.addVolume([ + 212, 51, 125, 252, 208, 53, 121, 246, 213, 124, + 250, 251, 209, 120, 244, 245, 210, 52, 123, 249 + ], 21) + femmesh.addVolume([ + 252, 125, 44, 154, 246, 121, 42, 150, 250, 126, + 153, 253, 244, 122, 149, 247, 249, 123, 43, 152 + ], 22) + femmesh.addVolume([ + 89, 212, 252, 183, 87, 208, 246, 179, 211, 251, + 254, 184, 207, 245, 248, 180, 88, 210, 249, 181 + ], 23) + femmesh.addVolume([ + 183, 252, 154, 74, 179, 246, 150, 72, 254, 253, + 155, 182, 248, 247, 151, 178, 181, 249, 152, 73 + ], 24) + femmesh.addVolume([ + 216, 49, 129, 258, 212, 51, 125, 252, 217, 128, + 256, 257, 213, 124, 250, 251, 214, 50, 127, 255 + ], 25) + femmesh.addVolume([ + 258, 129, 46, 158, 252, 125, 44, 154, 256, 130, + 157, 259, 250, 126, 153, 253, 255, 127, 45, 156 + ], 26) + femmesh.addVolume([ + 91, 216, 258, 187, 89, 212, 252, 183, 215, 257, + 260, 188, 211, 251, 254, 184, 90, 214, 255, 185 + ], 27) + femmesh.addVolume([ + 187, 258, 158, 76, 183, 252, 154, 74, 260, 259, + 159, 186, 254, 253, 155, 182, 185, 255, 156, 75 + ], 28) + femmesh.addVolume([ + 31, 5, 22, 100, 216, 49, 129, 258, 32, 21, + 98, 99, 217, 128, 256, 257, 218, 48, 131, 261 + ], 29) + femmesh.addVolume([ + 100, 22, 6, 25, 258, 129, 46, 158, 98, 23, + 24, 101, 256, 130, 157, 259, 261, 131, 47, 160 + ], 30) + femmesh.addVolume([ + 8, 31, 100, 28, 91, 216, 258, 187, 30, 99, + 102, 29, 215, 257, 260, 188, 92, 218, 261, 189 + ], 31) + femmesh.addVolume([ + 28, 100, 25, 7, 187, 258, 158, 76, 102, 101, + 26, 27, 260, 259, 159, 186, 189, 261, 160, 77 + ], 32) + return True