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.
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:
| Mode | Behavior | When to use |
|---|---|---|
| Selective / partial | Scales only elements below a target step | Preferred; limits added mass |
| Global | Scales the entire model uniformly | Only 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.
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.
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.