SalehaniIraniTraction¶
Source: models/solid_mechanics/traction_separation_law/SalehaniIraniTraction.py
3D coupled exponential cohesive law of Salehani & Irani with internal damage state.
Computes \(d_\text{trial} = 1 - \exp(-x)\) where \(x = b_n + b_{s1}^2 + b_{s2}^2\), caps it for
irreversibility against the previous-step value
(auto-declared via history_name), and assembles \(T_i = a_i b_i (1 - d)\).
For monotonic loading this is exactly equivalent to the original \(T_i = a_i b_i \exp(-x)\); under
unloading the damage cap freezes the softness at its historical
peak. The internal tangential characteristic length is \(\sqrt{2}\,\delta_{u0,t}\). If
normal_penetration is supplied, \(K_\text{pen}\,\delta_n^\text{pen}\)
is added to \(T_n\) (penalty_stiffness becomes required).
Inputs¶
normal_separation—input·Scalar· requiredNormal separation (typically the Macaulay-positive part of the normal jump)
normal_penetration—input·ScalarOptional normal penetration. When supplied, the penalty stiffness times this is added to the normal traction as a penalty term resisting interpenetration. Requires
penalty_stiffnessto be supplied as well.tangential_separation_1—input·Scalar· requiredFirst tangential separation
tangential_separation_2—input·Scalar· requiredSecond tangential separation
Outputs¶
traction—output·Vec· requiredTraction Vec
damage—output·Scalar· requiredDamage scalar (current step, irreversibility-capped)
Parameters¶
normal_characteristic_length—parameter·Scalar· requiredNormal characteristic length (raw user input)
tangential_characteristic_length—parameter·Scalar· requiredTangential characteristic length (raw user input; the internal value is sqrt(2) times this)
normal_strength—parameter·Scalar· requiredNormal strength (peak normal traction)
shear_strength—parameter·Scalar· requiredShear strength (peak shear traction)
penalty_stiffness—parameter·Scalar· default0Penalty stiffness used to resist interpenetration. Required when
normal_penetrationis supplied; ignored otherwise.