2. LS-DYNA solver fundamentals for crashworthiness
Rollover and roof crush simulations in LS-DYNA are transient, highly nonlinear events dominated by large deformations, self-contact, and strain-rate-sensitive materials. Before building any roof structure model, you need a working mental model of how the explicit solver advances time, how the stable time step is determined, why mass scaling is sometimes necessary, and how contact is enforced. These four topics are tightly coupled: a poor time step choice forces aggressive mass scaling, which in turn changes inertia and can corrupt the very contact forces you are trying to predict.
Explicit Time Integration
LS-DYNA's implicit and explicit solvers answer different questions. For roof crush (quasi-static loading at roughly 100–250 mm/min in physical testing, but simulated at much higher rates) and for dynamic rollover, the explicit solver is the standard choice because each increment is cheap and contact topology changes are handled naturally.
The central difference method updates nodal acceleration from the assembled force balance:
M · a_n = F_ext,n − F_int,n
v_(n+1/2) = v_(n−1/2) + a_n · Δt
u_(n+1) = u_n + v_(n+1/2) · Δt
Here M is the lumped mass matrix (diagonal, so no matrix inversion is required), F_ext includes gravity and prescribed motion, and F_int is the internal force from element stresses and contact. Because the mass matrix is diagonal, the update is fully vectorized and scales well across cores. The trade-off is conditional stability: the solution is only stable if Δt stays below a critical value.
Time Step Control
For a solid element, the critical time step is governed by the dilatational wave speed:
Δt_crit = L_e / c
c = sqrt(E(1−ν) / ((1+ν)(1−2ν)ρ))
where L_e is a characteristic element length and c is the wave speed. For shell elements LS-DYNA uses a similar expression with the shell's characteristic length and a shear/bending correction. The practical consequence is severe: halving the smallest element edge halves the time step and doubles runtime. A single 2 mm element in an otherwise 8 mm mesh can dominate the entire simulation cost.
LS-DYNA reports the time step at initialization and during the run. Watch the d3hsp file for the smallest element and its location. Typical roof crush models run with Δt on the order of 0.5–2 µs. If you see the step drop unexpectedly mid-run, an element is likely distorting severely — often in the roof rail or B-pillar region where buckling concentrates.
*CONTROL_TIMESTEP with DTINIT to a value slightly below the reported critical step, and enable TSSFAC (default 0.9) as a safety factor. Use ISDO=1 to let LS-DYNA compute the initial step from the mesh.Mass Scaling
Mass scaling artificially increases the density of small or stiff elements so their critical time step rises. It is the standard remedy when a few tiny elements — often created by geometry cleanup around spot welds or trim edges — would otherwise force an impractical step size.
Two modes matter here. Selective mass scaling (DT=... in *CONTROL_TIMESTEP with MS1ST) targets only elements below a threshold, adding the minimum mass needed. Global mass scaling scales the entire model, which is rarely acceptable for roof crush because it alters the inertia of the roof structure and the effective loading rate.
The key discipline is to track the added mass fraction. LS-DYNA prints it in the d3hsp and glstat files. A common engineering guideline is to keep total added mass below 1–2% for crashworthiness models; above that, the dynamic response — particularly peak force and rebound — becomes questionable. For a roof crush simulation where the goal is to match a force–displacement corridor, even 3–5% added mass can shift the plateau force noticeably.
glstat.Contact Algorithms
Roof crush and rollover involve the roof structure contacting a rigid platen (roof crush) or the ground (rollover), plus extensive self-contact as panels fold and buckle. LS-DYNA's penalty-based contact is the workhorse here.
For the platen-to-roof interface, use *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE with the platen as the master surface and the roof as the slave. Set FS and FD (static and dynamic friction) to realistic values — for a steel platen on painted steel, 0.1–0.2 is typical. The penalty stiffness SLSFAC controls how hard the contact resists penetration; the default 0.1 works for most cases, but stiffening it can reduce penetration at the cost of smaller stable time steps.
For self-contact during buckling, *CONTACT_AUTOMATIC_SINGLE_SURFACE is the standard choice. It detects contact between all parts in a defined set, which is essential when the roof panel folds onto the roof rail or the B-pillar. The SOFT option (soft constraint penalty) is often needed when materials have very different stiffnesses, such as a rigid platen against a thin steel panel.
Contact thickness matters. LS-DYNA uses the shell thickness as the contact thickness by default, but for thin roof panels you may need SSTHK or OPTTHK to avoid initial penetration. Always run a quick initialization check — LS-DYNA reports initial penetrations in the d3hsp file — and resolve them before trusting any force output.
Putting It Together: A Practical Workflow
Start by meshing the roof structure with a target element size of 6–10 mm in the roof panel and rails. Run a 1 ms initialization with no loading and inspect the d3hsp for the critical time step and any initial penetrations. If the step is below 0.5 µs, identify the offending elements and either remesh them or apply selective mass scaling with a target step of 0.8–1.0 µs. Verify the added mass fraction in glstat stays under 2%.
Then define contact: a rigid platen with prescribed downward velocity for roof crush, and a single-surface contact for the roof structure itself. Set friction coefficients based on the actual materials, and enable the soft constraint option if the platen is much stiffer than the roof panel. Run a short 5 ms check and confirm that contact forces are smooth and penetration is minimal. Only then proceed to the full loading event.
The most common failure modes are a time step that collapses mid-run due to element distortion, excessive added mass that flattens the force–displacement curve, and initial penetrations that produce spurious contact forces at t = 0. Each has a clear diagnostic signature in the LS-DYNA output files, and each is fixable with the controls described above.