YLD0418P
The YLD0418P
material implements an isotropic hardening model using the YLD2004-18P yield criterion with either orthotropic or isotropic elasticity.
References
Syntax
Orthotropic Elasticity
material YLD0418P (1) (2...7) (8...10) (11...28) (29) (30) (31) (32) (33) [34]
# (1) int, unique material tag
# (2...7) double, six moduli: E_{xx}, E_{yy}, E_{zz}, G_{xy}, G_{yz}, G_{zx}
# (8...10) double, three poissions ratios: v_{xy}, v_{yz}, v_{xz}
# (11...28) double, 18 model parameters, see documentation for details
# (29) double, exponent
# (30) double, reference stress
# (31) int, hardening backbone expression tag
# (32) double, kinematic hardening rate
# (33) double, kinematic hardening bound
# [34] double, density, default: 0.0
Isotropic Elasticity
material YLD0418PISO (1) (2) (3) (4...21) (22) (23) (24) (25) (26) [27]
# (1) int, unique material tag
# (2) double, elastic modulus
# (3) double, poissions ratio
# (4...21) double, 18 model parameters, see documentation for details
# (22) double, exponent
# (23) double, reference stress
# (24) int, hardening backbone expression tag
# (25) double, kinematic hardening rate
# (26) double, kinematic hardening bound
# [27] double, density, default: 0.0
Remarks
The hardening expression shall be a simple scalar-valued expression. Check the corresponding page for details.
If any of kinematic hardening rate or bound is zero, the kinematic hardening is disabled. The local return mapping uses different algorithms depending on whether the kinematic hardening is enabled or not. Thus, if kinematic hardening is not important, one shall consider disabling it to improve numerical performance.
The reference stress is used to normalize the yield surface to avoid potential numerical issues. It shall be set to a proper value, for example, the initial yield stress.
The isotropic hardening can be disabled by providing a hardening expression that always returns zero.
Example
expression SimpleScalar 1 x 1+.02x
material YLD0418PISO 1 1E4 .25 \
1.241024 1.078271 1.216463 1.223867 1.093105 0.889161 0.501909 0.557173 1.349094 \
0.775366 0.922743 0.765487 0.793356 0.918689 1.027625 1.115833 1.112273 0.589787 \
8 100. \
1 \
0. 0.
Iso-error Map
The following example iso-error maps are obtained via the following script.
from plugins import ErrorMap
# note: the dependency `ErrorMap` can be found in the following link
# https://github.com/TLCFEM/suanPan-manual/blob/dev/plugins/scripts/ErrorMap.py
modulus = 1e4
yield_stress = 10.0
with ErrorMap(
f"material YLD0418P 1 {modulus} {0.4 * modulus} {0.3 * modulus} {0.8 * modulus} {0.7 * modulus} {0.9 * modulus} .25 .3 .2 \
1.241024 1.078271 1.216463 1.223867 1.093105 0.889161 0.501909 0.557173 1.349094 \
0.775366 0.922743 0.765487 0.793356 0.918689 1.027625 1.115833 1.112273 0.589787 \
8 {yield_stress} \
1 \
{0.05 * modulus} {yield_stress}\nexpression SimpleScalar 1 x 1+.01x",
ref_strain=yield_stress / modulus,
ref_stress=yield_stress,
contour_samples=50,
) as error_map:
error_map.contour("yld0418p.uniaxial", center=(-3, 0), size=1, type={"rel", "abs"})
error_map.contour("yld0418p.biaxial", center=(-3, -3), size=1, type={"rel", "abs"})
Last updated