Mesh quality · 4 min read

The Jacobian, explained

Every FEA tool warns you about it. Here is what it measures, and a cantilever you can damage cell by cell to watch the solver struggle and the answer drift.

Jacobian, visually

Jscaled Jacobian at a corner = det [ e₁ e₂ e₃ ]|e₁| · |e₂| · |e₃|volume the three edges actually span, over the volume they would span if they were perpendicular
at this corner1.00
worst corner of the cell1.00
< 0folded0collapsed0.6warning line1.0perfect

e₁, e₂, e₃ are the three edges leaving the corner. Pull one corner: skew it and J slides toward the 0.6 warning line Cubit's Verdict library uses for hexes, push it onto a neighbour and J hits 0, push through and the cell is inside out.

What it measures

The Jacobian measures deformation: how far a cell is from its ideal shape. A perfect cube has a Jacobian of 1. A cube with a collapsed corner has a Jacobian of 0.

If the Jacobian is poor it can cause wrong stiffness and an ill-conditioned matrix, which results in slow or failed solves and answers that drift from the truth.

Wrong stiffness, cell by cell

Eight cells, a beam in pure bending, and an exact answer to compare against. Each cell prints how far its stiffness is from the analytical value.

Slides the three interior nodes to the right. At 1.0 a corner lands on its neighbour.
Clean mesh
Your mesh
Each cell: stiffness factor = analytical strain energy ÷ FE strain energy, then FE energy / analytical energy in millijoules. A cell that stores less energy than it should under the same load is too stiff. 1.00× is exact, 1.30× is 30% too stiff, 0.80× is 20% too soft. scaled Jacobian ≥ 0.6 0.2 to 0.6 0 to 0.2 folded
40 × 10 mm steel beam, plane stress, end moment. Elements are incompatible-mode quads, the formulation most commercial codes use for quads and hexes, which is exact in pure bending when the cells are rectangles. That is why the clean mesh prints 1.00 everywhere: every deviation below is caused by cell shape alone.

Slow solves and drifting answers

Now a bigger mesh: a 100 mm cantilever, 180 cells, tip load, solved live by an iterative solver so you can watch it work. The top mesh is clean. In the bottom one, the sliders push mid-height nodes sideways into their neighbours.

Drag past 1.0 and the cells fold inside out.
Clean mesh
Your mesh
scaled Jacobian ≥ 0.6 0.2 to 0.6 0 to 0.2 negative, folded deformed shape, exaggerated
Plane stress, E = 200 GPa, ν = 0.3, solved by plain conjugate gradient to a relative residual of 10⁻⁹. Tip deflection is compared with the Timoshenko beam value of 2.016 mm. Cell colour is each cell's minimum scaled Jacobian, measured at the 2×2 integration points where the solver actually samples it. Most tools report it at the corners, which flags a fold a little earlier. "Stiffest ÷ softest" is the ratio of the largest to smallest diagonal entry of the stiffness matrix, a rough conditioning gauge.
What to watch

Iterations climb before the answer breaks. Skew the cells and the solver needs more passes to converge while the tip deflection stays close. That is ill-conditioning. Then it snaps. Past a scaled Jacobian of zero the stiffness matrix stops being positive definite and the solve fails outright.

Why a bad cell corrupts stiffness

Stiffness is an integral over the cell of Bᵀ D B. B turns node movements into strain and is pure geometry. D turns strain into stress and is pure material. The integral is done numerically at a few Gauss points, and each point is weighted by the Jacobian determinant. Distort the cell and both B and the weight go wrong, in different amounts in different directions.

Why you can't just clamp the stiffness to ±10%

The error is not a scalar. A skewed cell is too stiff along one axis and too soft along another, and its wrong shape functions also misplace where load transfers to the neighbours. Clamping the magnitude would leave the direction wrong and break equilibrium with the cells around it. Fixing the mesh is cheaper than fixing the maths, which is why every solver reports the Jacobian instead of correcting for it.

Why the clean mesh is not exactly the analytical value

Four-node quadrilaterals are slightly too stiff in bending, a known effect called shear locking, so even the clean mesh under-predicts the tip deflection by a few percent. Higher-order elements or incompatible-mode formulations fix this. The demo keeps the plain element on purpose so the distortion effect is not hidden by a cleverer formulation. The analytical value is the Timoshenko beam, which includes shear deflection, about 0.8% of the total at this aspect ratio.

What "CG iterations" tells you

A direct solver factorises the matrix once and gives no such signal. The demo uses an iterative solver, conjugate gradient, whose iteration count grows with the condition number of the stiffness matrix. A well-shaped mesh converges in a few hundred passes. Distorted cells add extreme stiffness ratios, the condition number rises, and the count climbs. Real solvers use preconditioners that hide much of this, which is why the effect is worth seeing once without one.