From 7d40503bc92ec718a7a40c843a13962e766b57f2 Mon Sep 17 00:00:00 2001 From: FEA-eng <59876896+FEA-eng@users.noreply.github.com> Date: Sun, 18 Feb 2024 03:14:32 +0100 Subject: [PATCH] FEM new matrix solver types (PaStiX and Pardiso) (#12478) * Update solver.py * Update write_step_equation.py * Update DlgSettingsFemCcx.ui --- src/Mod/Fem/Gui/DlgSettingsFemCcx.ui | 10 ++++++++++ src/Mod/Fem/femsolver/calculix/solver.py | 2 ++ src/Mod/Fem/femsolver/calculix/write_step_equation.py | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui index 0fd80c6553..1a057bb4cc 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui +++ b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui @@ -343,6 +343,16 @@ Default + + + PaStiX + + + + + Pardiso + + Spooles diff --git a/src/Mod/Fem/femsolver/calculix/solver.py b/src/Mod/Fem/femsolver/calculix/solver.py index 6958e5dca3..ca6707a893 100644 --- a/src/Mod/Fem/femsolver/calculix/solver.py +++ b/src/Mod/Fem/femsolver/calculix/solver.py @@ -345,6 +345,8 @@ def add_attributes(obj, ccx_prefs): if not hasattr(obj, "MatrixSolverType"): known_ccx_solver_types = [ "default", + "pastix", + "pardiso", "spooles", "iterativescaling", "iterativecholesky" diff --git a/src/Mod/Fem/femsolver/calculix/write_step_equation.py b/src/Mod/Fem/femsolver/calculix/write_step_equation.py index 50e5b59829..e4beef37c2 100644 --- a/src/Mod/Fem/femsolver/calculix/write_step_equation.py +++ b/src/Mod/Fem/femsolver/calculix/write_step_equation.py @@ -81,6 +81,10 @@ def write_step_equation(f, ccxwriter): # https://forum.freecad.org/viewtopic.php?f=18&t=43178 if ccxwriter.solver_obj.MatrixSolverType == "default": pass + elif ccxwriter.solver_obj.MatrixSolverType == "pastix": + analysis_type += ", SOLVER=PASTIX" + elif ccxwriter.solver_obj.MatrixSolverType == "pardiso": + analysis_type += ", SOLVER=PARDISO" elif ccxwriter.solver_obj.MatrixSolverType == "spooles": analysis_type += ", SOLVER=SPOOLES" elif ccxwriter.solver_obj.MatrixSolverType == "iterativescaling":