Viscoplasticity and Creep
Overview
At high temperature, metals and ceramics creep: they accumulate inelastic strain over time under a constant load. Rate-dependent (viscoplastic) J2 theory models this with an equivalent viscoplastic strain rate, either Norton power-law creep
\[\dot{\bar\varepsilon} = A\, q^n\]
or Perzyna overstress creep \dot{\bar\varepsilon} = γ ⟨q/σ_y − 1⟩^m, where q is the von Mises equivalent stress and σ_y the yield stress. Rasmah integrates the backward-Euler return map and marches the full FEM system in time.
using RasmahThe elastic limit
With A = 0 there is no creep: a single step must reproduce linear elasticity exactly.
E, ν = 1e3, 0.0
m = tetrahedralize_box(1.0, 1.0, 1.0, 4, 2, 2)
n = size(m.nodes, 2)
fixed = Int[]; loadnodes = Int[]
for i in 1:n
m.nodes[1, i] ≈ 0.0 && append!(fixed, 3i - 2, 3i - 1, 3i)
m.nodes[1, i] ≈ 1.0 && push!(loadnodes, i)
end
forces = zeros(3n)
for i in loadnodes
forces[3i - 2] = 1.0 / length(loadnodes)
end
u_el = solve(Elasticity(), m, Material(youngs_modulus = E, poisson_ratio = ν); fixed = fixed, loads = forces)
u_vp = solve(Viscoplasticity(), m, Material(youngs_modulus = E, poisson_ratio = ν);
fixed = fixed, loads = forces, nsteps = 1, dt = 1.0, kind = :norton, A = 0.0, n = 1.0)
println("‖u_vp − u_el‖ = ", maximum(abs, u_vp.us[end] .- ustrip.(u_el)))‖u_vp − u_el‖ = 8.890457814381136e-18
Norton creep accumulates
With A > 0, the same constant load produces a displacement that grows step by step — creep:
res = solve(Viscoplasticity(), m, Material(youngs_modulus = E, poisson_ratio = ν);
fixed = fixed, loads = forces, nsteps = 20, dt = 1.0, kind = :norton, A = 1e-4, n = 1.0)
probe = 3 * loadnodes[1] - 2
println("u_x grows: ", round(res.us[1][probe]; digits = 6), " → ", round(res.us[end][probe]; digits = 6))u_x grows: 0.0 → 0.00351
Verification
With A = 0 the viscoplastic solve matches elasticity to machine precision, and with A > 0 the displacement increases monotonically with time — the two defining behaviours of rate-dependent flow.
Next steps
- Plasticity (J2) — the rate-independent limit.
- Shape-memory alloys — a different inelastic mechanism.
