Shape-Memory Alloys (Pseudoelasticity)
Overview
Shape-memory alloys such as Nitinol recover large strains after unloading — not because they stay elastic, but because a stress-induced martensitic transformation stores and releases deformation reversibly. The Auricchio model (Auricchio & Taylor 1997; Brinson 1993) splits the total strain into an elastic part and a transformation part
\[\varepsilon = \varepsilon_{el} + \varepsilon_L \xi, \qquad \sigma = E(\varepsilon - \varepsilon_L \xi)\]
where ξ ∈ [0,1] is the martensite volume fraction and ε_L the maximum transformation strain. Transformation advances between four critical stresses:
\[\text{forward (A→M):}\ |\sigma| = \sigma_{MS} + (\sigma_{MF}-\sigma_{MS})\xi, \qquad \text{reverse (M→A):}\ |\sigma| = \sigma_{AS} - (\sigma_{AS}-\sigma_{AF})\xi\]
The result is the flag-shaped hysteresis loop that makes SMAs useful as dampers, stents and actuators.
using RasmahA loading–unloading cycle
Create a model and drive it through a monotone strain path that loads past the finish stress and unloads back to zero, then read back the stress–strain loop.
sma = SMAModel(; E=7e10, εL=0.05, σMS=5e8, σMF=6e8, σAS=3e8, σAF=2e8)
εs = vcat(range(0.0, 0.06; length = 100), range(0.06, 0.0; length = 100))
_, σs = sma_cycle(sma, εs)
println("peak stress = ", round(maximum(σs) / 1e6; digits = 1), " MPa")peak stress = 700.0 MPa
Verification — the flag-shaped loop
The model’s fingerprints are the four transformation stresses. On loading the stress must plateau at σMS → σMF and on unloading at σAS → σAF; the loop encloses a finite area (energy dissipated per cycle):
loading = σs[1:100]
unloading = σs[101:200]
println("loading plateau ≈ ", round(sum(loading[end-20:end]) / 20 / 1e6; digits = 1), " MPa (σMF = 600 MPa)")
println("unloading plateau ≈ ", round(sum(unloading[1:20]) / 20 / 1e6; digits = 1), " MPa (σAS = 300 MPa)")
# hysteresis area (integrate with the trapezoid rule)
area = sum(((σs[i] + σs[i+1]) / 2) * (εs[i+1] - εs[i]) for i in 1:(length(εs)-1))
println("dissipated energy/cycle = ", round(abs(area) / 1e6; digits = 2), " MJ/m³")loading plateau ≈ 628.9 MPa (σMF = 600 MPa)
unloading plateau ≈ 361.9 MPa (σAS = 300 MPa)
dissipated energy/cycle = 15.0 MJ/m³
The area is nonzero and positive, confirming irreversible energy dissipation — the source of the material’s damping.
Next steps
- Plasticity (J2) — the rate-independent inelastic counterpart.
- Viscoplasticity and creep — rate-dependent inelastic flow.
