From 4e7b96d2506f5c5c9940a2bff2b0b22b63587aff Mon Sep 17 00:00:00 2001 From: Uwe Date: Thu, 17 Mar 2022 22:33:56 +0100 Subject: [PATCH] [FEM] add missing preferences settings - since 0.19 we support to check meshes - since 0.20 we support buckling - also revise dialog to get rid of arbitrary limits etc. --- src/Mod/Fem/Gui/DlgSettingsFemCcx.ui | 1358 +++++++++-------- src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp | 9 +- src/Mod/Fem/Gui/Resources/Fem.qrc | 2 + .../icons/fem-solver-analysis-buckling.svg | 113 ++ .../icons/fem-solver-analysis-checkmesh.svg | 170 +++ 5 files changed, 1012 insertions(+), 640 deletions(-) create mode 100644 src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-buckling.svg create mode 100644 src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-checkmesh.svg diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui index 05caa8a6c4..5476c9901e 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui +++ b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui @@ -6,662 +6,746 @@ 0 0 - 536 - 886 + 425 + 622 CalculiX - - - - - - - - 0 - 0 - - - - Qt::LeftToRight - - - CalculiX - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - + + + + + + 0 + 0 + + + + Qt::LeftToRight + + + CalculiX + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + false + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + 0 + + + + Leave blank to use default CalculiX ccx binary file + + + ccxBinaryPath + + + Mod/Fem/Ccx + + + + + + + Input file Editor + + + + + + + Use internal editor for *.inp files + + + true + + + UseInternalEditor + + + Mod/Fem/Ccx + + + + + + + false + + + + 100 + 0 + + + + External editor: + + + + + + + Search in known binary directories + + + true + + + UseStandardCcxLocation + + + Mod/Fem/Ccx + + + + + + + false + + + + 100 + 0 + + + + ccx binary path + + + + + + + false + + + ExternalEditorPath + + + Mod/Fem/Ccx + + + + + + + Input file splitting + + + + + + + true + + + Split writing of *.inp + + + false + + + SplitInputWriter + + + Mod/Fem/Ccx + + + + + + + CalculiX binary + + + + + + + + + + + + Analysis defaults + + + + - - - - - false - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - 0 - - - - Leave blank to use default CalculiX ccx binary file - - - ccxBinaryPath - - - Mod/Fem/Ccx - - + + + Type + + + + + + + + 148 + 0 + + + + Default type on analysis + + + AnalysisType + + + Mod/Fem/Ccx + + + + Static + + + + :/icons/fem-solver-analysis-static.svg:/icons/fem-solver-analysis-static.svg + - - - - Input file Editor - - + + + Frequency + + + + :/icons/fem-solver-analysis-frequency.svg:/icons/fem-solver-analysis-frequency.svg + - - - - Use internal editor for *.inp files - - - true - - - UseInternalEditor - - - Mod/Fem/Ccx - - + + + Thermomech + + + + :/icons/fem-solver-analysis-thermomechanical.svg:/icons/fem-solver-analysis-thermomechanical.svg + - - - - false - - - - 100 - 0 - - - - External editor: - - + + + Check Mesh + + + + :/icons/fem-solver-analysis-checkmesh.svg:/icons/fem-solver-analysis-checkmesh.svg + - - - - Search in known binary directories - - - true - - - UseStandardCcxLocation - - - Mod/Fem/Ccx - - + + + Buckling + + + + :/icons/fem-solver-analysis-buckling.svg:/icons/fem-solver-analysis-buckling.svg + - - - - false - - - - 100 - 0 - - - - ccx binary path - - - - - - - false - - - ExternalEditorPath - - - Mod/Fem/Ccx - - - - - - - Input file splitting - - - - - - - true - - - Split writing of *.inp - - - false - - - SplitInputWriter - - - Mod/Fem/Ccx - - - - - - - CalculiX binary - - - - + - - - - - - Analysis defaults - - - - - - - - Type - - - - - - - - 148 - 0 - - - - Default type on analysis - - - AnalysisType - - - Mod/Fem/Ccx - - - - Static - - - - :/icons/fem-solver-analysis-static.svg:/icons/fem-solver-analysis-static.svg - - - - - Frequency - - - - :/icons/fem-solver-analysis-frequency.svg:/icons/fem-solver-analysis-frequency.svg - - - - - Thermomech - - - - :/icons/fem-solver-analysis-thermomechanical.svg:/icons/fem-solver-analysis-thermomechanical.svg - - - - - + + + + + + + + Solver defaults + + + + + + + + Use non ccx defaults + + + false + + + UseNonCcxIterationParam + + + Mod/Fem/Ccx + + - - - - - - - Solver defaults - - - - - - - - Time incrementation control parameter - - - - - - - Use non ccx defaults - - - false - - - UseNonCcxIterationParam - - - Mod/Fem/Ccx - - - - - - - Use non-linear geometry - - - false - - - NonlinearGeometry - - - Mod/Fem/Ccx - - - - - - - true - - - Matrix solver - - - - - - - Number of CPU's to use (Spooles only) - - - - - - - Non-linear geometry - - - - - - - true - - - false - - - Solver - - - Mod/Fem/Ccx - - - - Default - - - - - Spooles - - - - - Iterative Scaling - - - - - Iterative Cholesky - - - - - - - - 1 - - - 40 - - - 1 - - - 1 - - - AnalysisNumCPUs - - - Mod/Fem/Ccx - - - - - - - Time Initial Step - - - - - - - Time End - - - - - - - 3 - - - 0.010000000000000 - - - 99999999.000000000000000 - - - 0.010000000000000 - - - 0.010000000000000 - - - AnalysisTimeInitialStep - - - Mod/Fem/Ccx - - - - - - - 3 - - - 0.010000000000000 - - - 99999999.000000000000000 - - - 0.010000000000000 - - - 1.000000000000000 - - - AnalysisTime - - - Mod/Fem/Ccx - - - - - - - 3D Output, unchecked for 2D - - - false - - - BeamShellOutput - - - Mod/Fem/Ccx - - - - - - - Beam, shell element 3D output format - - - - + + + + Non-linear geometry + + - - - - - - - Thermo mechanical defaults - - - - - - - - Maximum number of iterations - - - - - - - 1 - - - 10000000 - - - 10 - - - 2000 - - - AnalysisMaxIterations - - - Mod/Fem/Ccx - - - - - - - Use steady state - - - true - - - StaticAnalysis - - - Mod/Fem/Ccx - - - - - - - Analysis type (transient or steady state) - - - - + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 0.010000000000000 + + + 0.010000000000000 + + + 0.010000000000000 + + + AnalysisTimeInitialStep + + + Mod/Fem/Ccx + + + + + + + Beam, shell element 3D output format + + + + + + + Time End + + + + + + + s + + + + + + + Use non-linear geometry + + + false + + + NonlinearGeometry + + + Mod/Fem/Ccx + + + + + + + Time Initial Step + + + + + + + 3D Output, unchecked for 2D + + + false + + + BeamShellOutput + + + Mod/Fem/Ccx + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 40 + + + 1 + + + 1 + + + AnalysisNumCPUs + + + Mod/Fem/Ccx + + + + + + + s + + + + + + + Time incrementation control parameter + + + + + + + true + + + false + + + Solver + + + Mod/Fem/Ccx + + + + Default + + + + + Spooles + + + + + Iterative Scaling + + + + + Iterative Cholesky + + + + + + + + true + + + Matrix solver + + - - - - - - - Frequency defaults - - - - - - - 100 - - - 10 - - - EigenmodesCount - - - Mod/Fem/Ccx - - - - - - - Eigenmode number - - - - - - - High frequency limit - - - - - - - 1 - - - 1000000.000000000000000 - - - 10000.000000000000000 - - - 1000000.000000000000000 - - - EigenmodeHighLimit - - - Mod/Fem/Ccx - - - - - - - Low frequency limit - - - - - - - 1 - - - 0.000000000000000 - - - 1000000.000000000000000 - - - 10000.000000000000000 - - - 0.000000000000000 - - - EigenmodeLowLimit - - - Mod/Fem/Ccx - - - - - - - Hz - - - - - - - Hz - - - - + + + Number of CPU's to use (Spooles only) + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 0.010000000000000 + + + 0.010000000000000 + + + 1.000000000000000 + + + AnalysisTime + + + Mod/Fem/Ccx + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + - - - + + + + + + + + Thermo mechanical defaults + + + + + + + + Maximum number of iterations + + + + + + + 1 + + + 10000000 + + + 10 + + + 2000 + + + AnalysisMaxIterations + + + Mod/Fem/Ccx + + + + + + + Use steady state + + + true + + + StaticAnalysis + + + Mod/Fem/Ccx + + + + + + + Analysis type (transient or steady state) + + + + + + + + + + + + Frequency defaults + + + + + + + + Hz + + + + + + + Hz + + + + + + + Eigenmode number + + + + + + + + 158 + 0 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 100 + + + 10 + + + EigenmodesCount + + + Mod/Fem/Ccx + + + + + + + + 158 + 0 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 0.000000000000000 + + + 1000000.000000000000000 + + + 10000.000000000000000 + + + 0.000000000000000 + + + EigenmodeLowLimit + + + Mod/Fem/Ccx + + + + + + + + 158 + 0 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 1000000.000000000000000 + + + 10000.000000000000000 + + + 1000000.000000000000000 + + + EigenmodeHighLimit + + + Mod/Fem/Ccx + + + + + + + Low frequency limit + + + + + + + High frequency limit + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp index c26c40a32f..0930efcf9d 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp +++ b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp @@ -23,13 +23,13 @@ * * ***************************************************************************/ - #include "PreCompiled.h" +#include + #include "DlgSettingsFemCcxImp.h" #include "ui_DlgSettingsFemCcx.h" -#include -#include + using namespace FemGui; @@ -38,6 +38,9 @@ DlgSettingsFemCcxImp::DlgSettingsFemCcxImp( QWidget* parent ) , ui(new Ui_DlgSettingsFemCcxImp) { ui->setupUi(this); + // set ranges + ui->dsb_ccx_analysis_time->setMaximum(FLOAT_MAX); + ui->dsb_ccx_initial_time_step->setMaximum(FLOAT_MAX); } DlgSettingsFemCcxImp::~DlgSettingsFemCcxImp() diff --git a/src/Mod/Fem/Gui/Resources/Fem.qrc b/src/Mod/Fem/Gui/Resources/Fem.qrc index c7265cb4d6..c8a16b2b71 100755 --- a/src/Mod/Fem/Gui/Resources/Fem.qrc +++ b/src/Mod/Fem/Gui/Resources/Fem.qrc @@ -93,6 +93,8 @@ icons/FemWorkbench.svg + icons/fem-solver-analysis-buckling.svg + icons/fem-solver-analysis-checkmesh.svg icons/fem-solver-analysis-frequency.svg icons/fem-solver-analysis-static.svg icons/fem-solver-analysis-thermomechanical.svg diff --git a/src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-buckling.svg b/src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-buckling.svg new file mode 100644 index 0000000000..ccdbec16bb --- /dev/null +++ b/src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-buckling.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + [vdwalts] + + + 2016-08-01 + http://www.freecadweb.org/wiki/index.php?title=Artwork + + + FreeCAD + + + FreeCAD/src/Mod/ + + + FreeCAD LGPL2+ + + + https://www.gnu.org/copyleft/lesser.html + + + [agryson] Alexander Gryson + + + + + + + + + + + + + + + diff --git a/src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-checkmesh.svg b/src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-checkmesh.svg new file mode 100644 index 0000000000..545fdf4e1e --- /dev/null +++ b/src/Mod/Fem/Gui/Resources/icons/fem-solver-analysis-checkmesh.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + [vdwalts] + + + 2016-08-01 + http://www.freecadweb.org/wiki/index.php?title=Artwork + + + FreeCAD + + + FreeCAD/src/Mod/ + + + FreeCAD LGPL2+ + + + https://www.gnu.org/copyleft/lesser.html + + + [agryson] Alexander Gryson + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +