From 26c2d6540f91c325383891bc9e8b3db827151191 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Wed, 28 Jul 2021 18:40:02 +0200 Subject: [PATCH] FEM: z88 solver, tria6 example and unit test as well as small writer improvements --- src/Mod/Fem/CMakeLists.txt | 45 ++- .../femexamples/ccx_cantilever_base_face.py | 2 + .../femexamples/ccx_cantilever_ele_tria6.py | 2 +- src/Mod/Fem/femsolver/z88/tasks.py | 3 +- src/Mod/Fem/femsolver/z88/writer.py | 9 +- src/Mod/Fem/femtest/app/test_solver_z88.py | 8 + .../data/z88/ccx_cantilever_ele_tria6/51.txt | 1 + .../data/z88/ccx_cantilever_ele_tria6/z88.dyn | 49 +++ .../z88/ccx_cantilever_ele_tria6/z88elp.txt | 2 + .../z88/ccx_cantilever_ele_tria6/z88i1.txt | 318 ++++++++++++++++++ .../z88/ccx_cantilever_ele_tria6/z88i2.txt | 26 ++ .../z88/ccx_cantilever_ele_tria6/z88i5.txt | 1 + .../z88/ccx_cantilever_ele_tria6/z88int.txt | 2 + .../z88/ccx_cantilever_ele_tria6/z88man.txt | 36 ++ .../z88/ccx_cantilever_ele_tria6/z88mat.txt | 2 + src/Mod/Fem/femtest/test_commands.sh | 17 +- 16 files changed, 493 insertions(+), 30 deletions(-) create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/51.txt create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88.dyn create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88elp.txt create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i1.txt create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i2.txt create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i5.txt create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88int.txt create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88man.txt create mode 100644 src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88mat.txt diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index 45c7c99e14..93653e0d66 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -366,6 +366,32 @@ SET(FemTestsZ88Main_SRCS femtest/data/z88/__init__.py ) +SET(FemTestsZ88CcxcantiEleHex20_SRCS + femtest/data/z88/__init__.py + femtest/data/z88/ccx_cantilever_ele_hexa20/51.txt + femtest/data/z88/ccx_cantilever_ele_hexa20/z88.dyn + femtest/data/z88/ccx_cantilever_ele_hexa20/z88elp.txt + femtest/data/z88/ccx_cantilever_ele_hexa20/z88i1.txt + femtest/data/z88/ccx_cantilever_ele_hexa20/z88i2.txt + femtest/data/z88/ccx_cantilever_ele_hexa20/z88i5.txt + femtest/data/z88/ccx_cantilever_ele_hexa20/z88int.txt + femtest/data/z88/ccx_cantilever_ele_hexa20/z88man.txt + femtest/data/z88/ccx_cantilever_ele_hexa20/z88mat.txt +) + +SET(FemTestsZ88CcxcantiEleTria6_SRCS + femtest/data/z88/__init__.py + femtest/data/z88/ccx_cantilever_ele_tria6/51.txt + femtest/data/z88/ccx_cantilever_ele_tria6/z88.dyn + femtest/data/z88/ccx_cantilever_ele_tria6/z88elp.txt + femtest/data/z88/ccx_cantilever_ele_tria6/z88i1.txt + femtest/data/z88/ccx_cantilever_ele_tria6/z88i2.txt + femtest/data/z88/ccx_cantilever_ele_tria6/z88i5.txt + femtest/data/z88/ccx_cantilever_ele_tria6/z88int.txt + femtest/data/z88/ccx_cantilever_ele_tria6/z88man.txt + femtest/data/z88/ccx_cantilever_ele_tria6/z88mat.txt +) + SET(FemTestsZ88Ccxcantifl_SRCS femtest/data/z88/__init__.py femtest/data/z88/ccx_cantilever_faceload/51.txt @@ -379,19 +405,6 @@ SET(FemTestsZ88Ccxcantifl_SRCS femtest/data/z88/ccx_cantilever_faceload/z88mat.txt ) -SET(FemTestsZ88Ccxcantihex_SRCS - femtest/data/z88/__init__.py - femtest/data/z88/ccx_cantilever_ele_hexa20/51.txt - femtest/data/z88/ccx_cantilever_ele_hexa20/z88.dyn - femtest/data/z88/ccx_cantilever_ele_hexa20/z88elp.txt - femtest/data/z88/ccx_cantilever_ele_hexa20/z88i1.txt - femtest/data/z88/ccx_cantilever_ele_hexa20/z88i2.txt - femtest/data/z88/ccx_cantilever_ele_hexa20/z88i5.txt - femtest/data/z88/ccx_cantilever_ele_hexa20/z88int.txt - femtest/data/z88/ccx_cantilever_ele_hexa20/z88man.txt - femtest/data/z88/ccx_cantilever_ele_hexa20/z88mat.txt -) - SET(FemTestsZ88Ccxcantinl_SRCS femtest/data/z88/__init__.py femtest/data/z88/ccx_cantilever_nodeload/51.txt @@ -442,7 +455,8 @@ SET(FemAllScripts ${FemTestsOpen_SRCS} ${FemTestsZ88Main_SRCS} ${FemTestsZ88Ccxcantifl_SRCS} - ${FemTestsZ88Ccxcantihex_SRCS} + ${FemTestsZ88CcxcantiEleHex20_SRCS} + ${FemTestsZ88CcxcantiEleTria6_SRCS} ${FemTestsZ88Ccxcantinl_SRCS} ${FemTools_SRCS} ) @@ -477,8 +491,9 @@ INSTALL(FILES ${FemTestsElmer_SRCS} DESTINATION Mod/Fem/femtest/data/elmer) INSTALL(FILES ${FemTestsMesh_SRCS} DESTINATION Mod/Fem/femtest/data/mesh) INSTALL(FILES ${FemTestsOpen_SRCS} DESTINATION Mod/Fem/femtest/data/open) INSTALL(FILES ${FemTestsZ88Main_SRCS} DESTINATION Mod/Fem/femtest/data/z88) +INSTALL(FILES ${FemTestsZ88CcxcantiEleHex20_SRCS} DESTINATION Mod/Fem/femtest/data/z88/ccx_cantilever_ele_hexa20) +INSTALL(FILES ${FemTestsZ88CcxcantiEleTria6_SRCS} DESTINATION Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6) INSTALL(FILES ${FemTestsZ88Ccxcantifl_SRCS} DESTINATION Mod/Fem/femtest/data/z88/ccx_cantilever_faceload) -INSTALL(FILES ${FemTestsZ88Ccxcantihex_SRCS} DESTINATION Mod/Fem/femtest/data/z88/ccx_cantilever_ele_hexa20) INSTALL(FILES ${FemTestsZ88Ccxcantinl_SRCS} DESTINATION Mod/Fem/femtest/data/z88/ccx_cantilever_nodeload) INSTALL(FILES ${FemTools_SRCS} DESTINATION Mod/Fem/femtools) diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py b/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py index 27e531e1b8..0bf0ffa39f 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py @@ -61,6 +61,8 @@ def setup_cantilever_base_face(doc=None, solvertype="ccxtools"): elif solvertype == "ccxtools": solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") solver_obj.WorkingDir = u"" + elif solvertype == "z88": + solver_obj = ObjectsFem.makeSolverZ88(doc, "SolverZ88") else: FreeCAD.Console.PrintWarning( "Not known or not supported solver type: {}. " diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria6.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria6.py index b80a937ed3..036fc3587f 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria6.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria6.py @@ -32,7 +32,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria6", "constraints": ["fixed", "force"], - "solvers": ["calculix"], + "solvers": ["calculix", "z88"], "material": "solid", "equation": "mechanical" } diff --git a/src/Mod/Fem/femsolver/z88/tasks.py b/src/Mod/Fem/femsolver/z88/tasks.py index 74b5f0ad8f..6a626fe662 100644 --- a/src/Mod/Fem/femsolver/z88/tasks.py +++ b/src/Mod/Fem/femsolver/z88/tasks.py @@ -70,7 +70,8 @@ class Prepare(run.Prepare): if path is not None: self.pushStatus("Write completed!") else: - self.pushStatus("Writing Z88 input files failed!") + self.pushStatus("Writing Z88 solver input files failed!") + self.fail() # print(path) diff --git a/src/Mod/Fem/femsolver/z88/writer.py b/src/Mod/Fem/femsolver/z88/writer.py index 873ecfc6da..81be204c19 100644 --- a/src/Mod/Fem/femsolver/z88/writer.py +++ b/src/Mod/Fem/femsolver/z88/writer.py @@ -71,7 +71,9 @@ class FemInputWriterZ88(writerbase.FemInputWriter): if not self.femelement_table: self.femelement_table = meshtools.get_femelement_table(self.femmesh) self.element_count = len(self.femelement_table) - self.set_z88_elparam() + control = self.set_z88_elparam() + if control is False: + return None self.write_z88_mesh() self.write_z88_constraints() self.write_z88_face_loads() @@ -105,9 +107,12 @@ class FemInputWriterZ88(writerbase.FemInputWriter): if self.z88_element_type in param: self.z88_elparam = param[self.z88_element_type] else: - raise Exception("Element type not supported by Z88.") + FreeCAD.Console.PrintError( + "Element type not supported by Z88. Can not write Z88 solver input.\n") + return False FreeCAD.Console.PrintMessage(self.z88_elparam) FreeCAD.Console.PrintMessage("\n") + return True def write_z88_mesh(self): mesh_file_path = self.file_name + "i1.txt" diff --git a/src/Mod/Fem/femtest/app/test_solver_z88.py b/src/Mod/Fem/femtest/app/test_solver_z88.py index 9b69c77216..b770615552 100644 --- a/src/Mod/Fem/femtest/app/test_solver_z88.py +++ b/src/Mod/Fem/femtest/app/test_solver_z88.py @@ -91,6 +91,14 @@ class TestSolverZ88(unittest.TestCase): setup(self.document, "z88") self.inputfile_writing_test(get_namefromdef("test_")) + # ******************************************************************************************** + def test_ccx_cantilever_ele_tria6( + self + ): + from femexamples.ccx_cantilever_ele_tria6 import setup + setup(self.document, "z88") + self.inputfile_writing_test(get_namefromdef("test_")) + # ******************************************************************************************** def test_ccx_cantilever_nodeload( self diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/51.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/51.txt new file mode 100644 index 0000000000..d5022434bd --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/51.txt @@ -0,0 +1 @@ +210000.0 0.300 diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88.dyn b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88.dyn new file mode 100644 index 0000000000..82ffff0d69 --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88.dyn @@ -0,0 +1,49 @@ +DYNAMIC START +--------------------------------------------------------------------------- +Z88 new version 14OS Z88 neue Version 14OS +--------------------------------------------------------------------------- + +--------------------------------------------------------------------------- +LANGUAGE SPRACHE +--------------------------------------------------------------------------- +GERMAN + +--------------------------------------------------------------------------- +Entries for mesh generator Z88N Daten fuer Netzgenerator +--------------------------------------------------------------------------- + NET START + MAXSE 40000 + MAXESS 800 + MAXKSS 4000 + MAXAN 15 + NET END + +--------------------------------------------------------------------------- +Common entries for all modules gemeinsame Daten fuer alle Module +--------------------------------------------------------------------------- + + COMMON START + MAXGS 50000000 + MAXKOI 1200000 + MAXK 60000 + MAXE 300000 + MAXNFG 200000 + MAXMAT 32 + MAXPEL 32 + MAXJNT 32 + MAXPR 10000 + MAXRBD 15000 + MAXIEZ 6000000 + MAXGP 2000000 + COMMON END + +--------------------------------------------------------------------------- +Entries for Cuthill-McKee Z88H Daten fuer Cuthill- McKee Programm +--------------------------------------------------------------------------- + CUTKEE START + MAXGRA 200 + MAXNDL 1000 + CUTKEE END + + +DYNAMIC END diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88elp.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88elp.txt new file mode 100644 index 0000000000..2b73a45163 --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88elp.txt @@ -0,0 +1,2 @@ +1 +1 70 1000.0 0 0 0 0 0 0 diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i1.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i1.txt new file mode 100644 index 0000000000..0376ffabb4 --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i1.txt @@ -0,0 +1,318 @@ +3 177 70 1062 0 written by FreeCAD +1 6 0.000000 500.000000 0.000000 +2 6 0.000000 500.000000 1000.000000 +3 6 8000.000000 500.000000 0.000000 +4 6 8000.000000 500.000000 1000.000000 +5 6 0.000000 500.000000 500.000000 +6 6 0.000000 500.000000 250.000000 +7 6 0.000000 500.000000 750.000000 +8 6 500.000000 500.000000 0.000000 +9 6 1000.000000 500.000000 0.000000 +10 6 1500.000000 500.000000 0.000000 +11 6 2000.000000 500.000000 0.000000 +12 6 2500.000000 500.000000 0.000000 +13 6 3000.000000 500.000000 0.000000 +14 6 3500.000000 500.000000 0.000000 +15 6 4000.000000 500.000000 0.000000 +16 6 4500.000000 500.000000 0.000000 +17 6 5000.000000 500.000000 0.000000 +18 6 5500.000000 500.000000 0.000000 +19 6 6000.000000 500.000000 0.000000 +20 6 6500.000000 500.000000 0.000000 +21 6 7000.000000 500.000000 0.000000 +22 6 7500.000000 500.000000 0.000000 +23 6 250.000000 500.000000 0.000000 +24 6 750.000000 500.000000 0.000000 +25 6 1250.000000 500.000000 0.000000 +26 6 1750.000000 500.000000 0.000000 +27 6 2250.000000 500.000000 0.000000 +28 6 2750.000000 500.000000 0.000000 +29 6 3250.000000 500.000000 0.000000 +30 6 3750.000000 500.000000 0.000000 +31 6 4250.000000 500.000000 0.000000 +32 6 4750.000000 500.000000 0.000000 +33 6 5250.000000 500.000000 0.000000 +34 6 5750.000000 500.000000 0.000000 +35 6 6250.000000 500.000000 0.000000 +36 6 6750.000000 500.000000 0.000000 +37 6 7250.000000 500.000000 0.000000 +38 6 7750.000000 500.000000 0.000000 +39 6 8000.000000 500.000000 500.000000 +40 6 8000.000000 500.000000 250.000000 +41 6 8000.000000 500.000000 750.000000 +42 6 500.000000 500.000000 1000.000000 +43 6 1000.000000 500.000000 1000.000000 +44 6 1500.000000 500.000000 1000.000000 +45 6 2000.000000 500.000000 1000.000000 +46 6 2500.000000 500.000000 1000.000000 +47 6 3000.000000 500.000000 1000.000000 +48 6 3500.000000 500.000000 1000.000000 +49 6 4000.000000 500.000000 1000.000000 +50 6 4500.000000 500.000000 1000.000000 +51 6 5000.000000 500.000000 1000.000000 +52 6 5500.000000 500.000000 1000.000000 +53 6 6000.000000 500.000000 1000.000000 +54 6 6500.000000 500.000000 1000.000000 +55 6 7000.000000 500.000000 1000.000000 +56 6 7500.000000 500.000000 1000.000000 +57 6 250.000000 500.000000 1000.000000 +58 6 750.000000 500.000000 1000.000000 +59 6 1250.000000 500.000000 1000.000000 +60 6 1750.000000 500.000000 1000.000000 +61 6 2250.000000 500.000000 1000.000000 +62 6 2750.000000 500.000000 1000.000000 +63 6 3250.000000 500.000000 1000.000000 +64 6 3750.000000 500.000000 1000.000000 +65 6 4250.000000 500.000000 1000.000000 +66 6 4750.000000 500.000000 1000.000000 +67 6 5250.000000 500.000000 1000.000000 +68 6 5750.000000 500.000000 1000.000000 +69 6 6250.000000 500.000000 1000.000000 +70 6 6750.000000 500.000000 1000.000000 +71 6 7250.000000 500.000000 1000.000000 +72 6 7750.000000 500.000000 1000.000000 +73 6 714.923469 500.000000 484.056122 +74 6 1750.000000 500.000000 500.000000 +75 6 2750.000000 500.000000 500.000000 +76 6 3750.000000 500.000000 500.000000 +77 6 4750.000000 500.000000 500.000000 +78 6 5750.000000 500.000000 500.000000 +79 6 6756.944444 500.000000 489.583333 +80 6 7301.463294 500.000000 489.707341 +81 6 1244.153912 500.000000 497.342687 +82 6 2250.000000 500.000000 500.000000 +83 6 3250.000000 500.000000 500.000000 +84 6 4250.000000 500.000000 500.000000 +85 6 5250.000000 500.000000 500.000000 +86 6 6251.157407 500.000000 498.263889 +87 6 355.277669 500.000000 632.304567 +88 6 7660.398197 500.000000 648.596526 +89 6 7699.764778 500.000000 310.456177 +90 6 314.040228 500.000000 323.272138 +91 6 1122.076956 500.000000 748.671344 +92 6 1372.076956 500.000000 748.671344 +93 6 2125.000000 500.000000 750.000000 +94 6 2375.000000 500.000000 750.000000 +95 6 3125.000000 500.000000 750.000000 +96 6 3375.000000 500.000000 750.000000 +97 6 4125.000000 500.000000 750.000000 +98 6 4375.000000 500.000000 750.000000 +99 6 5125.000000 500.000000 750.000000 +100 6 5375.000000 500.000000 750.000000 +101 6 6125.578704 500.000000 749.131944 +102 6 6375.578704 500.000000 749.131944 +103 6 857.461735 500.000000 742.028061 +104 6 979.538690 500.000000 490.699405 +105 6 1497.076956 500.000000 498.671344 +106 6 1625.000000 500.000000 750.000000 +107 6 1875.000000 500.000000 750.000000 +108 6 2000.000000 500.000000 500.000000 +109 6 2500.000000 500.000000 500.000000 +110 6 2625.000000 500.000000 750.000000 +111 6 2875.000000 500.000000 750.000000 +112 6 3000.000000 500.000000 500.000000 +113 6 3500.000000 500.000000 500.000000 +114 6 3625.000000 500.000000 750.000000 +115 6 3875.000000 500.000000 750.000000 +116 6 4000.000000 500.000000 500.000000 +117 6 4500.000000 500.000000 500.000000 +118 6 4625.000000 500.000000 750.000000 +119 6 4875.000000 500.000000 750.000000 +120 6 5000.000000 500.000000 500.000000 +121 6 5500.000000 500.000000 500.000000 +122 6 5625.000000 500.000000 750.000000 +123 6 5875.000000 500.000000 750.000000 +124 6 6000.578704 500.000000 499.131944 +125 6 6504.050926 500.000000 493.923611 +126 6 6628.472222 500.000000 744.791667 +127 6 7150.731647 500.000000 244.853671 +128 6 7029.203869 500.000000 489.645337 +129 6 6878.472222 500.000000 244.791667 +130 6 6878.472222 500.000000 744.791667 +131 6 7150.731647 500.000000 744.853671 +132 6 7400.731647 500.000000 244.853671 +133 6 7400.731647 500.000000 744.853671 +134 6 857.461735 500.000000 242.028061 +135 6 607.461735 500.000000 242.028061 +136 6 1875.000000 500.000000 250.000000 +137 6 1625.000000 500.000000 250.000000 +138 6 2875.000000 500.000000 250.000000 +139 6 2625.000000 500.000000 250.000000 +140 6 3875.000000 500.000000 250.000000 +141 6 3625.000000 500.000000 250.000000 +142 6 4875.000000 500.000000 250.000000 +143 6 4625.000000 500.000000 250.000000 +144 6 5875.000000 500.000000 250.000000 +145 6 5625.000000 500.000000 250.000000 +146 6 6628.472222 500.000000 244.791667 +147 6 607.461735 500.000000 742.028061 +148 6 1122.076956 500.000000 248.671344 +149 6 1372.076956 500.000000 248.671344 +150 6 2125.000000 500.000000 250.000000 +151 6 2375.000000 500.000000 250.000000 +152 6 3125.000000 500.000000 250.000000 +153 6 3375.000000 500.000000 250.000000 +154 6 4125.000000 500.000000 250.000000 +155 6 4375.000000 500.000000 250.000000 +156 6 5125.000000 500.000000 250.000000 +157 6 5375.000000 500.000000 250.000000 +158 6 6125.578704 500.000000 249.131944 +159 6 6375.578704 500.000000 249.131944 +160 6 514.481849 500.000000 403.664130 +161 6 407.020114 500.000000 161.636069 +162 6 177.638835 500.000000 566.152283 +163 6 177.638835 500.000000 816.152283 +164 6 427.638835 500.000000 816.152283 +165 6 535.100569 500.000000 558.180345 +166 6 7599.882389 500.000000 155.228088 +167 6 7500.614036 500.000000 400.081759 +168 6 7830.199099 500.000000 824.298263 +169 6 7830.199099 500.000000 574.298263 +170 6 7580.199099 500.000000 824.298263 +171 6 7480.930745 500.000000 569.151933 +172 6 334.658948 500.000000 477.788352 +173 6 7849.882389 500.000000 405.228088 +174 6 7849.882389 500.000000 155.228088 +175 6 157.020114 500.000000 161.636069 +176 6 157.020114 500.000000 411.636069 +177 6 7680.081488 500.000000 479.526351 +37 24 +43 81 44 91 92 59 +38 24 +45 82 46 93 94 61 +39 24 +47 83 48 95 96 63 +40 24 +49 84 50 97 98 65 +41 24 +51 85 52 99 100 67 +42 24 +53 86 54 101 102 69 +43 24 +43 73 81 103 104 91 +44 24 +44 81 74 92 105 106 +45 24 +45 74 82 107 108 93 +46 24 +46 82 75 94 109 110 +47 24 +47 75 83 111 112 95 +48 24 +48 83 76 96 113 114 +49 24 +49 76 84 115 116 97 +50 24 +50 84 77 98 117 118 +51 24 +51 77 85 119 120 99 +52 24 +52 85 78 100 121 122 +53 24 +53 78 86 123 124 101 +54 24 +54 86 79 102 125 126 +55 24 +21 80 79 127 128 129 +56 24 +55 79 80 130 128 131 +57 24 +21 22 80 37 132 127 +58 24 +55 80 56 131 133 71 +59 24 +8 9 73 24 134 135 +60 24 +10 11 74 26 136 137 +61 24 +12 13 75 28 138 139 +62 24 +14 15 76 30 140 141 +63 24 +16 17 77 32 142 143 +64 24 +18 19 78 34 144 145 +65 24 +20 21 79 36 129 146 +66 24 +42 73 43 147 103 58 +67 24 +44 74 45 106 107 60 +68 24 +46 75 47 110 111 62 +69 24 +48 76 49 114 115 64 +70 24 +50 77 51 118 119 66 +71 24 +52 78 53 122 123 68 +72 24 +54 79 55 126 130 70 +73 24 +9 81 73 148 104 134 +74 24 +10 74 81 137 105 149 +75 24 +11 82 74 150 108 136 +76 24 +12 75 82 139 109 151 +77 24 +13 83 75 152 112 138 +78 24 +14 76 83 141 113 153 +79 24 +15 84 76 154 116 140 +80 24 +16 77 84 143 117 155 +81 24 +17 85 77 156 120 142 +82 24 +18 78 85 145 121 157 +83 24 +19 86 78 158 124 144 +84 24 +20 79 86 146 125 159 +85 24 +9 10 81 25 149 148 +86 24 +11 12 82 27 151 150 +87 24 +13 14 83 29 153 152 +88 24 +15 16 84 31 155 154 +89 24 +17 18 85 33 157 156 +90 24 +19 20 86 35 159 158 +91 24 +8 73 90 135 160 161 +92 24 +2 5 87 7 162 163 +93 24 +2 87 42 163 164 57 +94 24 +42 87 73 164 165 147 +95 24 +22 89 80 166 167 132 +96 24 +4 88 39 168 169 41 +97 24 +4 56 88 72 170 168 +98 24 +56 80 88 133 171 170 +99 24 +73 87 90 165 172 160 +100 24 +3 39 89 40 173 174 +101 24 +3 89 22 174 166 38 +102 24 +1 90 5 175 176 6 +103 24 +1 8 90 23 161 175 +104 24 +80 89 88 167 177 171 +105 24 +5 90 87 176 172 162 +106 24 +39 88 89 169 177 173 diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i2.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i2.txt new file mode 100644 index 0000000000..9edfa5bd03 --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i2.txt @@ -0,0 +1,26 @@ +25 +1 1 2 0 +1 2 2 0 +1 3 2 0 +2 1 2 0 +2 2 2 0 +2 3 2 0 +3 2 1 -1.6653345369377348e-10 +3 3 1 -750000.0 +4 2 1 -1.6653345369377348e-10 +4 3 1 -750000.0 +5 1 2 0 +5 2 2 0 +5 3 2 0 +6 1 2 0 +6 2 2 0 +6 3 2 0 +7 1 2 0 +7 2 2 0 +7 3 2 0 +39 2 1 -3.3306690738754696e-10 +39 3 1 -1500000.0 +40 2 1 -6.661338147750939e-10 +40 3 1 -3000000.0 +41 2 1 -6.661338147750939e-10 +41 3 1 -3000000.0 diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i5.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i5.txt new file mode 100644 index 0000000000..2142470504 --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88i5.txt @@ -0,0 +1 @@ + 0 diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88int.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88int.txt new file mode 100644 index 0000000000..a680cc2e51 --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88int.txt @@ -0,0 +1,2 @@ +1 +1 70 7 7 diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88man.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88man.txt new file mode 100644 index 0000000000..b6ea4dd7a3 --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88man.txt @@ -0,0 +1,36 @@ +DYNAMIC START +--------------------------------------------------------------------------- +Z88V14OS +--------------------------------------------------------------------------- + +--------------------------------------------------------------------------- +GLOBAL +--------------------------------------------------------------------------- + +GLOBAL START + IBFLAG 0 + IPFLAG 0 + IHFLAG 1 +GLOBAL END + +--------------------------------------------------------------------------- +LINEAR SOLVER +--------------------------------------------------------------------------- + +SOLVER START + MAXIT 10000 + EPS 1e-007 + RALPHA 0.0001 + ROMEGA 1.1 +SOLVER END + +--------------------------------------------------------------------------- +STRESS +--------------------------------------------------------------------------- + +STRESS START + KDFLAG 0 + ISFLAG 1 +STRESS END + +DYNAMIC END diff --git a/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88mat.txt b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88mat.txt new file mode 100644 index 0000000000..80f043ff2b --- /dev/null +++ b/src/Mod/Fem/femtest/data/z88/ccx_cantilever_ele_tria6/z88mat.txt @@ -0,0 +1,2 @@ +1 +1 70 51.txt diff --git a/src/Mod/Fem/femtest/test_commands.sh b/src/Mod/Fem/femtest/test_commands.sh index 678952639c..1f215e5b81 100644 --- a/src/Mod/Fem/femtest/test_commands.sh +++ b/src/Mod/Fem/femtest/test_commands.sh @@ -84,7 +84,6 @@ make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalc make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_ele_seg3 make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_ele_tria3 make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_ele_tria6 -make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_ele_hexa20 make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_nodeload make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_prescribeddisplacement make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_constraint_centrif @@ -112,6 +111,7 @@ make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_elmer.TestSolverElmer.t make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_elmer.TestSolverElmer.test_ccxcantilever_prescribeddisplacement_0_mm make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_faceload make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_ele_hexa20 +make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_ele_tria6 make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_nodeload @@ -342,11 +342,6 @@ unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_ele_tria6' )) -import unittest -unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( - 'femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_ele_hexa20' -)) - import unittest unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_cantilever_nodeload' @@ -472,11 +467,6 @@ unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_elmer.TestSolverElmer.test_ccxcantilever_prescribeddisplacement_0_mm' )) -import unittest -unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( - 'femtest.app.test_solver_oofem.TestSolverOofem.test_ccxcantilever_prescribeddisplacement' -)) - import unittest unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_faceload' @@ -487,6 +477,11 @@ unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_ele_hexa20' )) +import unittest +unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( + 'femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_ele_tria6' +)) + import unittest unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_z88.TestSolverZ88.test_ccx_cantilever_nodeload'