diff --git a/src/Mod/Fem/femsolver/elmer/equations/deformation.py b/src/Mod/Fem/femsolver/elmer/equations/deformation.py index 2c79ece569..48b3d9fd70 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/deformation.py +++ b/src/Mod/Fem/femsolver/elmer/equations/deformation.py @@ -29,16 +29,15 @@ __url__ = "https://www.freecadweb.org" # @{ from femtools import femutils +from . import nonlinear from ... import equationbase -from . import linear - def create(doc, name="Deformation"): return femutils.createObject( doc, name, Proxy, ViewProxy) -class Proxy(linear.Proxy, equationbase.DeformationProxy): +class Proxy(nonlinear.Proxy, equationbase.DeformationProxy): Type = "Fem::EquationElmerDeformation" @@ -107,14 +106,11 @@ class Proxy(linear.Proxy, equationbase.DeformationProxy): obj.Priority = 10 obj.CalculatePrincipal = True - # according to Elmer tutorial and forum, for stresses direct solving - # is recommended -> tests showed 10 times faster and even more accurate - obj.LinearSolverType = "Direct" - obj.LinearDirectMethod = "Umfpack" + obj.CalculateStresses = True obj.Variable = "-dofs 3 Displacement" -class ViewProxy(linear.ViewProxy, equationbase.DeformationViewProxy): +class ViewProxy(nonlinear.ViewProxy, equationbase.DeformationViewProxy): pass ## @} diff --git a/src/Mod/Fem/femsolver/elmer/equations/deformation_writer.py b/src/Mod/Fem/femsolver/elmer/equations/deformation_writer.py index c73809840e..fef9e2e775 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/deformation_writer.py +++ b/src/Mod/Fem/femsolver/elmer/equations/deformation_writer.py @@ -44,6 +44,7 @@ class DeformationWriter: def getDeformationSolver(self, equation): s = self.write.createLinearSolver(equation) # output the equation parameters + s = self.write.createNonlinearSolver(equation) s["Equation"] = "Nonlinear elasticity solver" s["Procedure"] = sifio.FileAttr("ElasticSolve/ElasticSolver") if equation.CalculateStrains is True: