2. MADYMO solver architecture for FE restraints

MADYMO is a hybrid solver: it can run rigid multibody (MB) systems, finite element (FE) structures, and combinations of both in a single simulation. For restraint system modeling — airbags, seat belts, pretensioners, load limiters — this hybrid capability is essential. An airbag is best represented as an FE membrane that inflates and contacts the occupant, while the occupant and vehicle interior can often be represented efficiently as a multibody system. Understanding how the solver integrates these two domains in time, and how the input deck is organized to support that integration, is a prerequisite for building models that are both stable and physically meaningful.

Explicit time integration and the central difference scheme

MADYMO's FE solver uses explicit time integration based on the central difference method. The equations of motion are not solved simultaneously at each time step; instead, accelerations are computed from the current force state, and velocities and displacements are updated directly. For a node with mass m, the acceleration at time tn is:

a_n = (F_ext + F_int) / m
v_(n+1/2) = v_(n-1/2) + a_n * Δt
x_(n+1)   = x_n + v_(n+1/2) * Δt

Here F_ext includes contact forces, inflation pressure loads, belt forces, and gravity, while F_int is the internal element force from membrane or shell stresses. The critical consequence of this scheme is conditional stability: the time step must satisfy the Courant–Friedrichs–Lewy (CFL) condition,

Δt ≤ Δt_crit = L_min / c

where L_min is the smallest element characteristic length and c is the wave speed in the material. For a typical airbag fabric with c ≈ 1500–2500 m/s and a minimum element size of 5 mm, Δt_crit is on the order of 2–3 µs. MADYMO computes this automatically and reports the controlling element in the .out file. If a model suddenly slows down, the first diagnostic step is to search the output for the element ID that governs the time step — it is almost always a single distorted or undersized element, not a global mesh problem.

Mass scaling can raise Δt_crit by artificially increasing nodal mass, but it changes the dynamics. Use it only on elements that are not in the load path of interest, and verify that the added mass does not exceed a few percent of the total model mass.

Coupling between FE and multibody domains

The FE and MB domains exchange forces at shared interfaces. MADYMO supports two principal coupling mechanisms: kinematic constraints (rigid links, joints, and prescribed motions) and force-based contact (FE nodes contacting MB ellipsoids or planes, and MB bodies contacting FE surfaces). In a restraint model, the typical coupling chain is:

  • The occupant MB model (ellipsoids for head, chest, pelvis) contacts the FE airbag surface through a penalty-based contact algorithm.
  • The FE seat belt shell elements are anchored to MB belt points at the retractor and buckle, with the pretensioner and load limiter represented as MB force elements.
  • The vehicle interior (instrument panel, steering wheel) may be FE or MB depending on the required fidelity.

Contact between an FE node and an MB ellipsoid is resolved by computing the penetration depth along the ellipsoid normal and applying a penalty force F = k · d, where k is the contact stiffness. The stiffness must be high enough to prevent visible penetration but low enough to avoid introducing a spurious high-frequency oscillation that forces a smaller time step. A practical starting point is to set the contact stiffness so that the maximum expected penetration is under 2–3 mm at peak load.

One subtlety: the MB solver uses its own time step, which may be larger than the FE step. MADYMO subcycles the FE domain within each MB step and interpolates MB positions at FE sub-step boundaries. This means the coupling forces are evaluated at the FE sub-step rate, but the MB response is updated at the MB rate. If the MB step is too large relative to the contact event duration, the contact force can be under-resolved and the occupant may appear to "tunnel" through the airbag. A common symptom is a physically implausible reduction in head acceleration without a corresponding reduction in contact force.

MADYMO Hybrid Solver: FE–MB Coupling and Time Integration FE Domain (Explicit) Airbag membrane, belt shell, interior Central difference integration Δt_FE ≤ L_min / c Sub-cycling within MB step Contact: penalty force F = k·d Multibody Domain Occupant ellipsoids, joints, belt points Rigid body dynamics Δt_MB ≥ Δt_FE Pretensioner / load limiter forces Kinematic constraints at anchors FE contact force → MB MB position → FE contact Time step hierarchy (example: Δt_MB = 20 µs, Δt_FE = 2 µs) MB step n MB step n+1 MB step n+2 FE sub-steps (10 per MB step) Input deck organization (typical .xml structure) <CONTROL> → time step, output interval, contact stiffness <MB> → occupant ellipsoids, joints, belt anchors <FE> → airbag mesh, belt shell, material cards, contact definitions

Input deck organization

A MADYMO input deck is organized into named blocks that map directly to the solver's internal data structures. For a restraint model, the essential blocks are:

Block Purpose Restraint-specific content
CONTROL Global solver settings Time step control, output frequency, contact stiffness, gravity
MB Multibody system definition Occupant ellipsoids, joints, belt anchor points, pretensioner force curves
FE Finite element model Airbag membrane mesh, belt shell elements, material models, contact surfaces
CONTACT Contact definitions FE–MB contact pairs, FE–FE self-contact for airbag folding
OUTPUT Result requests Nodal displacements, contact forces, belt forces, energy balance

The order of blocks matters for readability but not for solver execution — MADYMO parses the entire deck before initialization. However, a consistent ordering convention (CONTROL first, then MB, then FE, then CONTACT, then OUTPUT) makes the deck easier to debug and maintain. When a model fails to initialize, the error message usually references a specific block and entity ID; a well-organized deck lets you locate that entity immediately.

Practical example: airbag–occupant coupling setup

Consider a driver-side airbag model with a 50th-percentile male occupant. The FE airbag mesh has a minimum element size of 6 mm and a fabric wave speed of 1800 m/s, giving Δt_crit ≈ 3.3 µs. The MB occupant uses a 20 µs time step. The coupling is defined as follows:

CONTACT
  FE_MB_CONTACT
    FE_SURFACE = airbag_outer
    MB_ELLIPSOID = head, chest, pelvis
    STIFFNESS = 50 N/mm
    FRICTION = 0.3
  END
END

CONTROL
  TIME_STEP = 3.0e-6
  MB_TIME_STEP = 20.0e-6
  OUTPUT_INTERVAL = 1.0e-4
END

After running the simulation, check three things in the output: (1) the actual time step used by the solver — it should be at or just below 3.0e-6; if it drops significantly, an element is distorting. (2) The contact force history between the head and the airbag — it should rise smoothly to a peak and decay without high-frequency spikes. (3) The energy balance — the sum of kinetic, internal, and contact energy should remain approximately constant (within a few percent) if no energy is being added or removed artificially. A sudden jump in energy usually indicates a contact stiffness problem or an unstable element.

If the MB time step is set too large relative to the contact event, the occupant may pass through the airbag without generating the expected contact force. This is not a physical result — it is a time integration artifact. Reduce MB_TIME_STEP or increase the contact stiffness, then re-run and compare the head acceleration pulse.

Understanding this architecture — explicit FE integration, sub-cycled MB coupling, and a block-structured input deck — gives you the framework to build restraint models that are numerically stable and physically credible. The next step is to apply this framework to specific restraint components, starting with airbag modeling.