Harmonic solver hangs at 0% after geometry simplification — empty void bodies causing singular stiffness matrix?

I ran into a solver hang that unfortunately burned significant core time and I’m hoping someone can help me understand what happened and confirm my proposed fix before I burn more hours.

The Project: A custom phono turntable plinth constructed from laminated plywood sheets and including pockets of dense material (tungsten putty) intended to damp structural acoustics.

Simulations: Harmonic Analysis, Modal-Based numerics, 2nd-order elements, 192 cores. A typical run of this simulation (see “SIM 4”) completed successfully in ~49 minutes / ~155 core hours.

What Changed: I duplicated SIM 4 and removed nine cylindrical solid bodies (~25mm diameter cylinders filled with the tungsten putty) from the geometry. These bodies had bonded contacts to the surrounding plywood volume. The contacts were deleted along with the bodies — confirmed gone. Re-meshed. Everything else identical: same boundary conditions, same material assignments, same numerics, same simulation control settings.

What happened: Job launched, and with the expectation of similar wall clock/compute time, I walked away from the desk for 3 hours. When I returned, the sim was hanging at 0% and had burned more than 600 core hours. Simulation killed manually.

Mesh quality is probably the issue:

Non-orthogonality max: 88.4  (acceptable ceiling: 88.0)
Edge ratio max:        242.8  (acceptable ceiling: 100.0)  ← likely culprit
Volume ratio max:      110.3  (acceptable ceiling: 100.0)
Skewness max:          4.0    (acceptable: fine)
Aspect ratio max:      51.1   (acceptable: fine)

The edge ratio overage is the obvious red flag. My hypothesis: Deleting the cylindrical bodies leaves open voids in the mesh, and I suspect I’m getting bad elements at the boundary between the finer mesh of the empty pocket walls and the coarser surrounding material.

My proposed fix: Add local Volume custom sizing refinement regions around each pocket location using geometry primitives (spheres or cylinders placed at pocket coordinates, sized ~1.5× pocket diameter, fineness 5.7 vs global 5.0). This should force smooth mesh grading through the transition zone rather than the abrupt jump that’s generating the degenerate elements. I’ve set this up and am ready to re-mesh, but would love insights from the community before pressing the button:

  1. Does my diagnosis sound right — is the edge ratio 242.8 the solver killer, and is the mechanism what I think it is?

  2. Is local primitive-based volume refinement the right fix, or is there a cleaner approach to meshing around open cylindrical voids in a solid body?

  3. Is there any way to pre-validate that a mesh will not produce a singular stiffness matrix before launching the full harmonic run?

Any input appreciated!

Hi,

To me it looks like the solver halts at some point for an unclear reason.

On a side note, I see that you are going for 192 cores and 96 parallel processes for all runs. The solve time does not scale linearly, so, for example, having 192 cores instead of 1 core doesn’t mean that the simulation will finish 192x faster.

At the same time, going for 1 core is probably not going to allow you to run the study because there won’t be enough memory. The most cost-efficient option is to have enough processors (and potentially reduce parallel processes if needed) to allow you to run the simulation, but not more than that.

It’s somewhat likely that you’d be able to run this with maybe 32 cores/4 processes (or maybe 32 cores/2 processes), and for sure 64 cores/4 processes. Maybe even 16 cores/2 processes, but it would require testing.

Thanks, Ricardo. I got a little fast-and-loose with my compute budget, since prior simulations were finishing smoothly and quickly within this project. That certainly came back to bite me on SIM 8.

I read the article you linked—your point is well taken…I’ll keep it set to automatic moving forward.

Re: the problem with Sim 8… the geometry optimization section seems relevant to what I’m working through. The goal of that run is to establish a baseline: what’s the behavior of empty cylindrical voids in the structure after solid bodies were removed from them? In my initial post, I was thinking that the mesher created bad elements while trying to grade those cylindrical pocket surfaces to the coarser surrounding volume, exceeding the edge ratio limit. So I added local volume refinement primitives around each pocket location (fineness 5.7 vs global 5.0). I haven’t re-run it yet, because I’m trying to learn how to break down the actual solver log.

To that end, I fed the log to Claude and it pointed out that the job actually completed assembly as well as the modal phase before I killed it (because it looked like it was hanging at 0% on the browser end). In any case, the core hour spend clearly wasn’t worth it, and I’m still hopeful that the local volume refinements (and auto compute budgeting) can address the edge ratio issue on the next attempt. In any case, I had to make a geometry change to account for the real-world thickness variance of birch plywood…which means rebuilding the model before trying again anyway. I’ll be sure to update the project’s forum thread when I do. Thanks for the help.