Mesh quality ============ A well-built model with poor mesh quality gives worse answers than the same model on a coarser-but-cleaner grid. Three metrics to watch and concrete thresholds to gate against. Aspect ratio ------------ Aspect ratio = longest element edge / shortest element edge. For HEX8-EAS, the comfortable upper bound depends on the geometry being modelled: * **Bulk solid** (uniform stress field, no bending): aspect ratio up to **20** is fine — the answer is insensitive at this ratio. * **Bending-dominated** (cantilever, plate, shell-like solid): keep aspect ratio under **5** in the bending plane. The EAS modes recover Bernoulli kinematics exactly only when the cell-shape isn't too distorted. * **Steep stress gradient** (notch, hole edge, contact): refine aggressively to bring the local aspect ratio under **2** at the gradient. The :ref:`sphx_glr_gallery_verification_example_verify_plate_with_hole.py` benchmark shows the convergence rate degradation when the bore-edge mesh isn't refined enough. For TET10 the same rules apply but with looser thresholds — quadratic shape functions on a tetrahedral element tolerate aspect ratios up to ~50 in the bulk before stiffness errors exceed 1 %. Jacobian determinant -------------------- The isoparametric mapping :math:`\mathbf{J}(\xi, \eta, \zeta)` must have **positive determinant at every Gauss point**. A negative determinant means the cell is geometrically inverted; zero means it's degenerate (a face has collapsed to a line). Either case produces a singular element stiffness. The :doc:`/reference/theory/isoparametric` chapter walks the Jacobian's role in the assembly pipeline. In practice: * Visualise :math:`\det(\mathbf{J})` on the mesh — most meshing tools output this directly. Anything below 0.1 × the maximum across the mesh is a candidate for refinement or remeshing. * Run a single-step static solve on a known-good load and watch for nodes with anomalously large displacement — those nearly always sit next to a bad-Jacobian element. Skewness -------- For HEX8 / HEX20 / TET10 / WEDGE15, skewness measures how far the cell deviates from its ideal angular geometry (right angles for hexes, equilateral faces for tets). Skewness > 0.7 is a warning, > 0.85 is a fail; refine or split the cell. Mesh-density rules of thumb --------------------------- * **Bending dominated** — at least **3 layers through the thickness** of any plate / shell-like solid being modelled with HEX8. Two layers under-resolve the bending strain; more than three is overkill. * **Concentration features** — start with **8 cells around any hole circumference**; refine if the recovered stress hasn't converged at that density. * **Modal analysis** — wavelength of the highest mode you care about must span **≥ 8 elements**. For a cantilever with first-mode wavelength ≈ 4 L (the beam is a quarter- wavelength), mode 5 would have wavelength :math:`L/2`, so at least 16 elements along the span — comfortably below the ``80×3×3`` mesh the modal-survey tutorial uses. When to upgrade element order ----------------------------- * **Concentrated stress + curved geometry**: HEX8 → HEX20. Quadratic shape functions on a 20-node hex follow curved surfaces (cylindrical pressure vessels, fillets) without needing the linear-hex's mesh-refinement crutch. * **Unstructured meshes (CAD geometries that won't accept a hex sweep)**: use TET10 from the start. TET4 is too stiff in bending and rarely earns its place except as a near-singular gap filler. * **Thin shell behaviour**: don't try to model it with a solid — use ``QUAD4_SHELL``. Five solid layers through the thickness costs 5× the DOFs and still under-resolves the bending strain. Cross-link ---------- The per-element technical sheets in :doc:`/reference/elements/index` carry element-specific mesh-quality guidance — restrictions sections list the geometry classes each element handles cleanly and the ones that need a different element.