FEM: fem tools package, move ccx tools in it
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)):
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user