FEM CalculiX isotropic and kinematic hardening (#12666)
* Update material_mechanicalnonlinear.py * Update write_femelement_material.py * Update material_mechanicalnonlinear.py
This commit is contained in:
@@ -81,7 +81,7 @@ class MaterialMechanicalNonlinear(base_fempythonobject.BaseFemPythonObject):
|
||||
)
|
||||
|
||||
if not hasattr(obj, "MaterialModelNonlinearity"):
|
||||
choices_nonlinear_material_models = ["simple hardening"]
|
||||
choices_nonlinear_material_models = ["isotropic hardening","kinematic hardening"]
|
||||
obj.addProperty(
|
||||
"App::PropertyEnumeration",
|
||||
"MaterialModelNonlinearity",
|
||||
@@ -91,6 +91,11 @@ class MaterialMechanicalNonlinear(base_fempythonobject.BaseFemPythonObject):
|
||||
obj.MaterialModelNonlinearity = choices_nonlinear_material_models
|
||||
obj.MaterialModelNonlinearity = choices_nonlinear_material_models[0]
|
||||
|
||||
if hasattr(obj, "MaterialModelNonlinearity") and obj.MaterialModelNonlinearity == "simple hardening":
|
||||
updated_choices_nonlinear_material_models = ["isotropic hardening", "kinematic hardening"]
|
||||
obj.MaterialModelNonlinearity = updated_choices_nonlinear_material_models
|
||||
obj.MaterialModelNonlinearity = updated_choices_nonlinear_material_models[0]
|
||||
|
||||
if not hasattr(obj, "YieldPoints"):
|
||||
obj.addProperty(
|
||||
"App::PropertyStringList",
|
||||
|
||||
@@ -111,8 +111,10 @@ def write_femelement_material(f, ccxwriter):
|
||||
# femobj --> dict, FreeCAD document object is nlfemobj["Object"]
|
||||
nl_mat_obj = nlfemobj["Object"]
|
||||
if nl_mat_obj.LinearBaseMaterial == mat_obj:
|
||||
if nl_mat_obj.MaterialModelNonlinearity == "simple hardening":
|
||||
if nl_mat_obj.MaterialModelNonlinearity == "isotropic hardening":
|
||||
f.write("*PLASTIC\n")
|
||||
for yield_point in nl_mat_obj.YieldPoints:
|
||||
f.write("{}\n".format(yield_point))
|
||||
else:
|
||||
f.write("*PLASTIC, HARDENING=KINEMATIC\n")
|
||||
for yield_point in nl_mat_obj.YieldPoints:
|
||||
f.write("{}\n".format(yield_point))
|
||||
f.write("\n")
|
||||
|
||||
Reference in New Issue
Block a user