diff --git a/src/Gui/QSint/actionpanel/actionpanelscheme.cpp b/src/Gui/QSint/actionpanel/actionpanelscheme.cpp index 4ace47d0ad..ca75b260cc 100644 --- a/src/Gui/QSint/actionpanel/actionpanelscheme.cpp +++ b/src/Gui/QSint/actionpanel/actionpanelscheme.cpp @@ -90,7 +90,7 @@ const char* ActionPanelDefaultStyle = "color: #006600;" "}" - // set a QGroupBox to avoid that the OS styles it, see + // set a QGroupBox to avoid that the OS style is used, see // https://github.com/FreeCAD/FreeCAD/issues/6102 // the px values are taken from Behave-dark.qss, except the padding "QSint--ActionGroup QFrame[class='content'] QGroupBox {" diff --git a/src/Gui/QSint/actionpanel/freecadscheme.cpp b/src/Gui/QSint/actionpanel/freecadscheme.cpp index 09e756a060..e9da9e5917 100644 --- a/src/Gui/QSint/actionpanel/freecadscheme.cpp +++ b/src/Gui/QSint/actionpanel/freecadscheme.cpp @@ -93,6 +93,22 @@ const char* ActionPanelFreeCAD = "background-color: #ddeeff;" "color: #006600;" "}" + + // set a QGroupBox to avoid that the OS style is used, see + // https://github.com/FreeCAD/FreeCAD/issues/6102 + // the px values are taken from Behave-dark.qss, except the padding + "QSint--ActionGroup QFrame[class='content'] QGroupBox {" + "border: 1px solid #bbbbbb;" + "border-radius: 3px;" + "margin-top: 10px;" + "padding: 2px;" + "}" + // since we set a custom frame we also need to set the title + "QSint--ActionGroup QFrame[class='content'] QGroupBox::title {" + "padding-left: 3px;" + "top: -6px;" + "left: 12px;" + "}" ; const char* MinimumActionPanelFreeCAD = diff --git a/src/Mod/AddonManager/package_details.py b/src/Mod/AddonManager/package_details.py index f3f1f61c84..72f53e7240 100644 --- a/src/Mod/AddonManager/package_details.py +++ b/src/Mod/AddonManager/package_details.py @@ -168,7 +168,7 @@ class PackageDetails(QWidget): self.display_repo_status(self.repo.update_status) def display_repo_status(self, status): - """ Updates the contents of the widget to diplay the current install status of the widget. """ + """ Updates the contents of the widget to display the current install status of the widget. """ repo = self.repo self.set_change_branch_button_state() self.set_disable_button_state() @@ -597,7 +597,7 @@ class PackageDetails(QWidget): self.ui.progressBar.setValue(progress) def load_finished(self, load_succeeded: bool): - """ Once loading is complete, update the dispaly of the progress bar and loading widget. """ + """ Once loading is complete, update the display of the progress bar and loading widget. """ self.ui.loadingLabel.hide() self.ui.slowLoadLabel.hide() self.ui.webView.show() diff --git a/src/Mod/Fem/femsolver/elmer/equations/flow.py b/src/Mod/Fem/femsolver/elmer/equations/flow.py index 2e9db83796..ae63df7ae4 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/flow.py +++ b/src/Mod/Fem/femsolver/elmer/equations/flow.py @@ -44,6 +44,15 @@ class Proxy(nonlinear.Proxy, equationbase.FlowProxy): def __init__(self, obj): super(Proxy, self).__init__(obj) + + obj.addProperty( + "App::PropertyBool", + "Stabilize", + "Flow", + "" + ) + obj.Stabilize = True + obj.Priority = 10 diff --git a/src/Mod/Fem/femsolver/elmer/equations/flux.py b/src/Mod/Fem/femsolver/elmer/equations/flux.py index 6984443131..17edbbc575 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/flux.py +++ b/src/Mod/Fem/femsolver/elmer/equations/flux.py @@ -45,19 +45,31 @@ class Proxy(linear.Proxy, equationbase.FluxProxy): def __init__(self, obj): super(Proxy, self).__init__(obj) + obj.addProperty( + "App::PropertyBool", + "DiscontinuousGalerkin", + "Flux", + "" + ) + obj.addProperty( + "App::PropertyBool", + "AverageWithinMaterials", + "Flux", + "" + ) obj.addProperty( "App::PropertyBool", "CalculateFlux", "Flux", "" ) + obj.CalculateFlux = True obj.addProperty( "App::PropertyString", "FluxVariable", "Flux", "Insert variable name for flux calculation" ) - """ obj.addProperty( "App::PropertyBool", "CalculateFluxAbs", @@ -70,14 +82,12 @@ class Proxy(linear.Proxy, equationbase.FluxProxy): "Flux", "Select calculation of magnitude of flux" ) - """ obj.addProperty( "App::PropertyBool", "CalculateGrad", "Flux", "Select calculation of gradient" ) - """ obj.addProperty( "App::PropertyBool", "CalculateGradAbs", @@ -96,7 +106,6 @@ class Proxy(linear.Proxy, equationbase.FluxProxy): "Flux", "Select calculation of positive magnitude" ) - """ obj.Priority = 5 diff --git a/src/Mod/Fem/femsolver/elmer/equations/heat.py b/src/Mod/Fem/femsolver/elmer/equations/heat.py index 7775cf3a4a..4be7c27541 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/heat.py +++ b/src/Mod/Fem/femsolver/elmer/equations/heat.py @@ -44,6 +44,23 @@ class Proxy(nonlinear.Proxy, equationbase.HeatProxy): def __init__(self, obj): super(Proxy, self).__init__(obj) + + # according to the Elmer models manual Bubbles is by default True + # Stabilize is False + obj.addProperty( + "App::PropertyBool", + "Stabilize", + "Heat", + "" + ) + obj.addProperty( + "App::PropertyBool", + "Bubbles", + "Heat", + "" + ) + obj.Bubbles = True + obj.Priority = 20 diff --git a/src/Mod/Fem/femsolver/elmer/equations/linear.py b/src/Mod/Fem/femsolver/elmer/equations/linear.py index 40b937038e..f6e1fc523a 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/linear.py +++ b/src/Mod/Fem/femsolver/elmer/equations/linear.py @@ -126,20 +126,6 @@ class Proxy(equation.Proxy): ) # same as with LinearTolerance obj.setExpression('SteadyStateTolerance', "1e-5") - obj.addProperty( - "App::PropertyBool", - "Stabilize", - "Base", - "" - ) - obj.Stabilize = True - obj.addProperty( - "App::PropertyBool", - "Bubbles", - "Base", - "" - ) - obj.Bubbles = False class ViewProxy(equation.ViewProxy): diff --git a/src/Mod/Fem/femsolver/elmer/writer.py b/src/Mod/Fem/femsolver/elmer/writer.py index 02e8cd1c5c..3bb2ea6767 100644 --- a/src/Mod/Fem/femsolver/elmer/writer.py +++ b/src/Mod/Fem/femsolver/elmer/writer.py @@ -474,8 +474,6 @@ class Writer(object): s["Calculate Capacitance Matrix"] = equation.CalculateCapacitanceMatrix s["Displace mesh"] = False s["Exec Solver"] = "Always" - s["Stabilize"] = equation.Stabilize - s["Bubbles"] = equation.Bubbles s["Optimize Bandwidth"] = True return s @@ -536,8 +534,15 @@ class Writer(object): s["Equation"] = "Flux Solver" # equation.Name s["Procedure"] = sifio.FileAttr("FluxSolver/FluxSolver") s["Flux Variable"] = equation.FluxVariable + s["Discontinuous Galerkin"] = equation.DiscontinuousGalerkin + s["Average Within Materials"] = equation.AverageWithinMaterials s["Calculate Flux"] = equation.CalculateFlux + s["Calculate Flux Abs"] = equation.CalculateFluxAbs + s["Calculate Flux Magnitude"] = equation.CalculateFluxMagnitude s["Calculate Grad"] = equation.CalculateGrad + s["Calculate Grad Abs"] = equation.CalculateGradAbs + s["Calculate Grad Magnitude"] = equation.CalculateGradMagnitude + s["Enforce Positive Magnitude"] = equation.EnforcePositiveMagnitude return s def _handleElectricforce(self): @@ -578,7 +583,7 @@ class Writer(object): def _getElasticitySolver(self, equation): s = self._createLinearSolver(equation) - s["Equation"] = equation.Name + s["Equation"] = "Stress Solver" # equation.Name s["Procedure"] = sifio.FileAttr("StressSolve/StressSolver") s["Variable"] = self._getUniqueVarName("Displacement") s["Variable DOFs"] = 3 @@ -590,8 +595,6 @@ class Writer(object): s["Calculate Pangle"] = equation.CalculatePangle s["Displace mesh"] = False s["Exec Solver"] = "Always" - s["Stabilize"] = equation.Stabilize - s["Bubbles"] = equation.Bubbles s["Optimize Bandwidth"] = True return s @@ -764,11 +767,9 @@ class Writer(object): def _getFlowSolver(self, equation): s = self._createNonlinearSolver(equation) s["Equation"] = "Navier-Stokes" - # s["Equation"] = equation.Name s["Procedure"] = sifio.FileAttr("FlowSolve/FlowSolver") s["Exec Solver"] = "Always" s["Stabilize"] = equation.Stabilize - s["Bubbles"] = equation.Bubbles s["Optimize Bandwidth"] = True return s diff --git a/src/Mod/Fem/femtest/data/elmer/box_static_0_mm.sif b/src/Mod/Fem/femtest/data/elmer/box_static_0_mm.sif index 61231489df..263c01bd8b 100644 --- a/src/Mod/Fem/femtest/data/elmer/box_static_0_mm.sif +++ b/src/Mod/Fem/femtest/data/elmer/box_static_0_mm.sif @@ -5,7 +5,6 @@ Header End Solver 1 - Bubbles = Logical False Calculate Pangle = Logical False Calculate Principal = Logical True Calculate Strains = Logical False @@ -13,7 +12,7 @@ Solver 1 Displace mesh = Logical False Eigen Analysis = Logical False Eigen System Values = Integer 5 - Equation = String "Elasticity" + Equation = String "Stress Solver" Exec Solver = String "Always" Linear System Abort Not Converged = Logical False Linear System Convergence Tolerance = Real 1e-08 @@ -25,7 +24,6 @@ Solver 1 Linear System Solver = String "Iterative" Optimize Bandwidth = Logical True Procedure = File "StressSolve" "StressSolver" - Stabilize = Logical True Steady State Convergence Tolerance = Real 1e-05 Variable = String "Displacement" Variable DOFs = Integer 3 diff --git a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_0_mm.sif b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_0_mm.sif index fbb76526c8..0cc5cf0e3b 100644 --- a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_0_mm.sif +++ b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_0_mm.sif @@ -5,7 +5,6 @@ Header End Solver 1 - Bubbles = Logical False Calculate Pangle = Logical False Calculate Principal = Logical True Calculate Strains = Logical False @@ -13,7 +12,7 @@ Solver 1 Displace mesh = Logical False Eigen Analysis = Logical False Eigen System Values = Integer 5 - Equation = String "Elasticity" + Equation = String "Stress Solver" Exec Solver = String "Always" Linear System Abort Not Converged = Logical False Linear System Convergence Tolerance = Real 1e-08 @@ -25,7 +24,6 @@ Solver 1 Linear System Solver = String "Iterative" Optimize Bandwidth = Logical True Procedure = File "StressSolve" "StressSolver" - Stabilize = Logical True Steady State Convergence Tolerance = Real 1e-05 Variable = String "Displacement" Variable DOFs = Integer 3 diff --git a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_1_si.sif b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_1_si.sif index 170a9b22dc..c239c40ff3 100644 --- a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_1_si.sif +++ b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_faceload_1_si.sif @@ -5,7 +5,6 @@ Header End Solver 1 - Bubbles = Logical False Calculate Pangle = Logical False Calculate Principal = Logical True Calculate Strains = Logical False @@ -13,7 +12,7 @@ Solver 1 Displace mesh = Logical False Eigen Analysis = Logical False Eigen System Values = Integer 5 - Equation = String "Elasticity" + Equation = String "Stress Solver" Exec Solver = String "Always" Linear System Abort Not Converged = Logical False Linear System Convergence Tolerance = Real 1e-08 @@ -25,7 +24,6 @@ Solver 1 Linear System Solver = String "Iterative" Optimize Bandwidth = Logical True Procedure = File "StressSolve" "StressSolver" - Stabilize = Logical True Steady State Convergence Tolerance = Real 1e-05 Variable = String "Displacement" Variable DOFs = Integer 3 diff --git a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_nodeload_0_mm.sif b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_nodeload_0_mm.sif index 2cb4d519a8..97ae9b0793 100644 --- a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_nodeload_0_mm.sif +++ b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_nodeload_0_mm.sif @@ -5,7 +5,6 @@ Header End Solver 1 - Bubbles = Logical False Calculate Pangle = Logical False Calculate Principal = Logical True Calculate Strains = Logical False @@ -13,7 +12,7 @@ Solver 1 Displace mesh = Logical False Eigen Analysis = Logical False Eigen System Values = Integer 5 - Equation = String "Elasticity" + Equation = String "Stress Solver" Exec Solver = String "Always" Linear System Abort Not Converged = Logical False Linear System Convergence Tolerance = Real 1e-08 @@ -25,7 +24,6 @@ Solver 1 Linear System Solver = String "Iterative" Optimize Bandwidth = Logical True Procedure = File "StressSolve" "StressSolver" - Stabilize = Logical True Steady State Convergence Tolerance = Real 1e-05 Variable = String "Displacement" Variable DOFs = Integer 3 diff --git a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_prescribeddisplacement_0_mm.sif b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_prescribeddisplacement_0_mm.sif index 59b26744df..89db7df193 100644 --- a/src/Mod/Fem/femtest/data/elmer/ccxcantilever_prescribeddisplacement_0_mm.sif +++ b/src/Mod/Fem/femtest/data/elmer/ccxcantilever_prescribeddisplacement_0_mm.sif @@ -5,7 +5,6 @@ Header End Solver 1 - Bubbles = Logical False Calculate Pangle = Logical False Calculate Principal = Logical True Calculate Strains = Logical False @@ -13,7 +12,7 @@ Solver 1 Displace mesh = Logical False Eigen Analysis = Logical False Eigen System Values = Integer 5 - Equation = String "Elasticity" + Equation = String "Stress Solver" Exec Solver = String "Always" Linear System Abort Not Converged = Logical False Linear System Convergence Tolerance = Real 1e-08 @@ -25,7 +24,6 @@ Solver 1 Linear System Solver = String "Iterative" Optimize Bandwidth = Logical True Procedure = File "StressSolve" "StressSolver" - Stabilize = Logical True Steady State Convergence Tolerance = Real 1e-05 Variable = String "Displacement" Variable DOFs = Integer 3