In my linear FEA course we always assumed stress is proportional to strain. But I just saw an Abaqus tutorial using "plastic" material properties — when does linear elasticity stop being good enough?
Linear elasticity works great below the yield point — roughly for mild steel that's about 250 MPa. Once you exceed that, the stress-strain relationship becomes nonlinear and permanent deformation accumulates. In real engineering scenarios — crash analysis, metal forming, pressure vessel overpressure, bolted joint tightening — stresses routinely exceed yield. Using linear material then gives you completely wrong results, and worse, falsely conservative or unconservatively optimistic answers depending on what you're checking.
What about rubber or silicone? Those are also nonlinear but in a very different way, right?
Exactly — and that's a different class of nonlinearity called hyperelasticity. Rubber can stretch to 500% strain and return elastically — no permanent deformation. That behavior cannot be described with any linear or even simple plastic model. It needs a strain energy density function (like Neo-Hookean or Mooney-Rivlin) that captures the huge, recoverable deformation. Hyperelasticity is common for O-rings, gaskets, tires, seals, and biomedical soft tissue simulation.
I see terms like "isotropic hardening" and "kinematic hardening" in Abaqus material definitions. What's the difference, and why does it matter?
Think of the yield surface in stress space as a bubble. With isotropic hardening, the bubble expands uniformly when you apply load beyond yield — the material gets stronger in all directions equally. Simple to implement, works fine for monotonic loading. But with cyclic loading — tension then compression then tension again — reality is different. Kinematic hardening instead translates the bubble without expanding it. After tensile hardening, the bubble shifts so the compressive yield stress decreases — this is the Bauschinger effect. If you're doing any cyclic analysis and use pure isotropic hardening, you'll predict non-existent shakedown behavior. For fatigue problems, kinematic or combined (Chaboche) models are essential.
In isotropic hardening, the yield surface grows uniformly. The von Mises yield condition is:
where \(\bar{\sigma} = \sqrt{\frac{3}{2} \mathbf{s} : \mathbf{s}}\) is the von Mises equivalent stress, \(\mathbf{s}\) is the deviatoric stress tensor, and \(\sigma_y(\bar{\varepsilon}^p)\) is the isotropic hardening function (typically given as a piecewise-linear stress-plastic strain curve from a tensile test).
Kinematic hardening translates the yield surface by a back-stress tensor \(\boldsymbol{\alpha}\):
The back-stress evolution in the Armstrong-Frederick model is:
The \(C\) term drives the back-stress forward; the \(\gamma\) term (recall) pulls it back — this produces a realistic nonlinear kinematic response. Without the recall term (Prager model), the back-stress grows indefinitely and predicts unrealistic ratcheting rates.
The Chaboche model combines isotropic and multiple kinematic components. The total back-stress is a superposition of \(N\) kinematic parts:
Using \(N = 2\) or \(N = 3\) kinematic backstresses gives excellent agreement with cyclic hysteresis loops for metallic alloys. The Chaboche model is the industry standard for fatigue life prediction in aerospace (turbine blades), nuclear (pressure vessels), and automotive powertrain applications.
I always use von Mises for steel, but what about concrete or soil? Do those use the same yield criterion?
No — von Mises (J2 plasticity) is appropriate for metals that yield due to shear regardless of hydrostatic pressure. Concrete and geomaterials are pressure-dependent: they get stronger under compression and weak under tension. Drucker-Prager is the most common smooth pressure-dependent criterion for soil and concrete — it adds a linear dependence on the first stress invariant \(I_1\). Mohr-Coulomb is the classical geotechnical yield criterion with friction angle \(\phi\) and cohesion \(c\). Cam-Clay is used for soft clay consolidation where the yield surface evolves with volumetric plastic strain. For concrete with both cracking and crushing, the Concrete Damaged Plasticity (CDP) model in Abaqus is widely used.
| Yield Criterion | Material | Key Feature | FEM Implementation |
|---|---|---|---|
| von Mises (J2) | Metals, alloys | Pressure-independent; circular in \(\pi\)-plane | Radial return mapping (closed form) |
| Tresca | Metals (conservative) | Max shear stress; hexagonal in \(\pi\)-plane | Corner regions require special treatment |
| Drucker-Prager | Soil, concrete, rock | Linear \(I_1\)-dependence; smooth cone | Straightforward return mapping |
| Mohr-Coulomb | Geomaterials | Friction angle \(\phi\), cohesion \(c\) | Irregular hexagonal pyramid — corners difficult |
| Cam-Clay | Soft clay, silt | Hardening by volumetric plastic strain | Elliptical cap; used in geotechnical FEA |
I need to simulate an O-ring seal under compression. Someone told me to use "Mooney-Rivlin" material — what does that even mean?
Hyperelastic models define material behavior through a strain energy density function \(W\), from which stresses are derived as \(\boldsymbol{\sigma} = \partial W / \partial \mathbf{F}\). The three most common models differ in how \(W\) depends on the deformation invariants \(I_1, I_2, J\). Neo-Hookean uses only \(I_1\) and is good for moderate strains. Mooney-Rivlin adds \(I_2\) dependence — better for strains up to about 100–150%. Ogden uses principal stretch ratios directly — the most accurate for large strains and for fitting complex experimental data (uniaxial + biaxial + shear test simultaneously). For your O-ring, start with Mooney-Rivlin fitted to a uniaxial tension test of the rubber compound.
where \(I_1 = \text{tr}(\mathbf{C})\), \(I_2 = \frac{1}{2}[(\text{tr}\,\mathbf{C})^2 - \text{tr}(\mathbf{C}^2)]\), \(J = \det(\mathbf{F})\), and \(\lambda_i\) are principal stretches. Incompressible rubbers use the near-incompressible formulation with a large bulk-to-shear modulus ratio.
We're analyzing a turbine blade that operates at 850°C. My colleague said we need to include "creep" in the material model — is that the same as plasticity?
Similar idea but fundamentally different mechanism. Plasticity is rate-independent — the permanent strain depends only on stress magnitude, not on how long the load is applied. Creep is rate-dependent — at high temperatures (typically above about 0.4 of the melting temperature in Kelvin), materials flow slowly under sustained stress even below the classical yield stress. A turbine blade loaded at 850°C for 10,000 hours will accumulate significant creep strain that a simple plastic model completely misses. The workhorse model is the Norton power law: creep strain rate \(\dot{\varepsilon}^{cr} = A \sigma^n\) where \(A\) and \(n\) are temperature-dependent material constants. For nickel superalloys at 850°C, \(n\) is typically 5–8.
What's the difference between "time hardening" and "strain hardening" creep — I see both options in Abaqus?
Both relate to the secondary vs. primary creep stages. Time hardening tracks elapsed time \(t\) explicitly — the creep rate decreases with time regardless of accumulated strain: \(\dot{\varepsilon}^{cr} = A \sigma^n t^m\). Strain hardening tracks accumulated creep strain \(\varepsilon^{cr}\) instead: \(\dot{\varepsilon}^{cr} = A \sigma^n (\varepsilon^{cr})^m\). Strain hardening is generally more accurate when the loading history involves stress changes, because the hardening state is better represented by accumulated deformation than by time elapsed. For constant-stress creep tests, both give similar results. For turbine blades with start-stop cycles, strain hardening is preferred.
I'm working on a reinforced concrete structure under seismic loading. My supervisor said to use "CDP" in Abaqus — what makes concrete different from steel in terms of material modeling?
Concrete is tricky because it behaves completely differently in tension and compression. In compression it crushes gradually — quite ductile if confined. In tension it cracks abruptly at about 1/10th the compressive strength. The Concrete Damaged Plasticity (CDP) model handles this by tracking two separate damage variables: a tensile damage variable \(d_t\) (controls stiffness degradation after cracking) and a compressive damage variable \(d_c\) (controls crushing). When concrete cracks and then the crack closes under reversed loading, the model recovers compressive stiffness — this is the "stiffness recovery" parameter. Getting these curves right is the hard part: you need uniaxial tension and compression tests, including the post-peak softening behavior.
The effective stress in Concrete Damaged Plasticity is related to nominal stress through:
where \(d\) is the scalar damage variable (\(0 = \text{undamaged}\), \(1 = \text{fully damaged}\)) and \(\bar{\boldsymbol{\sigma}}\) is the effective (undamaged) stress. Separate damage variables \(d_t\) and \(d_c\) evolve with tensile and compressive plastic strain respectively.
How does the solver actually compute plastic strain increment at each step? Is it just iterating on the stress-strain equations?
The standard algorithm is called return mapping, specifically the radial return algorithm for von Mises plasticity. The idea is elegant: given a strain increment, the solver first computes a "trial elastic stress" assuming the whole increment is elastic. If that trial stress lands inside the yield surface, we're done — it's a purely elastic step. If it lands outside, we have to "return" to the yield surface by computing the plastic strain increment \(\Delta\lambda\) that satisfies the consistency condition \(f = 0\). For von Mises with isotropic hardening, this reduces to a single scalar equation solved in closed form — very efficient. For kinematic hardening or more complex yield criteria, a local Newton iteration is needed at each integration point.
What's a "consistent tangent modulus" — why can't we just use the elastic stiffness matrix?
If you use the elastic stiffness in the global Newton iterations for a plasticity problem, convergence degrades from quadratic to linear — meaning you need many more Newton iterations per load step. The consistent tangent modulus \(\mathbb{C}^{ep}_{consistent}\) is the exact derivative of the stress at the end of the return mapping with respect to the total strain. It's algorithmically consistent with the return mapping, so the global Newton iteration recovers quadratic convergence. In Abaqus UMAT subroutines, providing DDSDDE (the Jacobian of stress w.r.t. strain increment) correctly is the single most impactful thing you can do for convergence performance.
1. Compute trial stress: σ_trial = σ_n + C_e : Δε
2. Compute trial von Mises stress: q_trial = √(3/2 s_trial:s_trial)
3. Check yield: f_trial = q_trial - σ_y(ε_p_n)
4. If f_trial ≤ 0 → elastic step, return σ_n+1 = σ_trial
5. Else → plastic step:
Solve: f(Δλ) = q_trial - 3μΔλ - σ_y(ε_p_n + Δλ) = 0
Update: ε_p_n+1 = ε_p_n + Δλ
n = s_trial / ‖s_trial‖
σ_n+1 = σ_trial - 2μΔλ n (radial return)
6. Compute consistent tangent: C_ep