From b1e1b128abb5dd125422bba7a0c7b18fbf765b81 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Tue, 9 Jan 2018 07:29:45 +0100 Subject: [PATCH] FEM: fem tools package, move ccx tools in it --- src/Mod/Fem/CMakeLists.txt | 2 +- .../PyGui/_ViewProviderFemSolverCalculix.py | 10 +++--- src/Mod/Fem/PyObjects/_FemSolverCalculix.py | 6 ++-- src/Mod/Fem/femcommands/commands.py | 4 +-- src/Mod/Fem/femtest/testfemcommon.py | 32 +++++++++---------- .../{FemToolsCcx.py => femtools/ccxtools.py} | 0 6 files changed, 27 insertions(+), 27 deletions(-) rename src/Mod/Fem/{FemToolsCcx.py => femtools/ccxtools.py} (100%) diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index fa2b30b32e..77368eb174 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -23,7 +23,6 @@ SET(FemScripts_SRCS Init.py InitGui.py FemConstraint.py - FemToolsCcx.py FemUtils.py ObjectsFem.py TestFem.py @@ -156,6 +155,7 @@ SET(FemTestsElmer_SRCS SET(FemTools_SRCS femtools/__init__.py + femtools/ccxtools.py ) SET(FemObjectsScripts_SRCS diff --git a/src/Mod/Fem/PyGui/_ViewProviderFemSolverCalculix.py b/src/Mod/Fem/PyGui/_ViewProviderFemSolverCalculix.py index 5df358a9ac..19341d19a0 100644 --- a/src/Mod/Fem/PyGui/_ViewProviderFemSolverCalculix.py +++ b/src/Mod/Fem/PyGui/_ViewProviderFemSolverCalculix.py @@ -33,7 +33,7 @@ import FemGui # for the panel -import FemToolsCcx +from femtools import ccxtools from PySide import QtCore from PySide import QtGui from PySide.QtCore import Qt @@ -223,7 +223,7 @@ class _TaskPanelFemSolverCalculix: self.form.pb_run_ccx.setText("Re-run CalculiX") self.femConsoleMessage("Loading result sets...") self.form.l_time.setText('Time: {0:4.1f}: '.format(time.time() - self.Start)) - fea = FemToolsCcx.FemToolsCcx(None, self.solver_object) + fea = ccxtools.FemToolsCcx(None, self.solver_object) fea.reset_mesh_purge_results_checked() fea.inp_file_name = self.inp_file_name QApplication.setOverrideCursor(Qt.WaitCursor) @@ -258,7 +258,7 @@ class _TaskPanelFemSolverCalculix: if self.check_prerequisites_helper(): QApplication.setOverrideCursor(Qt.WaitCursor) self.inp_file_name = "" - fea = FemToolsCcx.FemToolsCcx(None, self.solver_object) + fea = ccxtools.FemToolsCcx(None, self.solver_object) fea.set_analysis_type(self.solver_object.AnalysisType) fea.update_objects() fea.write_inp_file() @@ -277,7 +277,7 @@ class _TaskPanelFemSolverCalculix: self.femConsoleMessage("Check dependencies...") self.form.l_time.setText('Time: {0:4.1f}: '.format(time.time() - self.Start)) - fea = FemToolsCcx.FemToolsCcx(None, self.solver_object) + fea = ccxtools.FemToolsCcx(None, self.solver_object) fea.update_objects() message = fea.check_prerequisites() if message != "": @@ -336,7 +336,7 @@ class _TaskPanelFemSolverCalculix: def select_thermomech_analysis(self): self.select_analysis_type('thermomech') - # That function overlaps with FemToolsCcx setup_working_dir and could be removed when the one from FemToolsCcx would be used + # That function overlaps with ccxtools setup_working_dir and could be removed when the one from ccxtools would be used def setup_working_dir(self): wd = self.solver_object.WorkingDir if not (os.path.isdir(wd)): diff --git a/src/Mod/Fem/PyObjects/_FemSolverCalculix.py b/src/Mod/Fem/PyObjects/_FemSolverCalculix.py index 2b4242694f..fa37ccdf75 100644 --- a/src/Mod/Fem/PyObjects/_FemSolverCalculix.py +++ b/src/Mod/Fem/PyObjects/_FemSolverCalculix.py @@ -28,7 +28,7 @@ __url__ = "http://www.freecadweb.org" # \ingroup FEM import FreeCAD -import FemToolsCcx +from femtools import ccxtools class _FemSolverCalculix(): @@ -49,9 +49,9 @@ class _FemSolverCalculix(): # the working directory is not set, the solver working directory is only used if the preferences working directory is left blank obj.addProperty("App::PropertyEnumeration", "AnalysisType", "Fem", "Type of the analysis") - obj.AnalysisType = FemToolsCcx.FemToolsCcx.known_analysis_types + obj.AnalysisType = ccxtools.FemToolsCcx.known_analysis_types analysis_type = ccx_prefs.GetInt("AnalysisType", 0) - obj.AnalysisType = FemToolsCcx.FemToolsCcx.known_analysis_types[analysis_type] + obj.AnalysisType = ccxtools.FemToolsCcx.known_analysis_types[analysis_type] choices_geom_nonlinear = ["linear", "nonlinear"] obj.addProperty("App::PropertyEnumeration", "GeometricalNonlinearity", "Fem", "Set geometrical nonlinearity") diff --git a/src/Mod/Fem/femcommands/commands.py b/src/Mod/Fem/femcommands/commands.py index 71931a9f77..819e59b044 100644 --- a/src/Mod/Fem/femcommands/commands.py +++ b/src/Mod/Fem/femcommands/commands.py @@ -633,8 +633,8 @@ class _CommandFemSolverRun(CommandManager): self.solver = self.selobj if hasattr(self.solver, "SolverType") and self.solver.SolverType == "FemSolverCalculix": - import FemToolsCcx - self.fea = FemToolsCcx.FemToolsCcx(None, self.solver) + from femtools import ccxtools + self.fea = ccxtools.FemToolsCcx(None, self.solver) self.fea.reset_mesh_purge_results_checked() message = self.fea.check_prerequisites() if message: diff --git a/src/Mod/Fem/femtest/testfemcommon.py b/src/Mod/Fem/femtest/testfemcommon.py index 3e0199a5d2..7c41ad0d48 100644 --- a/src/Mod/Fem/femtest/testfemcommon.py +++ b/src/Mod/Fem/femtest/testfemcommon.py @@ -25,7 +25,7 @@ # ***************************************************************************/ import Fem -import FemToolsCcx +from femtools import ccxtools import femresult.resulttools as resulttools import FreeCAD import ObjectsFem @@ -520,7 +520,7 @@ class FemCcxAnalysisTest(unittest.TestCase): self.active_doc.recompute() - fea = FemToolsCcx.FemToolsCcx(analysis, solver_object, test_mode=True) + fea = ccxtools.FemToolsCcx(analysis, solver_object, test_mode=True) fcc_print('Setting up working directory {}'.format(static_analysis_dir)) fea.setup_working_dir(static_analysis_dir) self.assertTrue(True if fea.working_dir == static_analysis_dir else False, @@ -528,7 +528,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Checking FEM inp file prerequisites for static analysis...') error = fea.check_prerequisites() - self.assertFalse(error, "FemToolsCcx check_prerequisites returned error message: {}".format(error)) + self.assertFalse(error, "ccxtools check_prerequisites returned error message: {}".format(error)) fcc_print('Checking FEM inp file write...') @@ -542,7 +542,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Comparing {} to {}/{}.inp'.format(static_analysis_inp_file, static_analysis_dir, mesh_name)) ret = compare_inp_files(static_analysis_inp_file, static_analysis_dir + "/" + mesh_name + '.inp') - self.assertFalse(ret, "FemToolsCcx write_inp_file test failed.\n{}".format(ret)) + self.assertFalse(ret, "ccxtools write_inp_file test failed.\n{}".format(ret)) fcc_print('Setting up working directory to {} in order to read simulated calculations'.format(test_file_dir)) fea.setup_working_dir(test_file_dir) @@ -584,7 +584,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Checking FEM inp file prerequisites for frequency analysis...') error = fea.check_prerequisites() - self.assertFalse(error, "FemToolsCcx check_prerequisites returned error message: {}".format(error)) + self.assertFalse(error, "ccxtools check_prerequisites returned error message: {}".format(error)) fcc_print('Writing {}/{}.inp for frequency analysis'.format(frequency_analysis_dir, mesh_name)) error = fea.write_inp_file() @@ -592,7 +592,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Comparing {} to {}/{}.inp'.format(frequency_analysis_inp_file, frequency_analysis_dir, mesh_name)) ret = compare_inp_files(frequency_analysis_inp_file, frequency_analysis_dir + "/" + mesh_name + '.inp') - self.assertFalse(ret, "FemToolsCcx write_inp_file test failed.\n{}".format(ret)) + self.assertFalse(ret, "ccxtools write_inp_file test failed.\n{}".format(ret)) fcc_print('Setting up working directory to {} in order to read simulated calculations'.format(test_file_dir)) fea.setup_working_dir(test_file_dir) @@ -645,7 +645,7 @@ class FemCcxAnalysisTest(unittest.TestCase): machine.join() # wait for the machine to finish. fcc_print('Comparing {} to {}/{}.inp'.format(static_analysis_inp_file, static2_analysis_dir, mesh_name)) ret = compare_inp_files(static_analysis_inp_file, static2_analysis_dir + mesh_name + '.inp') - self.assertFalse(ret, "FemToolsCcx write_inp_file test failed.\n{}".format(ret)) + self.assertFalse(ret, "ccxtools write_inp_file test failed.\n{}".format(ret)) # use new solver frame work elmer solver solver_elmer_object = ObjectsFem.makeSolverElmer(self.active_doc, 'SolverElmer') @@ -770,7 +770,7 @@ class FemCcxAnalysisTest(unittest.TestCase): self.active_doc.recompute() - fea = FemToolsCcx.FemToolsCcx(analysis, test_mode=True) + fea = ccxtools.FemToolsCcx(analysis, test_mode=True) fcc_print('Setting up working directory {}'.format(thermomech_analysis_dir)) fea.setup_working_dir(thermomech_analysis_dir) self.assertTrue(True if fea.working_dir == thermomech_analysis_dir else False, @@ -782,7 +782,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Checking FEM inp file prerequisites for thermo-mechanical analysis...') error = fea.check_prerequisites() - self.assertFalse(error, "FemToolsCcx check_prerequisites returned error message: {}".format(error)) + self.assertFalse(error, "ccxtools check_prerequisites returned error message: {}".format(error)) fcc_print('Checking FEM inp file write...') @@ -792,7 +792,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Comparing {} to {}/{}.inp'.format(thermomech_analysis_inp_file, thermomech_analysis_dir, mesh_name)) ret = compare_inp_files(thermomech_analysis_inp_file, thermomech_analysis_dir + "/" + mesh_name + '.inp') - self.assertFalse(ret, "FemToolsCcx write_inp_file test failed.\n{}".format(ret)) + self.assertFalse(ret, "ccxtools write_inp_file test failed.\n{}".format(ret)) fcc_print('Setting up working directory to {} in order to read simulated calculations'.format(test_file_dir)) fea.setup_working_dir(test_file_dir) @@ -1018,7 +1018,7 @@ class FemCcxAnalysisTest(unittest.TestCase): self.active_doc.recompute() - fea = FemToolsCcx.FemToolsCcx(analysis, test_mode=True) + fea = ccxtools.FemToolsCcx(analysis, test_mode=True) fcc_print('Setting up working directory {}'.format(Flow1D_thermomech_analysis_dir)) fea.setup_working_dir(Flow1D_thermomech_analysis_dir) self.assertTrue(True if fea.working_dir == Flow1D_thermomech_analysis_dir else False, @@ -1030,7 +1030,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Checking FEM inp file prerequisites for thermo-mechanical analysis...') error = fea.check_prerequisites() - self.assertFalse(error, "FemToolsCcx check_prerequisites returned error message: {}".format(error)) + self.assertFalse(error, "ccxtools check_prerequisites returned error message: {}".format(error)) fcc_print('Checking FEM inp file write...') @@ -1040,7 +1040,7 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('Comparing {} to {}/{}.inp'.format(Flow1D_thermomech_analysis_inp_file, Flow1D_thermomech_analysis_dir, mesh_name)) ret = compare_inp_files(Flow1D_thermomech_analysis_inp_file, Flow1D_thermomech_analysis_dir + "/" + mesh_name + '.inp') - self.assertFalse(ret, "FemToolsCcx write_inp_file test failed.\n{}".format(ret)) + self.assertFalse(ret, "ccxtools write_inp_file test failed.\n{}".format(ret)) fcc_print('Setting up working directory to {} in order to read simulated calculations'.format(test_file_dir)) fea.setup_working_dir(test_file_dir) @@ -1214,7 +1214,7 @@ def create_test_results(): # static and frequency cube FreeCAD.open(static_save_fc_file) FemGui.setActiveAnalysis(FreeCAD.ActiveDocument.Analysis) - fea = FemToolsCcx.FemToolsCcx() + fea = ccxtools.FemToolsCcx() print("create static result files") fea.reset_all() @@ -1259,7 +1259,7 @@ def create_test_results(): print("create thermomech result files") FreeCAD.open(thermomech_save_fc_file) FemGui.setActiveAnalysis(FreeCAD.ActiveDocument.Analysis) - fea = FemToolsCcx.FemToolsCcx() + fea = ccxtools.FemToolsCcx() fea.reset_all() fea.run() fea.load_results() @@ -1283,7 +1283,7 @@ def create_test_results(): print("create Flow1D result files") FreeCAD.open(Flow1D_thermomech_save_fc_file) FemGui.setActiveAnalysis(FreeCAD.ActiveDocument.Analysis) - fea = FemToolsCcx.FemToolsCcx() + fea = ccxtools.FemToolsCcx() fea.reset_all() fea.run() fea.load_results() diff --git a/src/Mod/Fem/FemToolsCcx.py b/src/Mod/Fem/femtools/ccxtools.py similarity index 100% rename from src/Mod/Fem/FemToolsCcx.py rename to src/Mod/Fem/femtools/ccxtools.py