Nonlinear Structural Analysis (J2 Plasticity)
When stress exceeds yield — permanent deformation, reshaping, and residual stress.
1. What is it?
When you push a material past its yield strength, it deforms permanently. Nonlinear structural analysis tracks this plastic deformation:
- J2 plasticity with isotropic hardening: the yield surface grows uniformly as plastic strain accumulates. "This steel bracket yielded during overload — what's the final shape and residual stress?"
- Return map algorithm: at each load step, the solver corrects the stress state back to the yield surface if it overshoots.
- Consistent tangent: ensures quadratic convergence in the Newton-Raphson loop.
2. When do I use it?
| Use when | Don't use for |
|---|---|
| Stress exceeds yield strength | Small strains within elastic range (use Static Structural) |
| Metal forming / stamping | Very large strains (use Large-Strain Kinematics) |
| Plastic collapse of structures | Dynamic events (use Explicit Dynamics) |
| Residual stress after unloading | Contact between parts (use Contact) |
3. The flow — every action described
Step 1: Design (geometry)
What you do: Draw your part or import a CAD file.
How:
- Click Design tab
- Pick a primitive (rectangle, circle, L-beam, etc.) or
- Click Import → choose
.step,.iges,.stl, or.inp
Why: The solver needs to know the shape. Start simple — you can add holes and fillets later.
Step 2: Boundary (material + supports + loads)
What you do: Tell FEA Lab what it's made of, how it's held, and what pushes.
How:
- Click Boundary tab
- Material: Pick from the library (Steel, Aluminum, Titanium, etc.) or define your own (E, ν, ρ, yield strength σY, hardening modulus H)
- Supports (BCs): Click faces/edges that are fixed
- Loads: Click faces/edges and apply force or pressure
Why: The solver needs to know what's held still and what's pushing. Without both, the answer is meaningless.
Step 3: Mesh
What you do: Cut the part into small cells.
How:
- Click Mesh tab
- Adjust mesh size (smaller = more accurate but slower)
- Click Generate
Why: The solver works on tiny triangles/quads. More cells = better answer but slower.
Step 4: Simulate → Nonlinear
What you do: Run the nonlinear solver and read the answer.
How:
- Click Simulate tab
- Select Nonlinear (J2 Plasticity)
- Set number of load steps (more steps = better convergence near yield)
- Click Run
- Wait for convergence (seconds to minutes)
Why: This is where the math happens. The solver applies the load in increments, correcting plastic state at each step.
Step 5: Results
What you do: Read the plastic deformation and residual stress.
How:
- Click Results tab
- View plastic strain contour — where did yielding occur?
- View von Mises stress — is it pinned at σY?
- View displacement — permanent deformation after unloading
Why: The plastic strain contour shows you where the material yielded. The stress contour shows redistribution.
4. Reading your results
Plastic strain
| Color | Meaning |
|---|---|
| Blue | No yielding (elastic) |
| Red | Significant plastic deformation |
Good: Plastic strain is localized and within acceptable limits. Bad: Plastic strain is widespread — the part may need redesign.
von Mises stress (plastic)
| Color | Meaning |
|---|---|
| Blue | Below yield (elastic) |
| Red | At or near yield (plastic flow) |
Good: Stress is redistributed and within acceptable limits. Bad: Stress exceeds ultimate tensile strength — fracture likely.
Residual stress
After unloading, the stress that remains in the part due to plastic deformation.
5. Boundaries of truth
What's validated
| Case | Reference | Error |
|---|---|---|
| J2 return map (uniaxial) | Closed-form σ = σY + H·ε_p | < 1% |
| Consistent tangent symmetry | Analytical | < 1e-4 |
| Perfect plasticity (isotropic) | Exact | Machine precision |
| Incompressible plastic flow | trace(ε_p) = 0 | < 1e-19 |
What's NOT covered
- Large deformations — geometry changes significantly under load (see Large-Strain Kinematics)
- Contact — two parts touching (see Contact)
- Dynamic loads — forces that change with time (see Dynamics)
- Thermal effects — heat causing expansion (see Thermal)
- Anisotropic hardening — Bauschinger effect not yet implemented
- Damage and fracture — no ductile damage model
Common mistakes
| Mistake | Fix |
|---|---|
| Forgot to declare yield strength | Add yield strength and hardening modulus to material |
| Too few load steps | Increase load steps — yielding needs gradual application |
| No hardening modulus | Add H = 0 for perfect plasticity, H > 0 for hardening |
| Mesh too coarse in plastic zone | Refine mesh where yielding is expected |
| Point load on a mesh node | Use a small face instead — Saint-Venant principle |
See also
- [Static Structural](static-structural.md) — for elastic analysis
- [Large-Strain Kinematics](large-strain.md) — for very large deformations
- [Contact](contact.md) — for touching parts
- [Fracture](fracture.md) — for crack growth
Keep exploring
Open the interactive workspace — mesh, solve, validate and export in the browser.
Start a guided solve