FEM: nonlinear materials, add some new needed attributes to ccx solver object
This commit is contained in:
parent
4363a1a6b4
commit
8e11d7032c
|
@ -51,14 +51,19 @@ class _FemSolverCalculix():
|
|||
analysis_type = ccx_prefs.GetInt("AnalysisType", 0)
|
||||
obj.AnalysisType = FemToolsCcx.FemToolsCcx.known_analysis_types[analysis_type]
|
||||
|
||||
known_geom_nonlinear_types = ["linear", "nonlinear"]
|
||||
obj.addProperty("App::PropertyEnumeration", "GeometricalNonlinearity", "Fem", "Type of geometrical nonlinearity")
|
||||
obj.GeometricalNonlinearity = known_geom_nonlinear_types
|
||||
geom = ccx_prefs.GetBool("NonlinearGeometry", False)
|
||||
if geom is True:
|
||||
obj.GeometricalNonlinearity = known_geom_nonlinear_types[1] # nonlinear
|
||||
choices_geom_nonlinear = ["linear", "nonlinear"]
|
||||
obj.addProperty("App::PropertyEnumeration", "GeometricalNonlinearity", "Fem", "Set geometrical nonlinearity")
|
||||
obj.GeometricalNonlinearity = choices_geom_nonlinear
|
||||
nonlinear_geom = ccx_prefs.GetBool("NonlinearGeometry", False)
|
||||
if nonlinear_geom is True:
|
||||
obj.GeometricalNonlinearity = choices_geom_nonlinear[1] # nonlinear
|
||||
else:
|
||||
obj.GeometricalNonlinearity = known_geom_nonlinear_types[0] # linear
|
||||
obj.GeometricalNonlinearity = choices_geom_nonlinear[0] # linear
|
||||
|
||||
choices_material_nonlinear = ["linear", "nonlinear"]
|
||||
obj.addProperty("App::PropertyEnumeration", "MaterialNonlinearity", "Fem", "Set material nonlinearity (needs geometrical nonlinearity)")
|
||||
obj.MaterialNonlinearity = choices_material_nonlinear
|
||||
obj.MaterialNonlinearity = choices_material_nonlinear[0]
|
||||
|
||||
obj.addProperty("App::PropertyIntegerConstraint", "EigenmodesCount", "Fem", "Number of modes for frequency calculations")
|
||||
noe = ccx_prefs.GetInt("EigenmodesCount", 10)
|
||||
|
@ -121,6 +126,12 @@ class _FemSolverCalculix():
|
|||
obj.addProperty("App::PropertyString", "IterationsControlParameterCutb", "Fem", "User defined time incrementation cutbacks control parameter")
|
||||
obj.IterationsControlParameterCutb = p_cutb
|
||||
|
||||
obj.addProperty("App::PropertyBool", "IterationsUserDefinedIncrementations", "Fem", "Set to True to switch of the ccx automatic incrementation (ccx parameter DIRECT)")
|
||||
obj.IterationsUserDefinedIncrementations = False
|
||||
|
||||
obj.addProperty("App::PropertyString", "IterationsUserDefinedTimeStepLength", "Fem", "Set the time step length for the current step, only used if IterationsUserDefinedIncrementations is set to True")
|
||||
obj.IterationsUserDefinedTimeStepLength = "0.1, 1.0"
|
||||
|
||||
known_ccx_solver_types = ["default", "spooles", "iterativescaling", "iterativecholesky"]
|
||||
obj.addProperty("App::PropertyEnumeration", "MatrixSolverType", "Fem", "Type of solver to use")
|
||||
obj.MatrixSolverType = known_ccx_solver_types
|
||||
|
|
Loading…
Reference in New Issue
Block a user