3. LS-DYNA explicit dynamics solver essentials for crash simulation

Crash simulation with LS-DYNA is built on three tightly coupled pillars: explicit time integration, contact algorithms, and hourglass control. A model can have perfect geometry and material data and still produce meaningless results if any one of these is mishandled. This section explains what each pillar does, how to configure it, and how to recognize when it is going wrong.

Explicit Time Integration and the Stable Time Step

LS-DYNA advances the solution with the central difference method. Nodal accelerations are computed from the assembled force balance, then velocities and displacements are updated explicitly:

a_n = M^-1 (F_ext - F_int)
v_(n+1/2) = v_(n-1/2) + a_n * dt
d_(n+1)   = d_n + v_(n+1/2) * dt

Because the method is conditionally stable, the time step must satisfy the Courant–Friedrichs–Lewy condition. For a solid element the critical step is approximately dt_crit = L_e / c, where L_e is the characteristic element length and c is the dilatational wave speed c = sqrt(E / (rho (1 - nu^2))). In practice LS-DYNA computes a per-element step and applies a scale factor, controlled by *CONTROL_TIMESTEP:

*CONTROL_TIMESTEP
$#  dtinit    tssfac      isdo    tslimt     dt2ms      lctm     erode     ms1st
       0.0       0.9         0       0.0    -1.2e-6         0         0         0

A negative DT2MS activates mass scaling: elements whose step falls below 1.2 µs receive added mass rather than forcing the whole model to run at that step. This is the standard remedy for a handful of small elements in a large body-in-white model. The trade-off is inertia error, so always check the added-mass percentage in the d3hsp file and keep it below roughly 1–2 % of total mass for crash work. Positive DT2MS adds mass to all elements and is rarely appropriate for vehicle models.

Two practical diagnostics matter here. First, the actual initial step is reported in d3hsp; if it is far below your expectation, search for degenerate or sliver elements. Second, monitor the energy ratio in glstat: the sum of kinetic, internal, and contact energy should track the initial kinetic energy within a few percent. A rising "energy ratio" or a large negative "total energy" usually indicates hourglassing or contact problems rather than a time-step issue.

Contact Algorithms

Crash models rely on penalty-based contact. The penetration between a slave node and a master segment generates a restoring force F = k * delta, where the penalty stiffness k is derived from the segment bulk modulus and area. The two workhorses are *CONTACT_AUTOMATIC_SINGLE_SURFACE and *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE.

Single-surface contact is the default choice for self-contact within a vehicle — a folding rail touching itself, or a door skin contacting the B-pillar. It requires only a part set and no master/slave designation, which makes it robust when the deformation pattern is unknown. Surface-to-surface contact is preferred when two distinct bodies interact and you want control over both sides, for example a barrier impacting a bumper beam. A typical barrier setup looks like this:

*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE
$#   ssid      msid     sstyp     mstyp    sboxid    mboxid       spr       mpr
         2         1         2         2         0         0         0         0
$#     fs        fd        dc        vc       vdc    penchk        bt        dt
       0.1       0.1       0.0       0.0       0.0         0       0.0       0.0
$#    sfs       sfm       sst       mst      sfst      sfmt       fsf       vsf
       1.0       1.0       0.0       0.0       1.0       1.0       1.0       1.0

Key parameters: FS and FD are static and dynamic friction coefficients (0.1 is a reasonable starting point for painted steel on steel); SOFT should be set to 1 or 2 for crash because it scales penalty stiffness with the segment's own stiffness and prevents excessive penetration in thin-walled sections. DEPTH controls the search depth for single-surface contact and should be increased when shells are expected to fold through themselves.

Contact problems announce themselves clearly. Excessive penetration appears as a negative "sliding interface energy" in glstat or as visible interpenetration in the animation. If contact forces spike and the model terminates with a negative volume, the penalty stiffness is likely too high; reduce SFS/SFM or switch to a soft constraint formulation. If parts pass through each other, the search depth or segment thickness is insufficient.

Hourglass Control

Reduced-integration solid and shell elements are computationally efficient but suffer from zero-energy deformation modes called hourglass modes. These are non-physical, sawtooth-shaped distortions that consume no strain energy and can grow until the mesh is destroyed. LS-DYNA offers several control options through *HOURGLASS and the IHQ flag on *CONTROL_HOURGLASS.

For crash simulation, type 4 (Flanagan–Belytschko stiffness form) is the most common choice for solids, and type 6 is often used for shells. The stiffness form adds a small artificial stiffness proportional to the element's own stiffness, which is more stable than the viscous form for large deformations. The coefficient QM defaults to 0.1; increasing it to 0.05–0.1 is typical, but values above 0.15 can over-stiffen the response and corrupt the force–displacement curve.

*CONTROL_HOURGLASS
$#    ihq       qh
         4      0.10

The definitive diagnostic is the hourglass energy reported in glstat and matsum. As a rule of thumb, hourglass energy should stay below 5 % of peak internal energy; above 10 % the results are suspect. If hourglassing is excessive, first refine the mesh in the affected region — hourglass modes are a mesh-quality symptom, not just a control-parameter problem. Adding a small amount of stiffness-based hourglass control and ensuring at least two elements through the thickness of a shell section will usually resolve it.

Explicit Solver Pillars: Integration, Contact, Hourglass Time Integration Central difference, explicit dt_crit = L_e / c *CONTROL_TIMESTEP Mass scaling: DT2MS < 0 Contact Algorithms Penalty method: F = k · δ AUTOMATIC_SINGLE_SURFACE AUTOMATIC_SURFACE_TO_SURFACE FS/FD friction, SOFT = 1–2 Hourglass Control Zero-energy modes Type 4 (solids), Type 6 (shells) *CONTROL_HOURGLASS, QM = 0.1 Keep < 5 % of internal energy Diagnostic Signals and Corrective Actions Symptom Energy ratio drift Negative sliding energy Hourglass > 10 % Negative volume Likely Cause Hourglassing / contact Penetration, soft = 0 Poor mesh, QM too low Penalty stiffness too high Action Refine mesh, check IHQ Set SOFT = 1, increase DEPTH Raise QM to 0.1, refine Reduce SFS/SFM

Putting the Three Together: A Worked Check

Consider a 40 % offset deformable barrier (ODB) model of a sedan at 64 km/h. The initial kinetic energy is roughly 250 kJ. After running 120 ms of simulated time, inspect glstat:

  • Time step: initial step reported as 0.85 µs; added mass 0.6 % — acceptable.
  • Energy ratio: total energy / initial kinetic energy = 0.98 — good.
  • Hourglass energy: peak 3.2 % of internal energy — acceptable.
  • Contact energy: positive and stable; no negative sliding energy spikes.

If the hourglass energy had reached 12 %, the first action would be to refine the rail mesh from 8 mm to 5 mm, not simply to raise QM. If the energy ratio had dropped to 0.85, the likely culprit is a contact definition that allows penetration, and the fix is to set SOFT = 1 and verify the segment thickness on the barrier face.

Practical rule: Always run a short "sanity" simulation — 5–10 ms — and check d3hsp, glstat, and matsum before committing to a full 120 ms run. Catching a time-step or contact error early saves hours of compute time.
Common pitfall: Using the default SOFT = 0 for crash contact. This works for simple metal forming but frequently causes penetration in crash models with thin shells and high-velocity impacts. Set SOFT = 1 or 2 on every *CONTACT_AUTOMATIC card.

Mastering these three essentials — a stable time step, a correctly tuned penalty contact, and adequate hourglass control — is what separates a model that runs from a model that correlates. The next section builds on this foundation by examining material models and failure criteria that govern how the structure absorbs energy.