Gradient-Enhanced Plasticity
println("Julia ", VERSION)Julia 1.12.6
Overview
Local softening plasticity predicts mesh-dependent strain localization: as the mesh is refined, the plastic zone collapses onto a single element. Gradient-enhanced plasticity (de Borst & Mühlhaus 1992; Peerlings et al. 1996) regularizes this by making the equivalent plastic strain nonlocal. The nonlocal field κ̄ is the solution of an implicit Helmholtz equation
\[\bar\kappa - l^2 \nabla^2 \bar\kappa = \kappa , \qquad \partial\bar\kappa/\partial n = 0\]
where l is an internal length. The regularized κ̄ enters the yield stress, so localization smears out over a width ~l instead of a single element.
using Rasmah
n = 201
dx = 1.0 / (n - 1)
x = range(0, 1; length = n)
κ = cos.(π .* x) # a smooth "local plastic strain" field
l = 0.1
κ̄ = helmholtz_regularize(κ, l; dx = dx)
println("peak |κ| = ", round(maximum(abs, κ); digits = 3))
println("peak |κ̄| = ", round(maximum(abs, κ̄); digits = 3), " (regularization reduces the peak)")peak |κ| = 1.0
peak |κ̄| = 0.912 (regularization reduces the peak)
The Helmholtz equation is linear with constant coefficients, so cos(πx) is an eigenfunction: κ̄ = cos(πx)/(1 + l²π²). The regularized field is the local field attenuated by 1/(1 + l²π²) — the longer the internal length l, the more smoothing:
an = κ ./ (1 + l^2 * π^2)
println("max |κ̄ − cos(πx)/(1+l²π²)| = ", round(maximum(abs.(κ̄ .- an)); sigdigits = 3))max |κ̄ − cos(πx)/(1+l²π²)| = 0.00219
Next steps
- J2 plasticity — the local plasticity this regularizes.
- Graded-lattice (infill) topology optimization — another length-scale-aware design method.
