[FEM] fixes for deformation equation
- deformation is a nonlinear equation - use the default that Elmer GUI uses for this equation
This commit is contained in:
@@ -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
|
||||
|
||||
## @}
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user