SalehaniIraniTraction#
Source: models/solid_mechanics/traction_separation_law/SalehaniIraniTraction.py
Assemble 3D coupled exponential cohesive traction of Salehani & Irani from an externally updated damage: \(T_n = a_n b_n (1 - d) + K_\text{pen}\delta_n^\text{pen}\) and \(T_{si} = a_t b_{si} (1 - d)\), where \(a_n = e T_{\max,n}\), \(a_t = \sqrt{2e} T_{\max,t}\), \(b_n = \delta_n / \delta_{u0,n}\), and \(b_{si} = \delta_{si} / (\sqrt{2} \delta_{u0,t})\).
Note:
normal_characteristic_length (\(\delta_{u0,n}\)) and
tangential_characteristic_length (\(\delta_{u0,t}\)) must match the parameters
configured in the corresponding upstream SalehaniIraniDamage.
For calibrated parameters, wire both models to the same
ScalarConstantParameter outputs. For fixed parameters, both models may reference
the same [Tensors] definitions.
Inputs#
damage—input·Scalar· requiredCurrent damage
normal_separation—input·Scalar· requiredNormal separation (typically the Macaulay-positive part of the normal jump)
normal_penetration—input·ScalarOptional normal penetration (typically the Macaulay-negative part of the normal jump). When supplied, the penalty stiffness times this is added to the normal traction as a penalty term resisting interpenetration.
tangential_separation_1—input·Scalar· requiredFirst tangential separation
tangential_separation_2—input·Scalar· requiredSecond tangential separation
Outputs#
traction—output·Vec· requiredTraction vector
Parameters#
normal_characteristic_length—parameter·Scalar· requiredNormal characteristic length (must match SalehaniIraniDamage)
tangential_characteristic_length—parameter·Scalar· requiredTangential characteristic length (must match SalehaniIraniDamage)
normal_strength—parameter·Scalar· requiredNormal strength (peak normal traction)
shear_strength—parameter·Scalar· requiredShear strength (peak shear traction)
penalty_stiffness—parameter·Scalar· default0Penalty stiffness