2. PAM-CRASH solver architecture for seat crash models
PAM-CRASH is an explicit finite element solver whose architecture is organized around a small number of tightly coupled subsystems: the explicit time integrator, the contact search and force-generation engine, the material and element libraries, and the input-deck reader that binds them together. For seat crashworthiness work, understanding how these subsystems interact is what separates a model that runs from a model that produces trustworthy occupant-loading predictions. This section walks through each subsystem as it applies to a typical seat sled or full-vehicle seat model.
Explicit Time Integration and the Stability Limit
PAM-CRASH advances the solution with an explicit central-difference scheme. Nodal accelerations are computed from the assembled force vector, then velocities and displacements are updated in a leapfrog sequence:
a_n = M^-1 (F_ext - F_int)
v_(n+1/2) = v_(n-1/2) + a_n * dt
d_(n+1) = d_n + v_(n+1/2) * dt
Because the scheme is conditionally stable, the time step is bounded by the Courant condition. For a shell element the critical step scales with the characteristic length divided by the dilatational wave speed, dt_crit = L_c / c, where c = sqrt(E / (rho (1 - nu^2))) for an isotropic shell. A seat frame built from 1.0 mm thick steel with a 4 mm characteristic element edge length yields a wave speed near 5100 m/s and a critical step around 0.78 µs. In practice PAM-CRASH applies a scale factor (commonly 0.9) and reports the controlling element in the time-step summary, so the first diagnostic step after any model change is to read that summary and confirm which element governs the step.
Mass scaling is the standard remedy when a handful of small elements — often in weld nuggets, hinge brackets, or recliner details — force an unnecessarily small global step. A typical seat model might apply DT/NODM or selective mass scaling to raise the minimum step to 1.0–1.5 µs while keeping added mass below 1–2 % of the total seat mass. The added-mass report must always be checked, because excessive scaling corrupts the inertia of the very components whose crash response is being predicted.
Contact Algorithms
Seat models are contact-dominated: foam compresses against the occupant, the seat pan interacts with the cushion, the frame folds against itself, and the occupant dummy slides along the belt. PAM-CRASH provides penalty-based contact with several search strategies. The relevant choices for seat work are:
- Node-to-surface (NTS) — robust for belt-to-dummy and dummy-to-cushion interfaces where one side is much stiffer or coarser.
- Surface-to-surface (STS) — preferred for foam-to-frame and cushion-to-pan interfaces, since it distributes contact forces and reduces snagging on coarse meshes.
- Self-contact — required for frame folding and for the seat back collapsing onto itself; must be activated on the specific part set, not globally, to control cost.
Penalty stiffness is the key parameter. Too soft, and nodes penetrate visibly; too stiff, and the contact introduces spurious high-frequency noise that shrinks the stable time step. A practical starting point is to let the solver compute the default stiffness from the element properties, then verify penetration depth in the animation and adjust with a stiffness scale factor if penetration exceeds roughly half the shell thickness. Friction is defined per contact interface with a static and a dynamic coefficient; belt-to-clothing interfaces typically use mu_s = 0.3, mu_d = 0.2, while foam-to-trim uses higher values. Contact thickness offsets matter for shells: a 1.0 mm shell with a default thickness offset of 0.5 mm will allow the visual surfaces to overlap before the penalty force engages, so the offset must be set consistently with the physical gap.
Material Libraries
PAM-CRASH material cards are organized by constitutive family. Seat crash models draw on four families almost exclusively:
| Family | Typical card | Seat application |
|---|---|---|
| Elasto-plastic metals | MAT 1 / MAT 103 | Steel frame, recliner, tracks |
| Crushable foams | MAT 26 / MAT 50 | Seat cushion and back foam |
| Rubbers / hyperelastic | MAT 42 / MAT 87 | Mount bushings, trim clips |
| Fabrics / belts | MAT 34 / MAT 58 | Seat belt webbing, airbag fabric |
For the steel frame, MAT 103 (elastic-plastic with isotropic hardening) is the workhorse; the hardening curve is entered as a true stress–plastic strain table derived from a tensile test, and strain-rate sensitivity can be added through a Cowper–Symonds coefficient pair. Foam is the most sensitive material in the seat: MAT 26 requires a uniaxial compression curve, a hysteresis unloading factor, and a tensile cutoff, and the curve must be entered in the correct stress–strain convention (engineering or true) that matches the test data. A common error is to enter foam stress in MPa while the deck expects Pa, which produces a cushion that either bottoms out instantly or never compresses.
Input-Deck Organization
A PAM-CRASH input deck is a sequence of keyword blocks. For a seat model, a maintainable organization follows the physical build order and keeps each subsystem in its own include file:
seat_main.key
├── 00_control.key (DT/NODM, TERMINATION, OUTPUT)
├── 10_materials.key (MAT cards, curves)
├── 20_frame.key (nodes, shells, properties)
├── 30_foam.key (solid foam, MAT 26)
├── 40_trim_belt.key (membrane, MAT 34)
├── 50_dummy.key (occupant model, rigid bodies)
├── 60_contacts.key (interface definitions)
└── 70_output.key (TH/NOD, TH/ELEM, animation)
This structure lets a single material or contact change be made without touching geometry, and it makes the deck diff-friendly for version control. The control block should always set an explicit termination time, a consistent output interval, and the mass-scaling flag; the output block should request nodal time histories at the occupant's head, chest, and pelvis, plus element time histories at the frame's highest-stress locations identified from a preliminary run.
Putting the Subsystems Together: A Verification Sequence
Before trusting any seat crash result, run a short verification sequence that exercises each subsystem independently. First, run the model for 5 ms with no occupant and no belt to confirm the time-step summary is stable and the added mass from scaling is below the target. Second, add the occupant and belt and run a 20 ms belt-pull or pre-tensioner firing to check that the belt-to-dummy contact engages without penetration and that the belt force time history is smooth. Third, run the full sled pulse and inspect the frame's plastic strain contours and the foam's compression history. If the time step collapses mid-run, the usual cause is a contact stiffness that is too high or a foam element that has inverted; if the occupant's chest acceleration shows high-frequency spikes, the cause is usually a contact thickness offset that is too small or a belt element that is too stiff. Each symptom maps back to a specific subsystem, which is why the deck organization above pays for itself during debugging.