2. PAM-CRASH solver architecture and explicit time integration

PAM-CRASH is built around an explicit finite element solver whose central design goal is to advance a crash model through thousands of very small time increments without ever assembling or factorizing a global stiffness matrix. Understanding this architecture is what allows you to predict, before you even press Run, whether a model will finish in an hour or stall for a week, and whether its results will be physically trustworthy.

Why Explicit Integration Dominates Crash Simulation

In an implicit solver, equilibrium is enforced at every increment by solving K·Δu = F_ext − F_int, which requires a matrix inversion and an iterative convergence loop. That is efficient for slow, quasi-static events, but a crash event is dominated by high-frequency content: contact impulses, buckling, rupture, and stress-wave propagation. The explicit central-difference scheme instead computes nodal accelerations directly from the force imbalance:

a_n = M⁻¹ · (F_ext − F_int)
v_(n+1/2) = v_(n−1/2) + a_n · Δt
u_(n+1)   = u_n + v_(n+1/2) · Δt

Because the mass matrix M is lumped (diagonal), M⁻¹ is a trivial element-wise division. There is no matrix solve, no convergence check, and each increment costs roughly the same as the last. The price for this simplicity is conditional stability: the scheme is only stable if Δt stays below a critical value.

The Courant Condition and the Critical Time Step

For a linear elastic bar element, the critical step is governed by the Courant–Friedrichs–Lewy (CFL) condition:

Δt_crit = L_e / c,   c = sqrt(E / ρ)

where L_e is the element characteristic length, c is the acoustic wave speed, E is Young's modulus, and ρ is density. In practice PAM-CRASH applies a safety factor, typically 0.9, so the working step is Δt = 0.9 · Δt_crit. The solver scans every element at start-up and reports the smallest value, which becomes the global step for the whole model.

This is the single most important operational fact in explicit crash analysis: one tiny element anywhere in the mesh dictates the time step for the entire model. A single 0.5 mm shell in a 5 m vehicle body can force a step of ~0.1 µs, turning a 100 ms event into a million increments.

Worked estimate. Steel: E = 210 GPa, ρ = 7.85e-9 t/mm³, so c ≈ 5170 mm/ms. For a shell with L_e = 5 mm, Δt_crit ≈ 0.97 µs, and with the 0.9 factor, Δt ≈ 0.87 µs. A 120 ms frontal impact therefore needs about 138,000 increments. Halving L_e to 2.5 mm doubles that count and doubles the wall-clock time.

Mass Scaling: Trading Physics for Runtime

Mass scaling artificially increases the density of small or stiff elements so that their local wave speed drops and their Δt_crit rises toward the target step. Because c ∝ 1/√ρ, raising density by a factor k raises the stable step by √k. PAM-CRASH offers two modes:

  • Fixed mass scaling — a single scale factor or target Δt is applied to the whole model for the entire run. Simple and predictable, but it adds mass everywhere, including in regions where it is not needed.
  • Selective / adaptive mass scaling — only elements below a threshold length are scaled, and the factor is recomputed as the mesh deforms. This concentrates the added mass where it is needed and is the usual choice for production crash models.

The engineering constraint is that added mass must not distort the physics. A widely used acceptance rule is to keep the total added mass below 1–2 % of the model mass, and to verify that the global center of mass and the kinetic energy history are not visibly perturbed. If a 0.4 mm fillet element forces a 0.08 µs step, scaling it is far cheaper than remeshing the whole component.

How the Pieces Fit Together

The diagram below shows the solver loop and where time-step control, mass scaling, and the stability check sit relative to the contact and constitutive updates.

PAM-CRASH Explicit Solver Loop with Time-Step Control Model Initialization scan L_e, E, ρ per element Δt_crit = min(L_e / c) apply safety factor 0.9 → global Δt Mass Scaling selective: scale small L_e check added mass < 2 % Compute F_int (element loop) strains → stresses → nodal forces Contact Detection & Forces penalty / kinematic constraints a = M⁻¹ (F_ext − F_int) lumped mass, no matrix solve Update v, u, state central difference, t += Δt Stability Check deformed L_e < L_e0 ? recompute Δt if adaptive next increment Δt feedback Termination t = t_end or energy balance

Reading the Solver Output for Stability

PAM-CRASH writes the time step and mass-scaling summary to the output file at start-up. Two lines deserve immediate attention:

TIME STEP .......... 8.72E-07 s   (element 10432)
ADDED MASS ......... 0.84 % of total model mass
SCALED ELEMENTS .... 217 of 486,300

If the reported step is far below your expectation, the culprit is almost always a handful of degenerate or sliver elements. Locate them by requesting the element time-step output and visualizing it as a contour; the minimum will stand out as a hot spot. Typical fixes are local remeshing, merging duplicate nodes, or applying selective mass scaling to that region only.

Instability symptoms. If the step is set too high, the solution does not fail gracefully. You will see kinetic energy growing without bound, nodal velocities reaching physically impossible magnitudes, and elements "exploding" outward. Always monitor the energy ratio: for a stable explicit run, the hourglass and internal energy should dominate, and total energy should stay approximately constant. A sudden spike in kinetic energy with no corresponding external work is the classic signature of a violated CFL condition.

Practical Parameter Choices

ParameterTypical valueEffect if wrong
Safety factor0.9Too high → instability; too low → wasted runtime
Target Δt (mass scaling)0.8–1.0 µs for steel bodiesToo aggressive → added mass distorts inertia
Added mass limit< 2 % of model massExceeded → wrong deceleration pulse
Minimum element length> 3 mm in crash zonesSmaller → step collapses, runtime explodes

The practical workflow is therefore: mesh with a controlled minimum element size, let the solver report the natural critical step, apply selective mass scaling only to elements that fall below the target, and confirm from the energy history that the added mass has not changed the global response. When those three checks pass, the explicit architecture delivers exactly what crash engineering needs — a stable, physically meaningful, and computationally tractable solution.