Abaqus Contact Mechanics: General Contact, Friction, and Wear Simulation
A guide to contact modeling in Abaqus covering general contact formulation, surface-to-surface and node-to-surface discretization, friction models, contact pressure-overclosure relationships, wear simulation with UMESHMOTION, and troubleshooting contact convergence.

Abaqus Contact Mechanics: General Contact, Friction, and Wear Simulation
Contact modeling in FEA is honestly a pain. I've spent more time debugging contact convergence issues than I care to admit. But Abaqus makes it easier than most — its general contact feature automatically detects contact pairs, which saves you from manually defining every possible interaction in a complex assembly. Let me walk you through how I set up contact, choose friction models, and deal with the common issues that drive people crazy.
Contact Formulations
General Contact (Abaqus/Standard)
- Module: Interaction > Create > General Contact (Standard)
- General contact:
- Automatically detects all possible contact pairs
- No need to manually define each pair
- Uses default contact domain (all external surfaces)
- Included domain:
- All with self: All surfaces can contact themselves (self-contact)
- All with all: All surfaces can contact all other surfaces
- Selected: Specify which surface pairs to include/exclude
- Advantages:
- Simplifies setup for complex assemblies
- Handles self-contact (e.g., folding, wrinkling)
- Automatically handles contact changes during analysis
Surface-to-Surface Contact
- Module: Interaction > Create > Surface-to-Surface Contact (Standard)
- Define:
- Master surface: Stiffer or coarser mesh surface
- Slave surface: Softer or finer mesh surface
- Discretization:
- Node-to-Surface: Slave nodes constrained to master surface (faster, less accurate)
- Surface-to-Surface: Both surfaces considered (slower, more accurate, better stress)
- When to use surface-to-surface instead of general:
- Specific pair needs special properties
- Need precise contact pressure at specific location
- Need different friction for different pairs
Contact Formulation
- Penalty method (default):
- Contact constraint enforced via penalty stiffness
- Allows small penetration
- kp = default (auto-calculated based on material stiffness)
- Can scale: kp = 1.0 (default), 0.1 (softer), 10.0 (stiffer)
- Augmented Lagrange:
- Iteratively improves penalty enforcement
- Reduces penetration to near zero
- More iterations, more accurate
- Direct (Lagrange multiplier):
- Exact contact constraint (no penetration)
- Adds DOF to system
- Can cause convergence issues (chattering)
Friction Models
Coulomb Friction
- Interaction Property > Contact > Tangential Behavior > Penalty
- Set friction coefficient (μ):
| Material Pair | μ (dry) | μ (lubricated) | |---------------|---------|----------------| | Steel-Steel | 0.15-0.30 | 0.05-0.10 | | Steel-Aluminum | 0.20-0.35 | 0.08-0.12 | | Steel-Brass | 0.20-0.35 | 0.10-0.15 | | Rubber-Steel | 0.30-0.60 | 0.10-0.20 | | Aluminum-Aluminum | 0.25-0.40 | 0.08-0.12 | | Concrete-Steel | 0.40-0.60 | - |
- Shear stress limit:
- τmax = μ × p (Coulomb)
- But: τ ≤ τlimit (shear stress limit, e.g., σy/√3)
- Prevents unrealistic shear at high pressure
Static-Kinematic Exponential Decay
- For materials with different static and kinetic friction:
- μs: Static friction (higher, at zero slip rate)
- μk: Kinetic friction (lower, at high slip rate)
- Decay coefficient: d (rate of transition)
- μ = μk + (μs - μk) × exp(-d × γslip)
- Use for: Brake pads, clutch plates, tire-road contact
Rough (No Slip)
- Tangential Behavior > Rough
- Once contact is established, no sliding allowed
- Equivalent to μ = ∞
- Use for: Bolted joints (preloaded), bonded interfaces
Normal Behavior
Hard Contact
- Normal Behavior > Hard Contact
- Properties:
- No penetration (p > 0 only when gap = 0)
- No tension (p = 0 when gap > 0)
- Pressure transfers only in compression
- Default for most metal-to-metal contact
Soft Contact
- Normal Behavior > Soft Contact
- Pressure-overclosure relationship:
- Linear: p = k × (gap - gap0) for gap < gap0
- Exponential: p = p0 × exp(-k × gap)
- Tabular: Custom pressure vs. overclosure table
- Use for:
- Rubber seals (soft contact)
- Foam materials (compressible)
- Gaskets (nonlinear stiffness)
Pressure-Overclosure Table
| Overclosure (mm) | Pressure (MPa) | |------------------|----------------| | 0.000 | 0 | | 0.001 | 5 | | 0.005 | 20 | | 0.010 | 50 | | 0.020 | 100 |
Contact Damping
- Interaction Property > Contact > Damping
- Set:
- Normal damping: cn (prevents chattering)
- Tangential damping: ct (prevents stick-slip oscillation)
- Typical values:
- cn = 0.01-1.0 (fraction of critical damping)
- ct = 0.001-0.1
- Damping force: Fd = c × vrel (relative velocity)
- Use when:
- Contact chattering occurs
- Stick-slip oscillation
- Contact separation instability
Wear Simulation (UMESHMOTION)
Setting Up Wear Analysis
-
Wear model: Archard wear law
- Vwear = k × F × s / H
- V: Wear volume (mm³)
- k: Wear coefficient (dimensionless)
- F: Normal force (N)
- s: Sliding distance (mm)
- H: Material hardness (MPa)
-
Implement in Abaqus:
- Write UMESHMOTION subroutine (Fortran)
- Calculate wear depth per increment
- Update surface geometry (mesh motion)
-
UMESHMOTION subroutine:
SUBROUTINE UMESHMOTION(UREF,ULUMPS,COORDS,NDOF,LNODE,NNODES, 1 JGTYPE,TIME,DTIME,UMAT,AMESH,NDIM,JSTEP,JCYCLE) C C Calculate wear depth based on contact pressure and slip C DIMENSION UREF(NDOF),ULUMPS(NNODES,NDOF),COORDS(NNODES,NDIM) C C Get contact pressure (CPRESS) and slip (CSLIP) C Calculate wear depth: dwear = k * p * ds / H C Apply to UREF(1) (normal direction) C RETURN END -
Analysis setup:
- Step > Static, General (NLGEOM ON)
- Multiple steps: Each step = one wear cycle
- Adaptive mesh domain: Select contact surface
- UMESHMOTION: Specify subroutine
-
Results:
- Wear depth: Contour on contact surface
- Geometry evolution: Surface shape changes over cycles
- Pressure redistribution: As surface wears, pressure redistributes
Contact Output
Field Output
- Contact variables:
- CPRESS: Contact pressure (MPa)
- CSHEAR: Shear stress at contact (MPa)
- COPEN: Contact opening (gap, mm)
- CSLIP: Total slip distance (mm)
- CSTATUS: Contact status (0=open, 1=closed)
- View:
- Contour on contact surface
- Check for high pressure (may cause yielding)
- Check for open gaps (may indicate separation)
History Output
- Contact force:
- CNAREA: Contact area
- CFN: Normal contact force
- CFS: Shear contact force
- At specific contact nodes:
- Track pressure over time
- Track slip over time
Contact Troubleshooting
Chattering (Rapid Open-Close)
Symptom: Contact status alternates between open and closed every increment. Solver struggles to converge. Fix:
- Add contact damping (cn = 0.1)
- Use penalty instead of Lagrange formulation
- Refine mesh at contact (smaller elements = smoother contact)
- Reduce increment size
Excessive Penetration
Symptom: Slave nodes penetrate master surface significantly. Fix:
- Increase penalty stiffness (kp scale factor = 10)
- Use augmented Lagrange formulation
- Refine slave mesh (finer mesh = less penetration)
- Check master/slave assignment (master should be stiffer)
No Contact Detected
Symptom: Bodies should be in contact but COPEN shows gap. Fix:
- Check initial geometry (are surfaces actually touching?)
- Adjust contact domain (ensure both surfaces are included)
- Use contact stabilization (auto-stabilize initial contact)
- Check normal directions (surface normals should point toward each other)
Stick-Slip Oscillation
Symptom: Contact alternates between stick and slip, causing noise in results. Fix:
- Add tangential damping (ct = 0.01)
- Use smooth friction transition (static-kinetic decay)
- Refine mesh at contact
- Use implicit dynamic step (instead of static)
Best Practices
- Mesh quality at contact: Refine both surfaces, similar element sizes
- Master/slave selection: Master = stiffer, coarser; Slave = softer, finer
- Initial contact: Ensure surfaces are initially touching or very close
- Contact stabilization: Use for initial contact establishment
- Friction: Start with Coulomb, refine if needed
- Penalty stiffness: Use default, increase if penetration is excessive
- Output: Always check CPRESS, COPEN, and CSTATUS
- Verification: Check that contact forces balance applied loads
Wrapping Up
Contact is one of those things where experience really matters. I've found that starting with general contact and penalty formulation solves 80% of problems. The other 20% — chattering, penetration, stick-slip — those need contact damping, refined meshes, or a different formulation. Always check CPRESS and COPEN in your results. If you see nodes penetrating the master surface, bump up the penalty stiffness. If contact keeps opening and closing, add some damping. And if you're doing wear simulation with UMESHMOTION, test it on a simple model first — it's powerful but tricky to get right.
Source Verification
More Abaqus Guides
workflow
Abaqus Composite Material Analysis: Laminate Modeling, Damage, and Progressive Failure
12 min read
workflow
Abaqus/Explicit Dynamic Analysis: Crash, Drop Test, and High-Speed Impact Simulation
13 min read
workflow
Abaqus Fracture Mechanics: XFEM, Cohesive Zone, and J-Integral for Crack Propagation
12 min read
workflow
Abaqus Nonlinear FEA: Plasticity, Large Deformation, and Solver Convergence
13 min read
Related workflow Guides
Similar workflow content for other CAD tools
Allplan
•workflow
Allplan BIM Workflow: From 2D Drawings to 3D Building Models and IFC Export
13 min read
Allplan
•workflow
Allplan IFC Export and BIM Collaboration: Coordination View, Clash Detection, and Multi-Platform Workflow
12 min read
Allplan
•workflow
Allplan Reinforcement Detailing: 3D Rebar Modeling, Schedules, and CNC Export
13 min read
Allplan
•workflow
Allplan Visual Scripting: Parametric Design Automation Without Coding
12 min read