1. Crash simulation workloads on HPC

Crash simulation workloads on HPC 学习卡片

Crash simulation is one of the most demanding workloads in automotive CAE. Unlike static stiffness or modal analysis, a full-vehicle frontal impact must resolve large plastic deformation, contact between hundreds of parts, self-contact of folded sheet metal, and strain-rate-dependent material behavior — all within a physical event that lasts only 80–150 ms. The solver that dominates this domain is the explicit finite element (FE) solver, and understanding why it behaves the way it does is the foundation for every cost and energy optimization decision that follows in this course.

Why Explicit Integration Dominates Crash Analysis

An implicit solver solves the equilibrium equation K·u = f at every load step, requiring a global stiffness matrix factorization. For crash problems this is impractical: contact conditions change continuously, elements distort severely, and the stiffness matrix must be reassembled and refactorized many times per millisecond. The explicit solver instead advances the solution with the central-difference scheme:

u(n+1) = 2·u(n) − u(n−1) + Δt² · M⁻¹ · (F_ext − F_int)

Because the mass matrix M is lumped (diagonal), no matrix inversion is needed — each element computes its own internal force and the update is a vector operation. This makes explicit solvers embarrassingly parallel and memory-light per element, but it introduces the single most important constraint in the entire workflow: the critical time step.

The Time-Step Constraint and the Courant Condition

The central-difference scheme is conditionally stable. The stable time step is governed by the Courant–Friedrichs–Lewy (CFL) condition, which for a solid element reduces to:

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

where L_e is the characteristic element length, c is the acoustic wave speed, E is Young's modulus, and ρ is density. For steel (E ≈ 210 GPa, ρ ≈ 7.85e-9 t/mm³), the wave speed is roughly 5.2 mm/ms. A 5 mm shell element therefore yields Δt_crit ≈ 0.96 µs. To simulate 100 ms of physical time, the solver must execute on the order of 100,000–200,000 time steps. This step count — not the model size alone — is what makes crash simulation expensive.

The practical consequence is that a single small element can dominate the entire run. If one element in a 10-million-element model has L_e = 0.5 mm, the global time step collapses to about 0.1 µs, and the step count increases tenfold. This is why mass scaling and element quality control are the first levers an engineer reaches for.

Key insight: Cost scales roughly as N_elements × N_steps. Reducing the minimum element size by 2× doubles the step count and therefore roughly doubles wall-clock time, even if the element count is unchanged.

Model Sizes in Realistic Crash Programs

Model size varies enormously by load case and fidelity target. The table below summarizes representative ranges observed in production automotive crash CAE. These are illustrative orders of magnitude, not measured results from a specific program.

Load case Typical element count Typical min. element size Physical duration Approx. time steps
Full-vehicle frontal (50 km/h) 8–20 M 3–5 mm 120 ms ~150,000
Side impact (pole / MDB) 6–15 M 3–5 mm 100 ms ~120,000
Pedestrian head impact 0.5–2 M 1–2 mm 30 ms ~60,000
Battery pack crush (EV) 3–10 M 2–4 mm 80 ms ~100,000

Two structural facts drive cost here. First, shell elements dominate — roughly 80–90% of the mesh — because body-in-white, closures, and battery enclosures are stamped or extruded thin-walled structures. Second, contact is everywhere: a full frontal model may define 300–800 contact interfaces, and contact search is a significant fraction of runtime, often 20–40%.

Where the Compute Time Actually Goes

Profiling a typical explicit crash run reveals a consistent breakdown. Element force calculation (strains, stresses, hourglass control) consumes the largest share, followed by contact detection and resolution, then equation-of-motion update and I/O. The relative weights shift with model characteristics: contact-heavy models with many small parts spend more time in contact; models with poor element quality spend more time in the smallest-element penalty.

Explicit Crash Solver: Cost Structure and Feedback Loop Model Inputs • Element count (8–20 M) • Min. element size L_e • Material E, ρ • Contact interfaces • Physical duration T • Hourglass control • Output frequency Explicit Time-Stepping Loop Compute Δt_crit = L_e / c Element forces F_int Contact detection & forces Update u, v via M⁻¹ Advance t += Δt, repeat Cost Drivers • N_steps = T / Δt_crit • N_elements × N_steps • Contact pair count • Smallest element • I/O volume • Memory bandwidth • MPI communication Feedback: mass scaling / mesh refinement changes Δt_crit and cost

Mass Scaling: The Primary Cost Lever

Because Δt_crit ∝ sqrt(ρ), artificially increasing the density of the smallest elements raises their critical time step. The standard technique is selective mass scaling: only elements below a target time step receive added mass, and the added mass is capped (typically 1–5% of total model mass) to avoid distorting inertia effects. A typical production setting targets a minimum time step of 0.8–1.0 µs, which often eliminates the handful of degenerate elements that would otherwise halve the global step.

The trade-off is physical fidelity. Adding mass to a 0.5 mm element in a crash-critical zone changes its inertia and can alter the deformation pattern. The correct workflow is to scale only in non-critical regions, verify that total added mass stays below the threshold, and confirm that the global time step is actually raised — not just the local one.

Practical Cost Estimation

A useful first-order estimate for planning purposes is:

Wall-clock ≈ (N_elements × N_steps × cost_per_element_step) / (N_cores × parallel_efficiency)

For a 10 M element model at 150,000 steps on 512 cores, with a representative cost of ~1.5 µs per element-step per core and 70% parallel efficiency, the estimate is on the order of several hours. This is illustrative arithmetic, not a benchmark. The point is that the two dominant variables — element count and step count — are both controllable through mesh design and mass scaling, and both must be managed together.

Practical check: Before submitting a large crash job, inspect the solver's initial time-step report. If the minimum element is more than 3× smaller than the median, investigate mesh quality or apply selective mass scaling before spending core-hours.

What This Means for Optimization

Every subsequent chapter builds on this cost model. Reducing element count through submodeling or adaptive meshing attacks the first factor. Mass scaling, element quality improvement, and selective refinement attack the second. Contact simplification and output throttling reduce the per-step overhead. Energy optimization — the other half of this course — enters through CPU frequency scaling, memory bandwidth utilization, and the fact that explicit solvers are often memory-bandwidth-bound rather than compute-bound. Understanding the workload first is what makes those interventions measurable rather than speculative.