2. Diagnose Negative Volume Error in Solid

What the negative volume termination actually reports

In an explicit solid-element run, LS-DYNA integrates the element volume from the current nodal coordinates at every cycle. When a hexahedral or tetrahedral solid element is compressed or sheared past the point where its Jacobian determinant becomes non-positive, the solver cannot compute a valid internal force and aborts with a message of the form:

*** Error 10045 (SOL+1002)
Negative volume in solid element # 18432
  on processor # 1
  cycle 21734, time 3.8421E-03

The element number is the single most valuable piece of information in the message: it tells you exactly where to look. The cycle and time tell you when the collapse occurred, which lets you correlate the failure with a loading event, a contact engagement, or a mass-scaling ramp. The message does not tell you why the element inverted, and that is the diagnostic work this case covers.

Reproducing the failure on a controlled model

To make the diagnosis repeatable, work with a small block-compression model rather than the full assembly. A 20 × 20 × 4 mesh of ELFORM=1 (constant-stress one-point hex) solids, 1 mm edge length, compressed between two rigid plates, reproduces the same failure mode in seconds and lets you iterate on the fix without waiting for a production run.

*KEYWORD
*CONTROL_TERMINATION
$#  endtim    endcyc     dtmin    endeng    endmas
   5.0E-3         0       0.0       0.0       0.0
*CONTROL_TIMESTEP
$#  dtinit    tssfac      isdo    tslimt     dt2ms      lctm     erode     ms1st
       0.0       0.9         0       0.0       0.0         0         0         0
*MAT_PLASTIC_KINEMATIC
$#     mid        ro         e        pr      sigy      etan      beta
         1  7.850E-9  210000.0       0.3      350.0     800.0       0.0
*SECTION_SOLID
$#   secid    elform       aet
         1         1         0
*PART
$# title
Compressible block
$#     pid     secid       mid     eosid      hgid      grav    adpopt      tmid
         1         1         1         0         0         0         0         0
*ELEMENT_SOLID
$#   eid     pid      n1      n2      n3      n4      n5      n6      n7      n8
       1       1       1       2      22      21     841     842     862     861
$# ... remaining elements generated by the mesher ...
*DEFINE_CURVE
$#   lcid      sidr       sfa       sfa       offa      offb
         1         0       1.0       1.0       0.0       0.0
$#                  a1                  o1
                   0.0                 0.0
               5.0E-3              -0.45
*BOUNDARY_PRESCRIBED_MOTION_RIGID
$#     pid       dof       vad      lcid        sf       vid     death     birth
         2         3         0         1       1.0         0       0.0       0.0
*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE
$#    ssid      msid     sstyp     mstyp    sboxid    mboxid       spr       mpr
         1         2         3         3         0         0         0         0
$#      fs        fd        dc        vc       vdcp     pench     bt        dt
       0.2       0.2       0.0       0.0       0.0       0.0       0.0       0.0

Run this deck and the solver terminates with a negative-volume error on one of the elements near the loaded face. The element ID in the message is the entry point for the diagnosis below.

Locating the triggering element and its deformation mode

Do not guess from the element number alone — confirm the geometry. Two reliable routes exist:

  1. d3plot inspection. Open the last written state in LS-PrePost, select Fringe → Solid → Volume, and step to the final frame. The inverted element appears with a negative or near-zero volume fringe. Use Identify → Element to confirm the ID matches the termination message.
  2. Nodal coordinate check. For the reported element, extract the eight corner coordinates from the last d3plot state and compute the signed volume. A hex with nodes ordered n1–n4 on the bottom face and n5–n8 on the top face has volume V = (1/6)·Σ over the six tetrahedral decompositions; a negative result confirms inversion rather than a solver bookkeeping error.

Once the element is located, classify the deformation mode. Three patterns dominate in compression problems:

Deformation modeVisual signature in d3plotTypical root cause
Axial crush / barrellingElement flattened along the load axis, side faces bulging outwardExcessive plastic strain without erosion; material too ductile for the applied stroke
Shear inversionTop face displaced laterally relative to bottom face; element rhomboidContact friction or asymmetric loading driving shear past the Jacobian limit
Hourglass collapseAlternating element pattern, zero-energy mode visible in the hourglass energy plotUnder-integrated ELFORM=1 with insufficient hourglass control

In the block model above, the failure is axial crush: the prescribed −0.45 mm stroke on a 1 mm element exceeds the 45% engineering strain at which a one-point hex with this hardening curve loses positive Jacobian under the given contact stiffness. The hourglass energy curve stays below 2% of internal energy, which rules out hourglassing as the primary cause.

Negative Volume Diagnosis Path Error 10045 element #, cycle, time extracted from .out Locate element d3plot volume fringe + signed-volume check Classify mode crush / shear / hourglass check hourglass energy Mode identified? Axial crush Refine mesh along load axis or add *MAT_ADD_EROSION with effective plastic strain limit Shear inversion Reduce contact friction or switch to ELFORM=2 (fully integrated hex) Hourglass collapse Set *HOURGLASS IHQ=4 with QM=0.05–0.10 or use ELFORM=2 Verify recovery no negative volume, hourglass < 5% IE, energy ratio stable, stroke completed

Applying a targeted fix and verifying recovery

For the axial-crush case in the block model, the most direct fix is to add an erosion criterion so the element is deleted before its Jacobian reaches zero. Add the following to the material definition:

*MAT_ADD_EROSION
$#     mid    excl    mxpres     mneps    effeps    voleps    numfip       ncs
         1       0       0.0       0.0      0.35       0.0       1.0         1
$#  mnpres     sigp1     sigvm     sigmx      epsp1     epsm1      eps2      eps3
       0.0       0.0       0.0       0.0       0.0       0.0       0.0       0.0

The effeps = 0.35 threshold deletes elements once effective plastic strain reaches 35%, which is below the 45% strain at which the one-point hex inverts. The voleps field is left at zero because the erosion is strain-driven, not volume-driven. Re-run the deck: the termination message disappears, the stroke completes to 5.0E-3 s, and the hourglass energy remains under 3% of internal energy.

If the deformation mode had been shear inversion instead, the same erosion criterion would mask the symptom without fixing the cause. In that case, reduce the contact friction coefficient from 0.2 to 0.1 and switch the section to ELFORM=2 (fully integrated hex), which resists shear locking better than the one-point formulation. The trade-off is roughly 2–3× the CPU cost per element, so apply it only to the region identified by the d3plot fringe, not the whole mesh.

Before changing the mesh or material, always confirm the element ID from the termination message against the d3plot state. A mismatch between the reported ID and the visually inverted element usually means the d3plot was written before the final cycle, and the true failure element is one state later.
Do not raise dtmin or disable the negative-volume check to "get past" the error. The check exists because a non-positive Jacobian produces non-physical internal forces; suppressing it lets the solution diverge silently and corrupts every subsequent result.

Recovery checklist

CheckPass criterionIf it fails
Termination message absentRun reaches endtim without Error 10045Re-inspect d3plot for a new inverted element; the fix may have shifted the failure location
Hourglass energy< 5% of internal energy throughoutIncrease QM in *HOURGLASS or switch to ELFORM=2
Energy ratioTotal energy / initial energy within 1.0 ± 0.05Check for unphysical contact energy or mass scaling
Stroke completionPrescribed displacement reached at endtimVerify the *DEFINE_CURVE abscissa matches endtim

The same diagnostic sequence — read the message, locate the element, classify the mode, apply the mode-specific fix, verify against the checklist — transfers directly to production models. The only change is scale: on a full assembly, use LS-PrePost's History → Solid to plot the volume of the reported element over time, which shows whether the collapse was gradual (material-driven) or sudden (contact-driven).