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:

FamilyTypical cardSeat application
Elasto-plastic metalsMAT 1 / MAT 103Steel frame, recliner, tracks
Crushable foamsMAT 26 / MAT 50Seat cushion and back foam
Rubbers / hyperelasticMAT 42 / MAT 87Mount bushings, trim clips
Fabrics / beltsMAT 34 / MAT 58Seat 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.

PAM-CRASH Seat Model: Solver Subsystem Coupling Input Deck 00_control.key 10_materials.key 20_frame.key 30_foam.key 40_trim_belt.key 50_dummy.key 60_contacts.key 70_output.key Explicit Solver Core Central-difference integrator Contact search & penalty Element & material update dt = 0.9 · L_c / c Material Library MAT 103 — steel frame MAT 26 — crushable foam MAT 42 — rubber bushing MAT 34 — belt webbing stress–strain tables, rate effects Contact Interfaces NTS — belt / dummy STS — foam / frame Self-contact — frame fold mu_s = 0.3, mu_d = 0.2 penetration < t/2 check thickness offset consistency Output: TH/NOD, TH/ELEM head / chest / pelvis accelerations

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.

Keep a one-page run log for each seat model recording the controlling time step, added mass percentage, contact penetration check, and the material card versions used. This log turns a solver failure into a five-minute diagnosis instead of a day of guessing.