FEM: fem tools package, move ccx tools in it

This commit is contained in:
Bernd Hahnebach
2018-01-09 07:29:45 +01:00
parent 2650f9a556
commit b1e1b128ab
6 changed files with 27 additions and 27 deletions

View File

@@ -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

View File

@@ -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)):

View File

@@ -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")

View File

@@ -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:

View File

@@ -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()