From e99ee08514faa819dc2881163232ec2f3bfc78e7 Mon Sep 17 00:00:00 2001 From: lyphrowny <79705170+lyphrowny@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:51:23 +0000 Subject: [PATCH] FEM: Fix cxx typo and remove calculix from solvers tab in examples (#12876) * FEM: remove calculix from solvers * FEM: remove calculix from joint with ccxtools if branches * FEM: remove calculix from its if * FEM: fix cxx typo in translations * FEM: fix cxx typo in classes name * FEM: fix ccx typo in shortcuts * FEM: convert FEM_*CcxTools to CamelCase * FEM: remove tests related to calculix * FEM: remove test_solver_calculix.py from Fem/CMakeLists.txt * FEM: convert all 'CalculiXccxTools' to 'CalculiXCcxTools' * FEM: revert changes in all *_*.ts files * FEM: convert 'SolverCcxtools' to 'SolverCcxTools' * FEM: convert remaining 'Ccxtools' to 'CcxTools' --- src/Gui/PreferencePackTemplates/Shortcuts.cfg | 2 +- src/Mod/Fem/CMakeLists.txt | 1 - src/Mod/Fem/Gui/Resources/translations/Fem.ts | 2 +- src/Mod/Fem/Gui/Workbench.cpp | 4 +- src/Mod/Fem/ObjectsFem.py | 4 +- src/Mod/Fem/TestFemApp.py | 2 - src/Mod/Fem/femcommands/commands.py | 16 +- .../Fem/femexamples/boxanalysis_frequency.py | 10 +- src/Mod/Fem/femexamples/boxanalysis_static.py | 10 +- .../buckling_lateraltorsionalbuckling.py | 10 +- .../Fem/femexamples/buckling_platebuckling.py | 10 +- .../ccx_buckling_flexuralbuckling.py | 10 +- .../femexamples/ccx_cantilever_base_edge.py | 8 +- .../femexamples/ccx_cantilever_base_face.py | 8 +- .../femexamples/ccx_cantilever_base_solid.py | 8 +- .../femexamples/ccx_cantilever_beam_circle.py | 2 +- .../femexamples/ccx_cantilever_beam_pipe.py | 2 +- .../femexamples/ccx_cantilever_beam_rect.py | 2 +- .../femexamples/ccx_cantilever_ele_hexa20.py | 2 +- .../femexamples/ccx_cantilever_ele_quad4.py | 2 +- .../femexamples/ccx_cantilever_ele_quad8.py | 2 +- .../femexamples/ccx_cantilever_ele_seg2.py | 2 +- .../femexamples/ccx_cantilever_ele_seg3.py | 2 +- .../femexamples/ccx_cantilever_ele_tetra4.py | 2 +- .../femexamples/ccx_cantilever_ele_tria3.py | 2 +- .../femexamples/ccx_cantilever_ele_tria6.py | 2 +- .../femexamples/ccx_cantilever_faceload.py | 2 +- .../femexamples/ccx_cantilever_nodeload.py | 2 +- .../ccx_cantilever_prescribeddisplacement.py | 2 +- src/Mod/Fem/femexamples/constraint_centrif.py | 10 +- .../constraint_contact_shell_shell.py | 10 +- .../constraint_contact_solid_solid.py | 10 +- .../femexamples/constraint_section_print.py | 10 +- .../constraint_selfweight_cantilever.py | 10 +- src/Mod/Fem/femexamples/constraint_tie.py | 10 +- .../constraint_transform_beam_hinged.py | 10 +- .../constraint_transform_torque.py | 10 +- ...uitutorial01_eigenvalue_of_elastic_beam.py | 10 +- .../Fem/femexamples/frequency_beamsimple.py | 10 +- ...material_multiple_bendingbeam_fiveboxes.py | 10 +- ...material_multiple_bendingbeam_fivefaces.py | 10 +- .../material_multiple_tensionrod_twoboxes.py | 10 +- .../femexamples/material_nl_platewithhole.py | 10 +- src/Mod/Fem/femexamples/mystran_plate.py | 10 +- src/Mod/Fem/femexamples/rc_wall_2d.py | 10 +- .../square_pipe_end_twisted_edgeforces.py | 10 +- .../square_pipe_end_twisted_nodeforces.py | 10 +- .../Fem/femexamples/thermomech_bimetall.py | 10 +- .../truss_3d_cs_circle_ele_seg3.py | 10 +- src/Mod/Fem/femsolver/settings.py | 2 +- src/Mod/Fem/femtest/app/test_ccxtools.py | 4 +- src/Mod/Fem/femtest/app/test_object.py | 10 +- .../Fem/femtest/app/test_solver_calculix.py | 384 ------------------ 53 files changed, 145 insertions(+), 588 deletions(-) delete mode 100644 src/Mod/Fem/femtest/app/test_solver_calculix.py diff --git a/src/Gui/PreferencePackTemplates/Shortcuts.cfg b/src/Gui/PreferencePackTemplates/Shortcuts.cfg index c82e3fd307..666df29c14 100644 --- a/src/Gui/PreferencePackTemplates/Shortcuts.cfg +++ b/src/Gui/PreferencePackTemplates/Shortcuts.cfg @@ -220,7 +220,7 @@ R, S R, P S, C - S, X + S, X S, T S, E S, M diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index 6c4b446bf9..726bc1b55e 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -321,7 +321,6 @@ SET(FemTestsApp_SRCS femtest/app/test_object.py femtest/app/test_open.py femtest/app/test_result.py - femtest/app/test_solver_calculix.py femtest/app/test_solver_elmer.py femtest/app/test_solver_mystran.py femtest/app/test_solver_z88.py diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem.ts b/src/Mod/Fem/Gui/Resources/translations/Fem.ts index c7381e16bc..42ca68f2bb 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem.ts @@ -5659,7 +5659,7 @@ used for the Elmer solver - FEM_SolverCalculixCxxtools + FEM_SolverCalculiXCcxTools Solver CalculiX Standard diff --git a/src/Mod/Fem/Gui/Workbench.cpp b/src/Mod/Fem/Gui/Workbench.cpp index 227a743c04..eccc5ed9e7 100644 --- a/src/Mod/Fem/Gui/Workbench.cpp +++ b/src/Mod/Fem/Gui/Workbench.cpp @@ -166,7 +166,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const Gui::ToolBarItem* solve = new Gui::ToolBarItem(root); solve->setCommand("Solve"); if (!Fem::Tools::checkIfBinaryExists("CCX", "ccx", "ccx").empty()) { - *solve << "FEM_SolverCalculixCxxtools"; + *solve << "FEM_SolverCalculiXCcxTools"; } if (!Fem::Tools::checkIfBinaryExists("Elmer", "elmer", "ElmerSolver").empty()) { *solve << "FEM_SolverElmer"; @@ -323,7 +323,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const Gui::MenuItem* solve = new Gui::MenuItem; root->insertItem(item, solve); solve->setCommand("&Solve"); - *solve << "FEM_SolverCalculixCxxtools" + *solve << "FEM_SolverCalculiXCcxTools" << "FEM_SolverElmer" << "FEM_SolverMystran" << "FEM_SolverZ88" diff --git a/src/Mod/Fem/ObjectsFem.py b/src/Mod/Fem/ObjectsFem.py index bae375407e..a85dd8e27e 100644 --- a/src/Mod/Fem/ObjectsFem.py +++ b/src/Mod/Fem/ObjectsFem.py @@ -879,11 +879,11 @@ def makeEquationMagnetodynamic2D( return obj -def makeSolverCalculixCcxTools( +def makeSolverCalculiXCcxTools( doc, name="SolverCcxTools" ): - """makeSolverCalculixCcxTools(document, [name]): + """makeSolverCalculiXCcxTools(document, [name]): makes a Calculix solver object for the ccx tools module""" obj = doc.addObject("Fem::FemSolverObjectPython", name) from femobjects import solver_ccxtools diff --git a/src/Mod/Fem/TestFemApp.py b/src/Mod/Fem/TestFemApp.py index 211cd365bf..64f188240a 100644 --- a/src/Mod/Fem/TestFemApp.py +++ b/src/Mod/Fem/TestFemApp.py @@ -35,7 +35,6 @@ from femtest.app.test_mesh import TestMeshEleTetra10 as FemTest08 from femtest.app.test_mesh import TestMeshGroups as FemTest09 from femtest.app.test_result import TestResult as FemTest10 from femtest.app.test_ccxtools import TestCcxTools as FemTest11 -from femtest.app.test_solver_calculix import TestSolverCalculix as FemTest12 from femtest.app.test_solver_elmer import TestSolverElmer as FemTest13 from femtest.app.test_solver_z88 import TestSolverZ88 as FemTest14 @@ -51,6 +50,5 @@ False if FemTest08.__name__ else True False if FemTest09.__name__ else True False if FemTest10.__name__ else True False if FemTest11.__name__ else True -False if FemTest12.__name__ else True False if FemTest13.__name__ else True False if FemTest14.__name__ else True diff --git a/src/Mod/Fem/femcommands/commands.py b/src/Mod/Fem/femcommands/commands.py index d35c82970c..cb99d6c051 100644 --- a/src/Mod/Fem/femcommands/commands.py +++ b/src/Mod/Fem/femcommands/commands.py @@ -1045,19 +1045,19 @@ class _ResultsPurge(CommandManager): resulttools.purge_results(self.active_analysis) -class _SolverCxxtools(CommandManager): +class _SolverCcxTools(CommandManager): "The FEM_SolverCalculix ccx tools command definition" def __init__(self): - super(_SolverCxxtools, self).__init__() + super(_SolverCcxTools, self).__init__() self.pixmap = "FEM_SolverStandard" self.menutext = Qt.QT_TRANSLATE_NOOP( - "FEM_SolverCalculixCxxtools", + "FEM_SolverCalculiXCcxTools", "Solver CalculiX Standard" ) self.accel = "S, X" self.tooltip = Qt.QT_TRANSLATE_NOOP( - "FEM_SolverCalculixCxxtools", + "FEM_SolverCalculiXCcxTools", "Creates a standard FEM solver CalculiX with ccx tools" ) self.is_active = "with_analysis" @@ -1072,7 +1072,7 @@ class _SolverCxxtools(CommandManager): FreeCADGui.addModule("FemGui") if has_nonlinear_material_obj: FreeCADGui.doCommand( - "solver = ObjectsFem.makeSolverCalculixCcxTools(FreeCAD.ActiveDocument)" + "solver = ObjectsFem.makeSolverCalculiXCcxTools(FreeCAD.ActiveDocument)" ) FreeCADGui.doCommand("solver.GeometricalNonlinearity = 'nonlinear'") FreeCADGui.doCommand("solver.MaterialNonlinearity = 'nonlinear'") @@ -1080,7 +1080,7 @@ class _SolverCxxtools(CommandManager): else: FreeCADGui.doCommand( "FemGui.getActiveAnalysis().addObject(ObjectsFem." - "makeSolverCalculixCcxTools(FreeCAD.ActiveDocument))" + "makeSolverCalculiXCcxTools(FreeCAD.ActiveDocument))" ) FreeCAD.ActiveDocument.commitTransaction() # expand analysis object in tree view @@ -1366,8 +1366,8 @@ FreeCADGui.addCommand( _ResultsPurge() ) FreeCADGui.addCommand( - "FEM_SolverCalculixCxxtools", - _SolverCxxtools() + "FEM_SolverCalculiXCcxTools", + _SolverCcxTools() ) FreeCADGui.addCommand( "FEM_SolverCalculiX", diff --git a/src/Mod/Fem/femexamples/boxanalysis_frequency.py b/src/Mod/Fem/femexamples/boxanalysis_frequency.py index 0e8ee1c924..2c6918a15c 100644 --- a/src/Mod/Fem/femexamples/boxanalysis_frequency.py +++ b/src/Mod/Fem/femexamples/boxanalysis_frequency.py @@ -35,7 +35,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": [], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["frequency"] } @@ -70,12 +70,10 @@ def setup(doc=None, solvertype="ccxtools"): analysis = doc.Analysis # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "frequency" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/boxanalysis_static.py b/src/Mod/Fem/femexamples/boxanalysis_static.py index 9131bd3068..8e44bac59e 100644 --- a/src/Mod/Fem/femexamples/boxanalysis_static.py +++ b/src/Mod/Fem/femexamples/boxanalysis_static.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "force", "pressure"], - "solvers": ["calculix", "ccxtools", "elmer"], + "solvers": ["ccxtools", "elmer"], "material": "solid", "equations": ["mechanical"] } @@ -73,10 +73,8 @@ def setup(doc=None, solvertype="ccxtools"): analysis = doc.Analysis # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "elmer": solver_obj = ObjectsFem.makeSolverElmer(doc, "SolverElmer") @@ -86,7 +84,7 @@ def setup(doc=None, solvertype="ccxtools"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/buckling_lateraltorsionalbuckling.py b/src/Mod/Fem/femexamples/buckling_lateraltorsionalbuckling.py index 3099b749e3..b4886c3141 100644 --- a/src/Mod/Fem/femexamples/buckling_lateraltorsionalbuckling.py +++ b/src/Mod/Fem/femexamples/buckling_lateraltorsionalbuckling.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria6", "constraints": ["displacement", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["buckling"] } @@ -106,17 +106,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "buckling" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/buckling_platebuckling.py b/src/Mod/Fem/femexamples/buckling_platebuckling.py index fed4499959..bee21be01a 100644 --- a/src/Mod/Fem/femexamples/buckling_platebuckling.py +++ b/src/Mod/Fem/femexamples/buckling_platebuckling.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria6", "constraints": ["displacement", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["buckling"] } @@ -80,17 +80,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "buckling" solver_obj.BucklingFactors = 10 diff --git a/src/Mod/Fem/femexamples/ccx_buckling_flexuralbuckling.py b/src/Mod/Fem/femexamples/ccx_buckling_flexuralbuckling.py index 61cf636023..40ec0b7038 100644 --- a/src/Mod/Fem/femexamples/ccx_buckling_flexuralbuckling.py +++ b/src/Mod/Fem/femexamples/ccx_buckling_flexuralbuckling.py @@ -38,7 +38,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Hexa8", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["buckling"] } @@ -85,17 +85,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver, - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "buckling" solver_obj.BucklingFactors = 10 diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_base_edge.py b/src/Mod/Fem/femexamples/ccx_cantilever_base_edge.py index 5c2b2f91a7..8633ad959d 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_base_edge.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_base_edge.py @@ -67,10 +67,8 @@ def setup_cantilever_base_edge(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "mystran": solver_obj = ObjectsFem.makeSolverMystran(doc, "SolverMystran") @@ -79,7 +77,7 @@ def setup_cantilever_base_edge(doc=None, solvertype="ccxtools"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py b/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py index d4e9fd4256..4eaca443f2 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_base_face.py @@ -56,10 +56,8 @@ def setup_cantilever_base_face(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "mystran": solver_obj = ObjectsFem.makeSolverMystran(doc, "SolverMystran") @@ -70,7 +68,7 @@ def setup_cantilever_base_face(doc=None, solvertype="ccxtools"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_base_solid.py b/src/Mod/Fem/femexamples/ccx_cantilever_base_solid.py index b5c8d5a5d7..160d6dbf2f 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_base_solid.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_base_solid.py @@ -52,10 +52,8 @@ def setup_cantilever_base_solid(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "elmer": solver_obj = ObjectsFem.makeSolverElmer(doc, "SolverElmer") @@ -69,7 +67,7 @@ def setup_cantilever_base_solid(doc=None, solvertype="ccxtools"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_beam_circle.py b/src/Mod/Fem/femexamples/ccx_cantilever_beam_circle.py index 2fbdd4d4b9..fc1c4e50cd 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_beam_circle.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_beam_circle.py @@ -34,7 +34,7 @@ def get_information(): "meshtype": "edge", "meshelement": "Seg3", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_beam_pipe.py b/src/Mod/Fem/femexamples/ccx_cantilever_beam_pipe.py index ee6d626cd9..7855db288f 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_beam_pipe.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_beam_pipe.py @@ -34,7 +34,7 @@ def get_information(): "meshtype": "edge", "meshelement": "Seg3", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_beam_rect.py b/src/Mod/Fem/femexamples/ccx_cantilever_beam_rect.py index 2b7cbfbc76..70daab17bd 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_beam_rect.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_beam_rect.py @@ -34,7 +34,7 @@ def get_information(): "meshtype": "edge", "meshelement": "Seg3", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_hexa20.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_hexa20.py index 96ef4929e2..88a08009c7 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_hexa20.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_hexa20.py @@ -38,7 +38,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Hexa20", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "elmer", "z88"], + "solvers": ["ccxtools", "elmer", "z88"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad4.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad4.py index 6052f11a94..984aba1db1 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad4.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad4.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "face", "meshelement": "Quad4", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "mystran"], + "solvers": ["ccxtools", "mystran"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad8.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad8.py index 3e9fe96b90..b7497246eb 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad8.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_quad8.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "face", "meshelement": "Quad8", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg2.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg2.py index c5bc2b3694..4b59d49954 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg2.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg2.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "edge", "meshelement": "Seg2", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "mystran"], + "solvers": ["ccxtools", "mystran"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg3.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg3.py index 1427773e73..1736e1fc59 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg3.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_seg3.py @@ -32,7 +32,7 @@ def get_information(): "meshtype": "edge", "meshelement": "Seg3", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_tetra4.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_tetra4.py index 217a67f567..e6bbc8016b 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_tetra4.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_tetra4.py @@ -36,7 +36,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tetra4", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "elmer", "mystran", "z88"], + "solvers": ["ccxtools", "elmer", "mystran", "z88"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria3.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria3.py index c943ec14de..f5f406ce28 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria3.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria3.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria3", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "mystran"], + "solvers": ["ccxtools", "mystran"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria6.py b/src/Mod/Fem/femexamples/ccx_cantilever_ele_tria6.py index 5f92f28251..aad7e19531 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", "ccxtools", "z88"], + "solvers": ["ccxtools", "z88"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_faceload.py b/src/Mod/Fem/femexamples/ccx_cantilever_faceload.py index 8733aa6989..b84a83c34b 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_faceload.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_faceload.py @@ -35,7 +35,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "elmer", "mystran", "z88"], + "solvers": ["ccxtools", "elmer", "mystran", "z88"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_nodeload.py b/src/Mod/Fem/femexamples/ccx_cantilever_nodeload.py index bd87936c4c..1e73a7495e 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_nodeload.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_nodeload.py @@ -35,7 +35,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "elmer", "mystran", "z88"], + "solvers": ["ccxtools", "elmer", "mystran", "z88"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/ccx_cantilever_prescribeddisplacement.py b/src/Mod/Fem/femexamples/ccx_cantilever_prescribeddisplacement.py index 0d6e5a18d4..91b4b441a7 100644 --- a/src/Mod/Fem/femexamples/ccx_cantilever_prescribeddisplacement.py +++ b/src/Mod/Fem/femexamples/ccx_cantilever_prescribeddisplacement.py @@ -35,7 +35,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "displacement"], - "solvers": ["calculix", "ccxtools", "elmer"], + "solvers": ["ccxtools", "elmer"], "material": "solid", "equations": ["mechanical"] } diff --git a/src/Mod/Fem/femexamples/constraint_centrif.py b/src/Mod/Fem/femexamples/constraint_centrif.py index 2abf35c9e9..c48107789c 100644 --- a/src/Mod/Fem/femexamples/constraint_centrif.py +++ b/src/Mod/Fem/femexamples/constraint_centrif.py @@ -42,7 +42,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["centrif", "fixed"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "multimaterial", "equations": ["mechanical"] } @@ -127,17 +127,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/constraint_contact_shell_shell.py b/src/Mod/Fem/femexamples/constraint_contact_shell_shell.py index 2d2b42af80..69df808077 100644 --- a/src/Mod/Fem/femexamples/constraint_contact_shell_shell.py +++ b/src/Mod/Fem/femexamples/constraint_contact_shell_shell.py @@ -41,7 +41,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria3", "constraints": ["fixed", "force", "contact"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -136,17 +136,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "static" solver_obj.BeamShellResultOutput3D = True solver_obj.GeometricalNonlinearity = "linear" # really? diff --git a/src/Mod/Fem/femexamples/constraint_contact_solid_solid.py b/src/Mod/Fem/femexamples/constraint_contact_solid_solid.py index d2392d1d2a..6b17ba4203 100644 --- a/src/Mod/Fem/femexamples/constraint_contact_solid_solid.py +++ b/src/Mod/Fem/femexamples/constraint_contact_solid_solid.py @@ -42,7 +42,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "pressure", "contact"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -116,17 +116,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/constraint_section_print.py b/src/Mod/Fem/femexamples/constraint_section_print.py index 4ccf5da6e9..5eacb9555a 100644 --- a/src/Mod/Fem/femexamples/constraint_section_print.py +++ b/src/Mod/Fem/femexamples/constraint_section_print.py @@ -48,7 +48,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["section_print", "fixed", "pressure"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -221,17 +221,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/constraint_selfweight_cantilever.py b/src/Mod/Fem/femexamples/constraint_selfweight_cantilever.py index 6473c0b959..68e5a6c0b0 100644 --- a/src/Mod/Fem/femexamples/constraint_selfweight_cantilever.py +++ b/src/Mod/Fem/femexamples/constraint_selfweight_cantilever.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "self weight"], - "solvers": ["calculix", "ccxtools", "elmer"], + "solvers": ["ccxtools", "elmer"], "material": "solid", "equations": ["mechanical"] } @@ -84,10 +84,8 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "elmer": solver_obj = ObjectsFem.makeSolverElmer(doc, "SolverElmer") @@ -98,7 +96,7 @@ def setup(doc=None, solvertype="ccxtools"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/constraint_tie.py b/src/Mod/Fem/femexamples/constraint_tie.py index d2c58c1956..0abc42c927 100644 --- a/src/Mod/Fem/femexamples/constraint_tie.py +++ b/src/Mod/Fem/femexamples/constraint_tie.py @@ -42,7 +42,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "force", "tie"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -106,17 +106,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/constraint_transform_beam_hinged.py b/src/Mod/Fem/femexamples/constraint_transform_beam_hinged.py index 22c9d136b8..04fcbac1ad 100644 --- a/src/Mod/Fem/femexamples/constraint_transform_beam_hinged.py +++ b/src/Mod/Fem/femexamples/constraint_transform_beam_hinged.py @@ -42,7 +42,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["pressure", "displacement", "transform"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -116,17 +116,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/constraint_transform_torque.py b/src/Mod/Fem/femexamples/constraint_transform_torque.py index d192ea5892..209d34f973 100644 --- a/src/Mod/Fem/femexamples/constraint_transform_torque.py +++ b/src/Mod/Fem/femexamples/constraint_transform_torque.py @@ -50,7 +50,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "force", "transform"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -113,17 +113,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/elmer_nonguitutorial01_eigenvalue_of_elastic_beam.py b/src/Mod/Fem/femexamples/elmer_nonguitutorial01_eigenvalue_of_elastic_beam.py index d3494a53b0..71b2fe7faf 100644 --- a/src/Mod/Fem/femexamples/elmer_nonguitutorial01_eigenvalue_of_elastic_beam.py +++ b/src/Mod/Fem/femexamples/elmer_nonguitutorial01_eigenvalue_of_elastic_beam.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": [], - "solvers": ["calculix", "ccxtools", "elmer"], + "solvers": ["ccxtools", "elmer"], "material": "solid", "equations": ["elasticity"] # "frequency", but list not allowed here } @@ -81,10 +81,8 @@ def setup(doc=None, solvertype="elmer"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "elmer": solver_obj = ObjectsFem.makeSolverElmer(doc, "SolverElmer") @@ -97,7 +95,7 @@ def setup(doc=None, solvertype="elmer"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "frequency" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = False diff --git a/src/Mod/Fem/femexamples/frequency_beamsimple.py b/src/Mod/Fem/femexamples/frequency_beamsimple.py index f24b3048c2..1e55b0e06d 100644 --- a/src/Mod/Fem/femexamples/frequency_beamsimple.py +++ b/src/Mod/Fem/femexamples/frequency_beamsimple.py @@ -37,7 +37,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["frequency"] } @@ -83,17 +83,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "frequency" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fiveboxes.py b/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fiveboxes.py index cef122878a..aac5eff947 100644 --- a/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fiveboxes.py +++ b/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fiveboxes.py @@ -40,7 +40,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "multimaterial", "equations": ["mechanical"] } @@ -122,17 +122,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fivefaces.py b/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fivefaces.py index af45ed3eab..f054e2256b 100644 --- a/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fivefaces.py +++ b/src/Mod/Fem/femexamples/material_multiple_bendingbeam_fivefaces.py @@ -38,7 +38,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria6", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "multimaterial", "equations": ["mechanical"] } @@ -111,17 +111,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/material_multiple_tensionrod_twoboxes.py b/src/Mod/Fem/femexamples/material_multiple_tensionrod_twoboxes.py index d0a252f49e..15bd83f6a4 100644 --- a/src/Mod/Fem/femexamples/material_multiple_tensionrod_twoboxes.py +++ b/src/Mod/Fem/femexamples/material_multiple_tensionrod_twoboxes.py @@ -41,7 +41,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "pressure"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "multimaterial", "equations": ["mechanical"] } @@ -107,17 +107,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/material_nl_platewithhole.py b/src/Mod/Fem/femexamples/material_nl_platewithhole.py index 1546539b74..b03340773c 100644 --- a/src/Mod/Fem/femexamples/material_nl_platewithhole.py +++ b/src/Mod/Fem/femexamples/material_nl_platewithhole.py @@ -49,7 +49,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "nonlinear", "equations": ["mechanical"] } @@ -116,17 +116,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/mystran_plate.py b/src/Mod/Fem/femexamples/mystran_plate.py index debadc30af..54abe7ee62 100644 --- a/src/Mod/Fem/femexamples/mystran_plate.py +++ b/src/Mod/Fem/femexamples/mystran_plate.py @@ -39,7 +39,7 @@ def get_information(): "meshtype": "face", "meshelement": "Quad4", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools", "elmer", "mystran"], + "solvers": ["ccxtools", "elmer", "mystran"], "material": "solid", "equations": ["mechanical"] } @@ -115,10 +115,8 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "elmer": solver_obj = ObjectsFem.makeSolverElmer(doc, "SolverElmer") @@ -133,7 +131,7 @@ def setup(doc=None, solvertype="ccxtools"): "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/rc_wall_2d.py b/src/Mod/Fem/femexamples/rc_wall_2d.py index bc93bffa08..6d263d7776 100644 --- a/src/Mod/Fem/femexamples/rc_wall_2d.py +++ b/src/Mod/Fem/femexamples/rc_wall_2d.py @@ -42,7 +42,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria6", "constraints": ["fixed", "force", "displacement"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "reinforced", "equations": ["mechanical"] } @@ -102,17 +102,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/square_pipe_end_twisted_edgeforces.py b/src/Mod/Fem/femexamples/square_pipe_end_twisted_edgeforces.py index c8d698bd93..2d42f47256 100644 --- a/src/Mod/Fem/femexamples/square_pipe_end_twisted_edgeforces.py +++ b/src/Mod/Fem/femexamples/square_pipe_end_twisted_edgeforces.py @@ -41,7 +41,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria6", "constraints": ["force", "fixed"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -91,17 +91,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/square_pipe_end_twisted_nodeforces.py b/src/Mod/Fem/femexamples/square_pipe_end_twisted_nodeforces.py index 4567a51f41..2138ff095f 100644 --- a/src/Mod/Fem/femexamples/square_pipe_end_twisted_nodeforces.py +++ b/src/Mod/Fem/femexamples/square_pipe_end_twisted_nodeforces.py @@ -41,7 +41,7 @@ def get_information(): "meshtype": "face", "meshelement": "Tria6", "constraints": ["force", "fixed"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -201,17 +201,15 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" else: FreeCAD.Console.PrintWarning( "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femexamples/thermomech_bimetall.py b/src/Mod/Fem/femexamples/thermomech_bimetall.py index 8368eb703a..42f68c99ce 100644 --- a/src/Mod/Fem/femexamples/thermomech_bimetall.py +++ b/src/Mod/Fem/femexamples/thermomech_bimetall.py @@ -49,7 +49,7 @@ def get_information(): "meshtype": "solid", "meshelement": "Tet10", "constraints": ["fixed", "initial temperature", "temperature"], - "solvers": ["calculix", "ccxtools", "elmer"], + "solvers": ["ccxtools", "elmer"], "material": "multimaterial", "equations": ["thermomechanical"] } @@ -120,10 +120,8 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "elmer": solver_obj = analysis.addObject(ObjectsFem.makeSolverElmer(doc, "SolverElmer"))[0] @@ -138,7 +136,7 @@ def setup(doc=None, solvertype="ccxtools"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.AnalysisType = "thermomech" solver_obj.GeometricalNonlinearity = "linear" solver_obj.ThermoMechSteadyState = True diff --git a/src/Mod/Fem/femexamples/truss_3d_cs_circle_ele_seg3.py b/src/Mod/Fem/femexamples/truss_3d_cs_circle_ele_seg3.py index 1a6db1d409..97af0dd82d 100644 --- a/src/Mod/Fem/femexamples/truss_3d_cs_circle_ele_seg3.py +++ b/src/Mod/Fem/femexamples/truss_3d_cs_circle_ele_seg3.py @@ -41,7 +41,7 @@ def get_information(): "meshtype": "edge", "meshelement": "Seg3", "constraints": ["fixed", "force"], - "solvers": ["calculix", "ccxtools"], + "solvers": ["ccxtools"], "material": "solid", "equations": ["mechanical"] } @@ -399,10 +399,8 @@ def setup(doc=None, solvertype="ccxtools"): analysis = ObjectsFem.makeAnalysis(doc, "Analysis") # solver - if solvertype == "calculix": - solver_obj = ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX") - elif solvertype == "ccxtools": - solver_obj = ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") + if solvertype == "ccxtools": + solver_obj = ObjectsFem.makeSolverCalculiXCcxTools(doc, "CalculiXCcxTools") solver_obj.WorkingDir = u"" elif solvertype == "z88": solver_obj = ObjectsFem.makeSolverZ88(doc, "SolverZ88") @@ -411,7 +409,7 @@ def setup(doc=None, solvertype="ccxtools"): "Unknown or unsupported solver type: {}. " "No solver object was created.\n".format(solvertype) ) - if solvertype == "calculix" or solvertype == "ccxtools": + if solvertype == "ccxtools": solver_obj.SplitInputWriter = False solver_obj.AnalysisType = "static" solver_obj.GeometricalNonlinearity = "linear" diff --git a/src/Mod/Fem/femsolver/settings.py b/src/Mod/Fem/femsolver/settings.py index b8a0df8c55..028c338575 100644 --- a/src/Mod/Fem/femsolver/settings.py +++ b/src/Mod/Fem/femsolver/settings.py @@ -173,7 +173,7 @@ def get_default_solver(): """ solver_map = {0: "None"} if get_binary("Calculix", True): - solver_map[1] = "CalculixCcxTools" + solver_map[1] = "CalculiXCcxTools" if get_binary("ElmerSolver", True): solver_map[len(solver_map)] = "Elmer" if get_binary("Mystran", True): diff --git a/src/Mod/Fem/femtest/app/test_ccxtools.py b/src/Mod/Fem/femtest/app/test_ccxtools.py index f0f4478df4..a62a4c8ba1 100644 --- a/src/Mod/Fem/femtest/app/test_ccxtools.py +++ b/src/Mod/Fem/femtest/app/test_ccxtools.py @@ -22,7 +22,7 @@ # * * # *************************************************************************** -__title__ = "Ccxtools FEM unit tests" +__title__ = "CcxTools FEM unit tests" __author__ = "Bernd Hahnebach" __url__ = "https://www.freecad.org" @@ -153,7 +153,7 @@ class TestCcxTools(unittest.TestCase): if analysis_dir is None: analysis_dir = testtools.get_fem_test_tmp_dir(self.pre_dir_name + base_name) analysis = self.document.Analysis - solver_object = self.document.CalculiXccxTools + solver_object = self.document.CalculiXCcxTools fea = ccxtools.FemToolsCcx(analysis, solver_object, test_mode=True) fea.update_objects() diff --git a/src/Mod/Fem/femtest/app/test_object.py b/src/Mod/Fem/femtest/app/test_object.py index 9e83965d9d..a435674e4b 100644 --- a/src/Mod/Fem/femtest/app/test_object.py +++ b/src/Mod/Fem/femtest/app/test_object.py @@ -328,7 +328,7 @@ class TestObjectType(unittest.TestCase): solverelmer = ObjectsFem.makeSolverElmer(doc) self.assertEqual( "Fem::SolverCcxTools", - type_of_obj(ObjectsFem.makeSolverCalculixCcxTools(doc)) + type_of_obj(ObjectsFem.makeSolverCalculiXCcxTools(doc)) ) self.assertEqual( "Fem::SolverCalculix", @@ -574,7 +574,7 @@ class TestObjectType(unittest.TestCase): )) solverelmer = ObjectsFem.makeSolverElmer(doc) self.assertTrue(is_of_type( - ObjectsFem.makeSolverCalculixCcxTools(doc), + ObjectsFem.makeSolverCalculiXCcxTools(doc), "Fem::SolverCcxTools" )) self.assertTrue(is_of_type( @@ -1285,7 +1285,7 @@ class TestObjectType(unittest.TestCase): )) # SolverCcxTools - solver_ccxtools = ObjectsFem.makeSolverCalculixCcxTools(doc) + solver_ccxtools = ObjectsFem.makeSolverCalculiXCcxTools(doc) self.assertTrue(is_derived_from( solver_ccxtools, "App::DocumentObject" @@ -1745,7 +1745,7 @@ class TestObjectType(unittest.TestCase): ) solverelmer = ObjectsFem.makeSolverElmer(doc) self.assertTrue( - ObjectsFem.makeSolverCalculixCcxTools( + ObjectsFem.makeSolverCalculiXCcxTools( doc ).isDerivedFrom("Fem::FemSolverObjectPython") ) @@ -1891,7 +1891,7 @@ def create_all_fem_objects_doc( ObjectsFem.makePostVtkFilterCutFunction(doc, vres) ObjectsFem.makePostVtkFilterWarp(doc, vres) - analysis.addObject(ObjectsFem.makeSolverCalculixCcxTools(doc)) + analysis.addObject(ObjectsFem.makeSolverCalculiXCcxTools(doc)) analysis.addObject(ObjectsFem.makeSolverCalculix(doc)) sol = analysis.addObject(ObjectsFem.makeSolverElmer(doc))[0] analysis.addObject(ObjectsFem.makeSolverMystran(doc)) diff --git a/src/Mod/Fem/femtest/app/test_solver_calculix.py b/src/Mod/Fem/femtest/app/test_solver_calculix.py deleted file mode 100644 index 184ad52d65..0000000000 --- a/src/Mod/Fem/femtest/app/test_solver_calculix.py +++ /dev/null @@ -1,384 +0,0 @@ -# *************************************************************************** -# * Copyright (c) 2018 Bernd Hahnebach * -# * * -# * This file is part of the FreeCAD CAx development system. * -# * * -# * This program is free software; you can redistribute it and/or modify * -# * it under the terms of the GNU Lesser General Public License (LGPL) * -# * as published by the Free Software Foundation; either version 2 of * -# * the License, or (at your option) any later version. * -# * for detail see the LICENCE text file. * -# * * -# * This program is distributed in the hope that it will be useful, * -# * but WITHOUT ANY WARRANTY; without even the implied warranty of * -# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -# * GNU Library General Public License for more details. * -# * * -# * You should have received a copy of the GNU Library General Public * -# * License along with this program; if not, write to the Free Software * -# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -# * USA * -# * * -# *************************************************************************** - -__title__ = "Solver calculix FEM unit tests" -__author__ = "Bernd Hahnebach" -__url__ = "https://www.freecad.org" - -import unittest -from os.path import join - -import FreeCAD - -import femsolver.run -from . import support_utils as testtools -from .support_utils import fcc_print -from .support_utils import get_namefromdef - - -class TestSolverCalculix(unittest.TestCase): - fcc_print("import TestSolverCalculix") - - # ******************************************************************************************** - def setUp( - self - ): - # setUp is executed before every test - - # new document - self.document = FreeCAD.newDocument(self.__class__.__name__) - - # more inits - self.pre_dir_name = "solver_calculix_" - self.ending = ".inp" - self.infilename = "Mesh" - self.test_file_dir = join( - testtools.get_fem_test_home_dir(), - "calculix" - ) - - # ******************************************************************************************** - def tearDown( - self - ): - # tearDown is executed after every test - FreeCAD.closeDocument(self.document.Name) - - # ******************************************************************************************** - def test_00print( - self - ): - # since method name starts with 00 this will be run first - # this test just prints a line with stars - - fcc_print("\n{0}\n{1} run FEM TestSolverCalculix tests {2}\n{0}".format( - 100 * "*", - 10 * "*", - 55 * "*" - )) - - # ******************************************************************************************** - def test_box_frequency( - self - ): - fcc_print("") - from femexamples.boxanalysis_frequency import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_box_static( - self - ): - fcc_print("") - from femexamples.boxanalysis_static import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_buckling_flexuralbuckling( - self - ): - from femexamples.ccx_buckling_flexuralbuckling import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_beam_circle( - self - ): - from femexamples.ccx_cantilever_beam_circle import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_beam_pipe( - self - ): - from femexamples.ccx_cantilever_beam_pipe import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_beam_rect( - self - ): - from femexamples.ccx_cantilever_beam_rect import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_ele_hexa20( - self - ): - from femexamples.ccx_cantilever_ele_hexa20 import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_ele_quad4( - self - ): - from femexamples.ccx_cantilever_ele_quad4 import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_ele_quad8( - self - ): - from femexamples.ccx_cantilever_ele_quad8 import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_ele_seg2( - self - ): - from femexamples.ccx_cantilever_ele_seg2 import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_ele_seg3( - self - ): - from femexamples.ccx_cantilever_ele_seg3 import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_ele_tria3( - self - ): - from femexamples.ccx_cantilever_ele_tria3 import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_ele_tria6( - self - ): - from femexamples.ccx_cantilever_ele_tria6 import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_faceload( - self - ): - from femexamples.ccx_cantilever_faceload import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_nodeload( - self - ): - from femexamples.ccx_cantilever_nodeload import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_ccx_cantilever_prescribeddisplacement( - self - ): - from femexamples.ccx_cantilever_prescribeddisplacement import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_centrif( - self - ): - # TODO does pass on my local machine, but not on ci - return - - from femexamples.constraint_centrif import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_contact_shell_shell( - self - ): - from femexamples.constraint_contact_shell_shell import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_contact_solid_solid( - self - ): - # TODO does pass on my local machine, but not on ci - return - - from femexamples.constraint_contact_solid_solid import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_sectionprint( - self - ): - from femexamples.constraint_section_print import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_selfweight_cantilever( - self - ): - from femexamples.constraint_selfweight_cantilever import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_tie( - self - ): - from femexamples.constraint_tie import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_transform_beam_hinged( - self - ): - from femexamples.constraint_transform_beam_hinged import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_constraint_transform_torque( - self - ): - from femexamples.constraint_transform_torque import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_frequency_beamsimple( - self - ): - from femexamples.frequency_beamsimple import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_material_multiple_bendingbeam_fiveboxes( - self - ): - from femexamples.material_multiple_bendingbeam_fiveboxes import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_material_multiple_bendingbeam_fivefaces( - self - ): - from femexamples.material_multiple_bendingbeam_fivefaces import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_material_multiple_tensionrod_twoboxes( - self - ): - from femexamples.material_multiple_tensionrod_twoboxes import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_material_nonlinear( - self - ): - from femexamples.material_nl_platewithhole import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_square_pipe_end_twisted_edgeforces( - self - ): - from femexamples.square_pipe_end_twisted_edgeforces import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_square_pipe_end_twisted_nodeforces( - self - ): - from femexamples.square_pipe_end_twisted_nodeforces import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def test_thermomech_bimetall( - self - ): - from femexamples.thermomech_bimetall import setup - setup(self.document, "calculix") - self.input_file_writing_test(get_namefromdef("test_")) - - # ******************************************************************************************** - def input_file_writing_test( - self, - base_name - ): - self.document.recompute() - - # get analysis working directory and save FreeCAD file - working_dir = testtools.get_fem_test_tmp_dir(self.pre_dir_name + base_name) - save_fc_file = join(working_dir, base_name + ".FCStd") - # fcc_print("Save FreeCAD file to {} ...".format(save_fc_file)) - self.document.saveAs(save_fc_file) - - # write input file - machine = self.document.SolverCalculiX.Proxy.createMachine( - self.document.SolverCalculiX, - working_dir, - True # set testmode to True - ) - machine.target = femsolver.run.PREPARE - machine.start() - machine.join() # wait for the machine to finish - - # compare input file with the given one - inpfile_given = join( - self.test_file_dir, - base_name + self.ending - ) - inpfile_totest = join( - working_dir, - self.infilename + self.ending - ) - # fcc_print("Comparing {} to {}".format(inpfile_given, inpfile_totest)) - ret = testtools.compare_inp_files( - inpfile_given, - inpfile_totest - ) - self.assertFalse( - ret, - "CalculiX write_inp_file for {0} test failed.\n{1}".format(base_name, ret) - )