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 highly nonlinear crash event in time without ever assembling or factorizing a global stiffness matrix. Understanding this architecture is essential before touching any time-step or mass-scaling control, because those controls act directly on the stability limit of the explicit scheme.

Why Explicit Integration Dominates Crash Simulation

In an implicit solver, equilibrium at time t+Δt is found by iterating on a system of the form K·Δu = fext − fint, which requires solving a large linear system at every increment. Crash events involve contact, material failure, element deletion, and severe geometric distortion — all of which make K change constantly and make convergence fragile. The explicit approach sidesteps this entirely: the acceleration of each node is computed directly from the force balance, and the state is advanced with a single pass over the mesh.

The central-difference (Leapfrog/Verlet-style) update used by PAM-CRASH can be summarized as:

a_n = M⁻¹ · (f_ext − f_int)
v_(n+1/2) = v_(n−1/2) + a_n · Δt_n
u_(n+1)   = u_n + v_(n+1/2) · Δt_n

Here M is the lumped (diagonal) mass matrix, so M⁻¹ is a trivial element-wise division — no linear solve is required. This is the single most important architectural fact: the cost per increment scales linearly with element count, and the only real constraint is stability.

The CFL Stability Limit

Explicit integration is conditionally stable. The critical time step for a linear elastic element is governed by the Courant–Friedrichs–Lewy (CFL) condition:

Δt_crit = 2 / ω_max = L_c / c
c = sqrt(E / ρ)

where Lc is the characteristic element length, c is the dilatational wave speed, E is Young's modulus, and ρ is density. Physically, the time step must be small enough that a stress wave cannot traverse the smallest element in a single increment. PAM-CRASH computes a per-element critical step and takes the global step as the minimum over the whole model, then applies a safety factor (typically 0.9 by default, controlled through the time-step scale factor).

Two consequences follow immediately. First, a single tiny element anywhere in the mesh dictates the time step for the entire model. Second, because Δt ∝ Lc, mesh refinement is quadratically expensive: halving element size doubles the wave speed term's effect and doubles the number of increments, so total cost grows roughly fourfold.

Key relationship: Δtcrit = Lc / c = Lc · sqrt(ρ / E). Increasing density ρ raises Δtcrit linearly — this is the entire basis of mass scaling.

Time Step Control in Practice

PAM-CRASH does not use a single fixed step. It recomputes the stable step periodically (every N cycles, set by the time-step update frequency) because element lengths shrink as the mesh deforms. The relevant controls are:

  • Initial time step — often set to a target value (e.g., 1.0 µs) rather than left to the solver, so that mass scaling can be applied consistently.
  • Minimum time step — the floor below which the run is terminated or scaling is triggered.
  • Time-step scale factor — the safety margin (0.9 typical; reduce to 0.8 for highly distorted or contact-heavy models).
  • Time-step update interval — how often the critical step is re-evaluated; too frequent wastes time, too infrequent risks instability.

A practical diagnostic: if the solver reports a steadily decreasing time step during the run, elements are collapsing. If it reports a sudden drop, a single element has likely inverted or a contact has produced an extreme local deformation.

Mass Scaling: Mechanism and Trade-offs

Mass scaling artificially increases the density of selected elements so that their local critical step rises to a target value. Because Δtcrit ∝ sqrt(ρ), raising density by a factor of 4 doubles the stable step. PAM-CRASH offers two modes:

ModeBehaviorWhen to use
Selective / partialScales only elements below a target stepPreferred; limits added mass
GlobalScales the entire model uniformlyOnly when the whole mesh is uniformly small

The governing constraint is added mass. A common acceptance criterion is that total added mass stays below 1–5% of the model's physical mass, and that it does not significantly alter the kinetic energy of the structure. Excessive scaling inflates inertia, slows the physical response, and can mask real failure modes — a scaled model may appear to absorb more energy than it physically would.

Mass scaling changes the physics, not just the numerics. Always report the added-mass percentage and verify that the scaled model's global response (force–displacement curve, peak crush force) matches an unscaled reference on a coarse mesh.

How the Pieces Interact

The architecture can be read as a control loop: the mesh geometry defines element lengths, which set the wave-speed-limited critical step, which the solver compares against the target step; if the target is larger, mass scaling adjusts density to close the gap. The diagram below shows this dependency chain and where each user control acts.

Explicit Time-Step Control Loop in PAM-CRASH Mesh Geometry element length L_c Wave Speed c = sqrt(E / ρ) Critical Step Δt_crit = L_c / c Compare to Target Δt_target (user) Mass Scaling ρ_eff = ρ · (Δt_t/Δt_c)² Advance Solution central difference Added-Mass Check Δm / m_total < 1–5% → accept otherwise reduce target step or refine mesh re-evaluate every N cycles

Reading the Solver Output

PAM-CRASH writes the time step and added mass to the output log at each update interval. A healthy run shows a slowly varying time step and a stable added-mass percentage. Warning signs include:

  • Time step collapsing toward the minimum — element distortion or an inverted element; inspect the smallest elements and consider local remeshing or a smaller initial step.
  • Added mass climbing during the run — elements are shrinking and being scaled more aggressively; the model may be over-refined in a region that should be coarsened.
  • Energy imbalance — if total energy grows without external work, the step is likely too close to the stability limit; reduce the scale factor to 0.8.

The practical workflow is therefore: build the mesh with a deliberate minimum element size, set a target time step consistent with that size, enable selective mass scaling, run a short verification, and confirm that added mass and energy balance are acceptable before committing to the full crash simulation.