TimberPD
Timber Plastic-Damage Model
References
Syntax
material TimberPD (1) (2...7) (8...10) (11...19) (20) (21) (22) (23) (24) (25) (26) [27]
# (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...19) double, nine yield stress
# (20) double, h
# (21) double, r_t^0
# (22) double, b_t, [0,1]
# (23) double, m_t
# (24) double, r_c^0
# (25) double, b_c, [0,1]
# (26) double, m_c
# [27] double, density, default: 0.0
Remarks
The yield stress shall be arranged in the following order: , , , , , , , , .
The original paper documents a comprehensive procedure to determine hardening parameter .
Damage
The damage evolutions are identical to the original formulation but with different notations.
The final stress is calculated as
Tension Damage Evolution
The parameter will be clamped to .
Compression Damage Evolution
The parameter will be clamped to .
View and edit parameters to see how they affect the damage evolution.
Recording
This model supports the following additional history variables to be recorded.
variable label
physical meaning
DT
tensile damage
DC
compressive damage
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
with ErrorMap(
"""material TimberPD 1 \
9936 345 345 690 125.9 690 \
.41 .37 .41 \
20 40 2 4 2 4 4 4 4 \
12.9 \
1 .98 .3 \
1 .95 2""",
ref_strain=1e-2,
ref_stress=5,
contour_samples=30,
) as error_map:
error_map.contour("timberpd.uniaxial", center=(-2, 0), size=2, type={"rel", "abs"})
error_map.contour("timberpd.biaxial", center=(-2, -2), size=2, type={"rel", "abs"})
Last updated