3. LS-DYNA contact algorithm landscape

Contact in LS-DYNA is not a single algorithm but a family of formulations that differ in how they enforce the non-penetration condition between a slave node and a master segment. Every contact keyword you activate — *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE, *CONTACT_AUTOMATIC_SINGLE_SURFACE, *CONTACT_TIED_SURFACE_TO_SURFACE — ultimately selects one of three enforcement philosophies: penalty, Lagrange multiplier, or constraint-based (kinematic) treatment. Understanding what each method does to the equations of motion is the difference between a stable, physically meaningful impact simulation and one that either leaks energy through the interface or terminates with a negative volume.

The Non-Penetration Condition and Why It Is Hard

For two bodies in contact, the impenetrability constraint states that the gap function g between a slave node and its closest master segment must satisfy g ≥ 0. In an explicit code this must be checked every cycle, because the central-difference scheme advances the solution without ever assembling a global stiffness matrix. The three algorithm families differ in how they convert that inequality into forces:

  • Penalty method — allow a small penetration and push back with a spring force proportional to it.
  • Lagrange multiplier method — introduce additional unknowns (contact forces) and solve for them so that penetration is exactly zero.
  • Constraint / kinematic method — directly project or tie the slave kinematics onto the master surface, eliminating the degrees of freedom that would penetrate.

Penalty Method: The Workhorse of Explicit Impact

The penalty formulation is the default in nearly all LS-DYNA automatic contact types because it is purely local and requires no additional equations. When a slave node penetrates a master segment by depth δ, a normal force is applied:

F_n = k * δ
k   = fsi * K * A^2 / V      (solid elements, segment-based stiffness)
k   = fsi * K * A / L        (shell elements)

Here K is the bulk modulus of the master material, A the segment area, V the master element volume, L a characteristic shell thickness, and fsi the scale factor on the penalty stiffness (SFS / SFM on the contact card, default 1.0). The physical interpretation is a stiff spring inserted between the surfaces. Because the spring is not infinitely stiff, a residual penetration of a few percent of the element thickness is normal and acceptable.

Two practical consequences follow. First, the stable time step of the contact spring is Δt ≤ 2√(m/k); if you raise SFS to 10 to reduce penetration, you may force LS-DYNA to reduce the global time step, and the message file will report a contact-controlled step. Second, penalty forces are applied to the slave node and, by default, distributed to the master nodes with a negative sign, so momentum is conserved but the interface is not perfectly rigid.

For foam, honeycomb, or rubber crushing against a rigid wall, penalty contact with SOFT=1 or SOFT=2 is usually the right choice. The soft-constraint option ramps the stiffness based on the nodal mass and the element's own stiffness, which prevents the huge penalty forces that a stiff master material would otherwise generate against a soft slave.

Lagrange Multiplier and Constraint-Based Methods

The Lagrange multiplier method treats the contact force as an unknown λ and augments the variational principle so that g = 0 is satisfied exactly. In LS-DYNA this appears in the implicit solver and in specific explicit options such as *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE with MPP treatment or the penalty-free *CONTACT_... tied variants. The advantage is zero penetration and no user-tuned stiffness; the cost is a coupled system that is harder to parallelize and can oscillate when the active contact set changes rapidly.

Constraint-based (kinematic) methods go further: the slave node is not allowed to penetrate at all. The classic example is *CONTACT_TIED_SURFACE_TO_SURFACE and *CONTACT_TIED_NODES_TO_SURFACE, where slave nodes are rigidly tied to master segments. This is the correct choice for welded joints, bolted flanges modeled without explicit bolts, and adhesive bonds. A tied interface transmits both normal and tangential traction and does not slide. If you need a tied interface that can fail, use *CONTACT_TIED_SURFACE_TO_SURFACE_FAILURE with a *DEFINE_CURVE or a damage parameter, which releases the tie once a criterion is met.

Choosing the Right Algorithm

AlgorithmPenetrationTypical LS-DYNA keywordBest for
PenaltySmall, stiffness-dependent*CONTACT_AUTOMATIC_SURFACE_TO_SURFACEGeneral impact, crash, drop tests
Penalty + SOFTSmall, mass-scaledSOFT=1 or SOFT=2Foam, rubber, honeycomb, low-density materials
Lagrange multiplierZeroImplicit contact, *CONTACT_... with MPPQuasi-static, high-accuracy interfaces
Tied / constraintNone (rigid)*CONTACT_TIED_SURFACE_TO_SURFACEWelds, bonded joints, bolted flanges
Eroding / single surfaceSmall*CONTACT_AUTOMATIC_SINGLE_SURFACESelf-contact, fragmentation, debris

Worked Example: Steel Plate Impacting a Rigid Wall

Consider a 200 mm × 200 mm × 2 mm steel plate (density 7.85e-9 tonne/mm³, Young's modulus 210 GPa, yield 350 MPa) traveling at 10 m/s normal to a rigid wall. The plate is meshed with 2 mm shell elements, giving a stable step of roughly 0.4 µs. Three contact setups are compared:

  1. *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE with default SFS=SFM=1.0. Expect a peak penetration of about 0.02–0.05 mm and a clean force history.
  2. Same card with SFS=SFM=10. Penetration drops to ~0.005 mm, but the message file may show the time step reduced by the contact stiffness, increasing runtime by 20–40%.
  3. *CONTACT_TIED_SURFACE_TO_SURFACE between the plate and the wall. The plate cannot penetrate, but it also cannot rebound — this is physically wrong for an impact and will produce a non-physical tensile pull-off force.

To verify the result, plot the contact force from rcforc in LS-PrePost and compare it with the momentum change m·Δv/Δt. For a 2 mm plate of 200 mm square, mass ≈ 0.628 kg, so the impulse over the contact duration should match. If the force history shows high-frequency spikes at the penalty frequency, reduce SFS or switch to SOFT=1. If the plate passes through the wall entirely, the most common causes are a missing *CONTACT definition, a segment set that does not include the wall, or a time step so large that the slave node jumps past the master segment in one cycle — check the dt in the message file against the contact thickness.

Never use a tied contact to model a rebound or a sliding interface. Tied contacts are constraints, not springs; they will generate tensile forces that have no physical basis and can mask a modeling error until the final results are reviewed.
Contact Enforcement: Penalty vs. Lagrange vs. Constraint Penalty Method Master segment (rigid wall) Slave node (plate) F = k·δ δ (penetration) Spring stiffness k = fsi·K·A²/V Small residual penetration allowed Local, no extra equations Default for explicit impact Keyword *CONTACT_AUTOMATIC_ SURFACE_TO_SURFACE SFS / SFM / SOFT Lagrange Multiplier Master surface Slave node λ (contact force) g = 0 enforced exactly Additional unknowns λ Coupled system, harder to parallelize Used in implicit / high-accuracy Keyword Implicit contact MPP treatment Zero penetration Constraint / Tied Master segment Slave node (tied) rigid link No penetration, no sliding DOF eliminated Transmits normal + shear Welds, bonds, bolted flanges Keyword *CONTACT_TIED_ SURFACE_TO_SURFACE _FAILURE variant Penalty = spring force · Lagrange = exact constraint via multipliers · Tied = kinematic constraint (no relative motion)

Practical Selection Rules

Start with penalty contact for any explicit impact problem. Switch to SOFT=1 when the slave material is much softer than the master, or when the contact stiffness would otherwise dominate the time step. Use tied contact only where the physical joint is genuinely rigid — a weld line, a bonded patch, a bolted connection represented without bolt geometry. Reserve Lagrange multiplier contact for implicit or quasi-static analyses where exact non-penetration matters more than runtime. Finally, always inspect the rcforc and glstat outputs: a contact energy that grows without bound, or a negative sliding energy, indicates that the penalty stiffness or the friction definition needs attention before you trust the result.