2. Resolve Initial Penetration by Adjusting Contact Thickness Offsets

Why the offset matters more than the gap

In a shell-to-shell contact, LS-DYNA does not test the midsurface against the midsurface. Each shell carries a contact thickness, and the contact search uses the offset surface defined by SST (shell surface thickness) and MST (material surface thickness) on the *CONTACT card. When the offset is left at its default, the effective contact surface sits at the midsurface, so a model that is geometrically "just touching" can still report initial penetration because the solver sees the two thickness shells overlapping. The fix in this case is not to move nodes or shrink the physical gap — it is to declare the correct thickness offset so the contact surface coincides with the real outer surface of each shell.

The task here is deliberately narrow: take one existing model that already triggers an initial penetration warning, change only the contact thickness offset parameters, and prove two things — the warning disappears, and the intended physical gap is unchanged. Contact force history and energy error are the two verification channels.

Baseline model and the penetration it reports

Use a minimal two-plate shell model. Plate A is a 100 mm × 100 mm shell, 2.0 mm thick, modelled at its midsurface, positioned with its midsurface at z = 0. Plate B is identical, midsurface at z = 2.4 mm. The intended physical gap between the outer surfaces is therefore 2.4 − 1.0 − 1.0 = 0.4 mm. Plate A is fully constrained at its perimeter; Plate B is given an initial velocity of 5 m/s toward A along −z and is otherwise free. A single *CONTACT_AUTOMATIC_SINGLE_SURFACE or a *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE pair is used; the exact card choice is not the point, the thickness treatment is.

With default settings (SST = 0, MST = 0), the contact surface is the midsurface. The solver then measures a gap of 2.4 mm between midsurfaces but expects 2.0 mm of combined thickness, so it registers 0.4 mm of penetration at t = 0 — exactly the physical gap, misread as an overlap. The run terminates or continues with a warning such as initial penetration … 0.4 in the messag file, and the contact energy at t = 0 is already non-zero.

Do not "fix" this by translating Plate B upward. That removes the warning but also removes the 0.4 mm gap you intended to study, and the subsequent impact timing and force peak will be wrong. The offset route preserves the geometry.

Setting the thickness offsets correctly

The convention to fix before touching any card: SST and MST are thickness values, not half-thicknesses, and the sign selects which side of the midsurface the contact surface is placed on. For a shell whose outer surface faces the contact partner, the contact surface must be pushed toward the partner by half the shell thickness. In LS-DYNA the practical, robust setting for a shell modelled at its midsurface is to give the full thickness and let the code place the offset surface at half that distance on the correct side.

For this model, both plates are 2.0 mm thick and both present their outer face to the gap. Set on the contact definition:

*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE
$#    ssid      msid     sstyp     mstyp    sboxid    mboxid       spr       mpr
         1         2         0         0         0         0         0         0
$#      fs        fd        dc        vc       vdcp     penchk        bt        dt
       0.1       0.1       0.0       0.0       0.0         1       0.0       0.0
$#     sfs       sfm       sst        mst      sfst      sfmt       fsf       vsf
       1.0       1.0       2.0       2.0       1.0       1.0       1.0       1.0

Here SST = 2.0 and MST = 2.0 declare the true shell thickness on both sides. With PENCHK = 1 the initial penetration check is active, so the run will tell you immediately whether the offset resolved the overlap. If your model uses a single-surface contact, the same SST value applies to the one surface, and MST is ignored.

Two practical cautions. First, if the shells were modelled at their outer surface rather than the midsurface, the offset must be zero — applying 2.0 mm there would create a false gap. Confirm the modelling convention before setting the value. Second, if the two plates have different thicknesses, set SST and MST independently to each plate's own thickness; a single shared value is only correct when the thicknesses match.

Contact surface placement: midsurface vs. thickness offset Default: SST = MST = 0 Plate A midsurface (contact surface) Plate B midsurface (contact surface) 0.4 mm overlap detected initial penetration warning 2.4 mm Offset: SST = MST = 2.0 Plate A midsurface Plate A contact surface (offset +1.0 mm) Plate B midsurface Plate B contact surface (offset −1.0 mm) 0.4 mm physical gap preserved no initial penetration 0.4 mm Midsurface separation is 2.4 mm in both cases; only the declared contact surface moves.

Verifying with contact force and energy error

Run the baseline and the offset version with identical termination time and output intervals, and request GLSTAT and RCFORC (or the contact force in SLEOUT). Three checks decide whether the change is correct:

  1. Warning gone. The messag file must no longer list initial penetration for this contact. With PENCHK = 1 this is unambiguous.
  2. Contact force starts at zero. In the baseline, the contact force is non-zero at t = 0 because the solver is already resisting the false overlap. In the offset run, the force history should stay at zero until the plates actually close the 0.4 mm gap, then rise. The time at which force first becomes non-zero is the impact time and should match the free-flight estimate 0.4 mm / 5 m/s = 80 µs.
  3. Energy error stays small. Compare the total energy error in GLSTAT (the total energy / initial energy − 1 ratio, or the reported energy error percentage). The baseline typically shows a jump at t = 0 from the penetration correction; the offset run should show no such step and a flat, small error through the event.

A compact comparison table makes the acceptance decision explicit:

QuantityBaseline (SST = MST = 0)Offset (SST = MST = 2.0)Accept if
Initial penetration warningPresent, ≈ 0.4 mmAbsentWarning removed
Contact force at t = 0Non-zeroZeroZero until impact
First non-zero force time≈ 0≈ 80 µsMatches 0.4 mm / 5 m/s
Energy error step at t = 0Visible jumpNo stepNo initial step
Peak contact forceReferenceWithin a few % of referencePhysics unchanged

The peak force comparison is the guard against over-correction: if the offset were set too large (for example 4.0 mm instead of 2.0 mm), the contact surfaces would be pushed past each other and the plates would appear to start already in contact or interpenetrating in the opposite sense, and the peak force and impact time would shift. A peak force within a few percent of the baseline, combined with the corrected impact time, confirms that only the contact surface moved and the physical gap was preserved.

If the warning persists after setting SST/MST, check whether the shells were modelled at the outer surface (offset should be zero) or whether a second contact definition is also active on the same parts. Two contacts on one pair will each apply their own thickness treatment and can reintroduce the overlap.

What to record for the next case

Keep the two runs side by side: the baseline messag excerpt showing the penetration value, the offset messag showing it cleared, the RCFORC force histories overlaid, and the GLSTAT energy error curves. These four artifacts are the evidence that the fix is a thickness-offset correction and not a geometry change, and they set the reference for the coarse-mesh and penalty-stiffness cases that follow.