Claude-skill-registry abaqus-contact-analysis

Analyze multi-body contact. Use when user mentions parts touching, friction between surfaces, bolt-plate contact, press fit, or assembly with contact.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/abaqus-contact-analysis" ~/.claude/skills/majiayu000-claude-skill-registry-abaqus-contact-analysis && rm -rf "$T"
manifest: skills/data/abaqus-contact-analysis/SKILL.md
source content

Abaqus Contact Analysis Workflow

This skill guides multi-body contact analysis setup. It's a workflow skill - use it when analyzing assemblies where surfaces touch, slide, or separate.

When to Use This Skill

Route here when user mentions:

  • "Parts touching each other"
  • "Contact between surfaces"
  • "Friction between parts"
  • "Bolt and plate contact"
  • "Press fit / interference fit"
  • "Multi-body assembly"
  • "Parts sliding on each other"
  • "Impact analysis"
  • "Bearing contact"

Route elsewhere:

  • Single-body analysis →
    /abaqus-static-analysis
  • Just defining contact properties →
    /abaqus-interaction
  • Only boundary conditions →
    /abaqus-bc

Prerequisites

Before contact analysis setup:

  1. Separate parts exist (at least two bodies)
  2. Parts are positioned in assembly with appropriate gap/interference
  3. Material properties defined for all parts
  4. Basic understanding of which surfaces will touch

Workflow Steps

Step 1: Identify Contact Pairs

Ask the user:

  • Which surfaces will touch?
  • Is there an initial gap or interference?
  • Will surfaces slide or remain bonded?

Step 2: Determine Master vs Slave

RoleShould Be
MasterStiffer material, coarser mesh
SlaveSofter material, finer mesh

Rule: Slave surface nodes cannot penetrate master surface.

Step 3: Choose Contact Type

ScenarioApproach
Permanently bonded surfacesTie constraint (no slip/separation)
Sliding with frictionSurface-to-surface contact
Frictionless contactSurface-to-surface, no tangential
Many bodies touchingGeneral contact (auto detection)
Surface folding on itselfSelf-contact

Step 4: Define Contact Property

Configure normal behavior:

  • Hard contact - Most cases, no penetration allowed
  • Soft contact - For rubber, foam, or gradual engagement

Configure tangential behavior (if not tied):

  • Frictionless - Lubricated surfaces
  • Friction (Coulomb) - Specify coefficient

Step 5: Set Friction Coefficient

InterfaceTypical Value
Frictionless0.0
Lubricated steel0.1-0.2
Dry steel-on-steel0.3-0.5
Rubber on metal0.5-0.8

Ask user if unsure about their specific interface.

Step 6: Create Analysis Step

Contact analysis typically requires:

  • Nonlinear geometry (nlgeom=ON)
  • Smaller initial increment (0.1)
  • More increments allowed (100+)
  • Minimum increment for convergence (1e-8)

Step 7: Request Contact Outputs

Essential output variables:

  • CSTRESS - Contact pressure and shear
  • CDISP - Contact displacement
  • COPEN - Gap opening distance
  • CSLIP - Accumulated slip

Key Decisions

User NeedConfiguration
Bonded joint (welded, glued)Tie constraint
Bolted connectionFriction contact + preload
Press fitInterference + friction
Bearing loadFrictionless or low friction
Impact/crashExplicit dynamics + general contact

What to Ask User

  1. Surfaces: Which surfaces will touch?
  2. Motion: Will parts slide, separate, or stay bonded?
  3. Friction: Dry contact, lubricated, or frictionless?
  4. Gap/interference: Initial configuration?
  5. Loading: What pushes the parts together?

Validation Checklist

After setup, verify:

  • Master/slave assigned correctly (stiffer = master)
  • Contact property has normal behavior defined
  • Tangential behavior set (friction or frictionless)
  • nlgeom=ON in analysis step
  • Contact outputs requested (CSTRESS, CDISP)
  • Boundary conditions don't overconstrain

Troubleshooting

ProblemLikely CauseSolution
"Severe discontinuity"Contact chatteringAdd stabilization, smaller increments
"Too much penetration"Wrong master/slaveSwap roles, refine slave mesh
"Contact not detected"Surfaces too far apartUse adjust=ON or reduce gap
"Convergence failure"Difficult nonlinearitySmaller increments, check friction

Code Patterns

For API syntax and code examples, see:

Related Skills

  • /abaqus-interaction
    - Contact property details
  • /abaqus-bc
    - Boundary conditions
  • /abaqus-step
    - Nonlinear step settings
  • /abaqus-dynamic-analysis
    - For impact problems