4. Resolve Mass Scaling-Induced Instability

Why mass scaling can destabilize an explicit run

In an explicit LS-DYNA analysis the stable time step is governed by the smallest element characteristic length and the wave speed of its material: Δt ≈ Lc/c, with c = √(E/ρ). Mass scaling raises ρ in selected elements so that their Δt grows toward a target value. The trade-off is inertia: added mass changes momentum, contact forces, and the kinetic energy of the model. When the scaling is too aggressive, or applied to regions that carry real dynamic load, the result is a physically distorted response that often manifests as a termination — negative volume, excessive nodal velocity, or an energy error that the solver refuses to continue past.

The diagnostic task in this case is therefore not "make the run finish" but "decide whether the added mass is small enough that the answer is still meaningful, and if not, restructure the scaling so it is." The workflow below uses a thin-walled crash box as the working example: a shell mesh with a few very small elements in a fillet region that force an impractically small global time step.

Step 1 — Confirm that mass scaling is the actual cause

Start from the termination message and the energy history, not from the keyword file. Two signals together are strong evidence:

  • Added mass is large. In the d3hsp file, LS-DYNA reports the percentage of mass added by scaling. A value above roughly 1–2 % of total model mass in a region that participates in the impact is a red flag; a few tenths of a percent concentrated in stiff, low-motion detail is usually benign.
  • Energy is dominated by scaling artifacts. In glstat, compare internal energy, kinetic energy, and the "added mass" energy contribution. If kinetic energy spikes in the scaled region before the physical impact reaches it, the added inertia is driving the response.

A useful cross-check is to rerun a short segment (a few milliseconds) with mass scaling disabled. If the model is stable but the time step collapses to a value that makes the run impractical, the problem is genuinely a time-step/mesh issue and scaling is the right tool — it just needs to be applied selectively. If the model terminates even without scaling, the root cause is elsewhere (contact, material, or mesh quality) and this case does not apply.

Step 2 — Read the scaling parameters that are actually in effect

Mass scaling is controlled through *CONTROL_TIMESTEP. The relevant fields for this diagnosis are:

FieldMeaningTypical diagnostic value
DTINITInitial time step (0 = computed)Leave 0 unless overriding
TSSFACTime-step scale factor (default 0.9)0.9 is standard; lowering it does not fix scaling
DT2MSTarget time step for mass scaling; negative = scale only elements below |DT2MS|Positive value scales everything; negative is selective
MS1STScale on first cycle only (1) vs. every cycle (0)1 avoids repeated re-scaling drift

The single most common mistake is a large positive DT2MS, which forces every element up to the target step and adds mass everywhere. A negative DT2MS restricts scaling to elements whose natural step is already below the threshold — the selective mode this case recommends.

Step 3 — Quantify the added mass before changing anything

Do not tune by trial and error alone. Extract the added-mass percentage from d3hsp and the per-part contribution from the matsum output. For the crash box example, suppose the total model mass is 2.4 kg and the fillet region contributes 0.09 kg of added mass — about 3.75 %, concentrated in a zone that sees the initial impact. That is too much: the fillet will behave as if it were heavier and stiffer than the design intends, and the contact force history will be wrong even if the run completes.

A defensible target is to keep added mass below about 1 % of the mass of the parts that carry the dynamic load, and to keep it out of the impact path entirely where possible.

Step 4 — Switch to selective scaling and re-verify

Replace the global target with a negative DT2MS set just below the smallest acceptable step, and enable first-cycle-only scaling so the mass does not drift as elements deform:

*CONTROL_TIMESTEP
$#  dtinit    tssfac      isdo    tslimt     dt2ms      lctm     erode     ms1st
         0       0.9         0         0   -1.2e-6         0         0         1

With DT2MS = -1.2e-6, only elements whose natural step is below 1.2 µs are scaled, and only up to that threshold. The fillet elements are still scaled, but the surrounding shell — which already runs at a larger step — is untouched, so the added mass stays local and small. If the fillet still contributes too much mass, the correct fix is mesh refinement in that region (removing the tiny elements) rather than accepting a larger scaling factor.

If the run is still too slow after selective scaling, raise the target step in small increments and watch the added-mass percentage in d3hsp after each change. Stop increasing when added mass in load-bearing parts approaches 1 %.

Step 5 — Judge the recovered solution

A completed run is not proof of a valid one. Accept the result only when all of the following hold:

  • Added mass in d3hsp is below the 1 % threshold for load-bearing parts.
  • Kinetic energy rises only when the physical impactor reaches the structure — no early spike in the scaled region.
  • Contact force and internal energy histories are smooth, with no step change at the moment scaling is applied.
  • The termination message is gone and the energy error in glstat stays within the solver's tolerance.

If the run completes but the force history still shows an early artifact, the scaling is still too aggressive in the impact path; reduce the target step further or refine the mesh there.

Mass Scaling: Global vs. Selective — Added Mass and Stability Global scaling (DT2MS > 0) Crash box shell mesh fillet scaled (unnecessary) Added mass ≈ 3.75 % of total Inertia in impact path distorted Symptom early KE spike → negative volume or energy error termination Selective scaling (DT2MS < 0, MS1ST = 1) Crash box shell mesh fillet unscaled (natural Δt) Added mass < 1 % in load path Scaling confined to small elements Verification KE rises only at impact smooth force history, run completes fix

Common pitfalls when recovering this failure

  • Lowering TSSFAC to "stabilize" the run. The scale factor shrinks the step further; it does not reduce added mass and makes the run slower. It is not a fix for scaling-induced instability.
  • Using a positive DT2MS "just a little smaller." Any positive value still scales every element up to the target. Switch to negative to get selective behavior.
  • Ignoring MS1ST. With MS1ST = 0, mass is re-evaluated every cycle and can drift as elements deform, producing a slowly growing inertia error that is hard to spot in a short run.
  • Treating a completed run as validated. Always re-check added mass and the kinetic-energy history; a run that finishes with 5 % added mass in the impact zone is not a recovered solution.
If selective scaling still leaves added mass above the threshold in load-bearing parts, the correct remedy is mesh refinement to remove the tiny elements, not a larger scaling target. Accepting the mass to save runtime trades physical fidelity for speed and will mislead any downstream design decision.