| name | fea-nonlinear |
| description | Nonlinear FEA — geometric nonlinearity (large deformation), material nonlinearity (plasticity, hyperelasticity), contact mechanics, Newton-Raphson convergence, arc length method. |
| metadata | {"priority":7,"promptSignals":{"phrases":["nonlinear FEA","large deformation","plasticity","contact FEA","Newton-Raphson","material nonlinearity","hyperelastic","arc length"],"minScore":4}} |
Nonlinear FEA — Complete Skill
Types of Nonlinearity
Geometric Nonlinearity (NLGEOM)
Large displacements/rotations → stiffness changes with deformation
When required: δ > 10% of characteristic length; buckling analysis; structures with tensile stiffening
Indicators: cables, membranes, thin shells, snap-through problems
ANSYS: NLGEOM,ON | Abaqus: NLGEOM=YES (step definition)
Updated Lagrangian: stiffness updated using deformed configuration at each step
Total Lagrangian: reference to original configuration (Abaqus default for rubbers)
Material Nonlinearity
Stress-strain relationship is nonlinear
Types: plasticity (metals), hyperelasticity (rubber), viscoelasticity, creep, concrete
Contact Nonlinearity
Contact status (open/closed) changes during loading → highly nonlinear
Friction introduces path-dependence
Plasticity (von Mises, Bilinear)
Material Models
Bilinear isotropic hardening (BISO):
σ = E×ε (elastic, σ < Sy)
σ = Sy + E_T×(ε - Sy/E) (plastic, E_T = tangent modulus)
E_T = (Su - Sy)/(ε_u - Sy/E) [from tensile test]
Abaqus: *PLASTIC data pairs (σ_true, ε_pl_true)
True vs. engineering stress/strain:
σ_true = σ_eng × (1 + ε_eng)
ε_true = ln(1 + ε_eng)
Use true values for plasticity input!
Multilinear isotropic hardening (MISO): piecewise linear σ-ε (from test data)
Kinematic hardening: for cyclic loading (Bauschinger effect)
Chaboche: nonlinear kinematic + isotropic hardening — best for fatigue
Convergence Behavior
Yielding → rapid stiffness change → Newton-Raphson may diverge
Use: smaller load steps, line search, arc length
Equivalent Plastic Strain (PEEQ)
PEEQ = ∫√(2/3 × ε̇_pl:ε̇_pl)dt
PEEQ > 0 → material has yielded
Critical when ductile fracture limit (typically ε_fracture ≈ 0.3-1.5 for steel)
Contact Mechanics in FEA
Contact Types
Frictionless contact: tangential slip allowed, no tangential force
Frictional contact: Coulomb friction, μ × P_n = τ_limit
Bonded (tied): no separation or slip (glue simulation)
Rough contact: no slip (infinite friction)
Standard contact (Abaqus): allows overclosure penalty
Hard contact: no penetration enforced
Formulations
Penalty method: contact stiffness k_p resists penetration g (g < 0 = penetration)
F_contact = k_p × g (penalty force)
k_p too small → excess penetration; too large → convergence issues
Typical: k_p ≈ E × element size
Augmented Lagrangian: iteratively adjusts contact pressure → better accuracy, slower
Lagrange multiplier: exact no-penetration → adds DOFs, zero pivot risk
Contact pair: master surface (rigid or stiffer) + slave surface (finer mesh)
Self-contact: for folding, collapse simulations
Contact Outputs
Contact pressure (CPRESS), gap (COPEN), sliding distance (CSLIP), friction force
Newton-Raphson Method
Iterative solution of: R(d) = F_ext - F_int(d) = 0
Each iteration i:
[K_T(d_i)] × Δd_i = R(d_i)
d_{i+1} = d_i + Δd_i
Convergence: ||R_{i+1}|| / ||R_0|| < ε_tol (force residual norm, typ. 0.5%)
Or: ||Δd_{i+1}|| / ||Δd_0|| < ε_disp (displacement norm, typ. 0.5%)
Failed convergence causes:
- Too large load step → bisect load increment
- Poor initial guess → use load ramping (substeps)
- Snap-through → use arc length method
- Contact chattering → reduce stabilization, check contact stiffness
- Mesh distortion → large plastic strain → remesh or Eulerian approach
Load Stepping (Substeps)
Apply total load in increments: F = α × F_total, α = 0 to 1
ANSYS: NSUBST,10,100,5 (initial/max/min substeps)
Abaqus: *STEP with NLGEOM, INC=100, MAXINC=200
Arc Length Method (Riks)
For snap-through/snap-back, post-buckling behavior
Controls: arc length ds = √(Δλ² + {Δu}ᵀ{Δu}/l² )
l = scaling factor (user input)
Allows load parameter λ to decrease → traces post-buckling path
Abaqus: *STATIC, RIKS | ANSYS: ARCLEN,ON
When to use: structure can carry load after initial buckling (cables, thin shells, composites)
Hyperelasticity (Rubber, Soft Materials)
Strain Energy Density Functions
Neo-Hookean: W = C₁(I₁ - 3) + 1/D₁(J-1)²
C₁ = μ/2, D₁ = 2/κ (μ = shear modulus, κ = bulk modulus)
Mooney-Rivlin (2-param): W = C₁(I₁-3) + C₂(I₂-3) + compressibility
Good for strains up to 100%
Ogden: W = Σ(μ_p/α_p)(λ₁^α_p + λ₂^α_p + λ₃^α_p - 3)
Most accurate for large strains (up to 700%)
Yeoh: W = C₁(I₁-3) + C₂(I₁-3)² + C₃(I₁-3)³
Good extrapolation beyond test data range
Material Testing Requirements
Need at minimum: uniaxial tension test
Better: uniaxial + biaxial + planar shear (pure shear)
Curve fitting: software fits W constants to test data
Explicit vs. Implicit
Implicit (standard): unconditionally stable, large time steps, iterative
Best for: quasi-static, low-speed dynamics
Explicit (LS-DYNA, Abaqus/Explicit): conditionally stable, tiny time steps Δt < L_min/c_wave
Best for: impact, crash, wave propagation, short-duration dynamics
No iteration — each step direct calculation — scales linearly with DOF
Δt_stable = L_min/(c × √3) for 3D elements (c = √(E/ρ))
Artificially increase ρ (mass scaling) to increase Δt — check energy ratio
Post-Processing Nonlinear Results
- Check PEEQ: plastic zone size and location
- Check contact pressure: verify physical contact area
- Check energy balance: external work ≈ strain energy + dissipated (plastic) energy
- Artificial energy (hourglass) < 1% of total energy
- Load-displacement curve: look for stiffness changes, load drops
Output
Provide: nonlinearity type, material model + parameters, solver setting (NR substeps or Riks), contact formulation, convergence tolerance, PEEQ limit check, energy balance check.