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.
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
| Algorithm | Penetration | Typical LS-DYNA keyword | Best for |
|---|---|---|---|
| Penalty | Small, stiffness-dependent | *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE | General impact, crash, drop tests |
| Penalty + SOFT | Small, mass-scaled | SOFT=1 or SOFT=2 | Foam, rubber, honeycomb, low-density materials |
| Lagrange multiplier | Zero | Implicit contact, *CONTACT_... with MPP | Quasi-static, high-accuracy interfaces |
| Tied / constraint | None (rigid) | *CONTACT_TIED_SURFACE_TO_SURFACE | Welds, bonded joints, bolted flanges |
| Eroding / single surface | Small | *CONTACT_AUTOMATIC_SINGLE_SURFACE | Self-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:
*CONTACT_AUTOMATIC_SURFACE_TO_SURFACEwith defaultSFS=SFM=1.0. Expect a peak penetration of about 0.02–0.05 mm and a clean force history.- 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%. *CONTACT_TIED_SURFACE_TO_SURFACEbetween 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.
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.