Contents

Your solver just printed β€œnegative Jacobian detected” and stopped. πŸ›‘

You remesh. You rerun. You go to bed. But you still don’t know why that number matters.

Here’s the answer. The Jacobian determinant, $\det(\mathbf{J})$, is a single number that tells you whether each element is valid:

$\det(\mathbf{J})$ Meaning
$> 0$ Valid β€” right-handed, positive area, integration works
$= 0$ Collapsed β€” zero area, mapping is singular
$< 0$ Inverted 🚨 β€” inside-out, solver computes negative stiffness and diverges

It’s the mesh equivalent of the SPD condition: one bad number and the whole simulation is compromised.

See also: SPD matrices in engineering Β Β·Β  Tensor visualization (rank 2, 3, 4)


The Jacobian as a local ruler

Think of the Jacobian as the local zoom lens of a coordinate mapping. At every point it tells you: how much does a tiny patch of reference space stretch, rotate, and β€” crucially β€” does it flip? That last question is what det(J) answers.

Formally: if $\pmb{\xi} = (\xi, \eta)$ are reference coordinates and $\mathbf{x} = (x, y)$ are physical coordinates, then

\[\mathbf{J} = \frac{\partial \mathbf{x}}{\partial \pmb{\xi}} = \begin{bmatrix} \dfrac{\partial x}{\partial \xi} & \dfrac{\partial x}{\partial \eta} \\[8pt] \dfrac{\partial y}{\partial \xi} & \dfrac{\partial y}{\partial \eta} \end{bmatrix}.\]

Each column is a tangent vector: β€œif I nudge $\xi$ by a tiny amount, where does the physical point move?” The two columns span a parallelogram whose signed area is exactly $\det(\mathbf{J})$:

\[dA_{\text{physical}} = \det(\mathbf{J})\; dA_{\text{reference}}.\]
  • $\det > 0$: the parallelogram is right-handed β€” patch is valid, correctly oriented.
  • $\det = 0$: the two tangent vectors are parallel β€” the patch collapsed to a line.
  • $\det < 0$: the vectors crossed over each other β€” the patch flipped inside-out.

Where it appears

Context Jacobian What det(J) means
FEM isoparametric elements $\mathbf{J} = \partial\mathbf{x}/\partial\pmb{\xi}$ Area/volume ratio; must be > 0 at every integration point
Nonlinear continuum mechanics Deformation gradient $\mathbf{F} = \partial\mathbf{x}/\partial\mathbf{X}$ Volume ratio $J = \det\mathbf{F}$; $J \leq 0$ = interpenetration
Change of variables Any coordinate transform Scale factor in the integral $\int f\,dV_\text{phys} = \int f\,\det(\mathbf{J})\,dV_\text{ref}$
Polar / cylindrical coords $r$ in $dA = r\,dr\,d\theta$ Always positive (by construction of the coordinate system)

Play with it β€” 2D mapping

Drag the corner nodes of the physical element (right panel). The two coloured arrows at the centroid are the columns of J β€” the tangent vectors $\partial\mathbf{x}/\partial\pmb{\xi}$ (blue) and $\partial\mathbf{x}/\partial\pmb{\eta}$ (orange). $\det(\mathbf{J})$ is the signed area of the parallelogram they span.

Presets
Status
Jacobian at centroid

Reference element (ΞΎ,Ξ·) ∈ [βˆ’1,1]Β². Fixed β€” always a unit square.

Drag corners to deform. β–  Blue arrow = βˆ‚x/βˆ‚ΞΎ (J col 1)   β–  Orange arrow = βˆ‚x/βˆ‚Ξ· (J col 2). The parallelogram area = det(J).


Play with it β€” 3D mesh quality

Warp sliders distort a 3Γ—3Γ—3 brick mesh (27 hex elements). Each element is colored by its $\det(\mathbf{J})$. Click any row in the element table to select it β€” blue edges highlight it in the mesh, the isolated view shows it alone with its three Jacobian tangent vectors, and the full $3\times3$ $\mathbf{J}$ matrix updates live as you move the sliders.

Mesh distortion
Presets
Mesh stats
Color legend
β–  Green det(J) > 0.05 β€” valid β–  Yellow det(J) β‰ˆ 0 β€” near-collapsed β–  Red det(J) < 0 β€” inverted 🚨
Per-element det(J) β€” click a row to highlight the element and see its full J matrix

3Γ—3Γ—3 brick mesh (27 elements). Drag to orbit. Click any element in the table to select it β€” selection persists when sliders move.


Theory

Bilinear quad β€” explicit formula

For a 4-node quad with corner nodes $\mathbf x_1,\ldots,\mathbf x_4$ (ordered BL, BR, TR, TL) and bilinear shape functions $N_a = \tfrac14(1+\xi_a\xi)(1+\eta_a\eta)$, the Jacobian at the element centre $(\xi,\eta)=(0,0)$ is:

\[\mathbf{J} = \frac{1}{4} \begin{bmatrix} (-x_1+x_2+x_3-x_4) & (-x_1-x_2+x_3+x_4) \\[4pt] (-y_1+y_2+y_3-y_4) & (-y_1-y_2+y_3+y_4) \end{bmatrix}.\]

Row 1 is $(\partial x/\partial\xi,\; \partial x/\partial\eta)$; row 2 is $(\partial y/\partial\xi,\; \partial y/\partial\eta)$. Column 1 is the blue tangent vector ($\xi$-direction), column 2 is the orange tangent vector ($\eta$-direction). In general $J_{ij} = \partial x_i / \partial \xi_j$.

Why det(J) ≀ 0 breaks everything

The element stiffness matrix is:

\[\mathbf K_e = \int_{-1}^{1}\int_{-1}^{1} \mathbf B^\top \mathbf C \,\mathbf B\; \det(\mathbf J)\; d\xi\, d\eta.\]

The strain-displacement matrix $\mathbf{B} = \mathbf{J}^{-1}\, \partial \mathbf{N}/\partial \pmb{\xi}$ requires inverting J. If $\det(\mathbf{J}) = 0$, that inverse doesn’t exist β€” strains blow up to infinity. If $\det(\mathbf{J}) < 0$, the integrand flips sign, the stiffness contribution goes negative, and the assembled $\mathbf K$ loses positive definiteness (see the SPD article). Cholesky fails; iterative solvers diverge.

$\det(\mathbf J)$ Geometry $\mathbf{B}$ matrix Solver
$> 0$ Valid, right-handed Finite, correct Works
$= 0$ Collapsed (zero area) Singular β€” $\mathbf{J}^{-1}$ undefined Fails
$< 0$ Inverted, left-handed Wrong sign β€” $\mathbf K$ not SPD Diverges

Connection to the deformation gradient

In nonlinear mechanics, $\mathbf F = \partial \mathbf x / \partial \mathbf X$ is the deformation gradient and $J = \det \mathbf F$ is the volume ratio (current / reference). $J \leq 0$ means the material has collapsed or interpenetrated β€” physically impossible. Most hyperelastic models (Neo-Hookean, Mooney-Rivlin) include a $\ln J$ or $(J-1)^2$ term in the strain energy that blows up as $J \to 0^+$ to prevent this automatically.


References

[1] Hughes, T. J. R. (2000). The Finite Element Method. Dover. Ch. 3 on isoparametric elements and the Jacobian. [2] Zienkiewicz, O. C. & Taylor, R. L. (2000). The Finite Element Method Vol. 1 (5th ed.). Butterworth-Heinemann. [3] Knupp, P. M. (2001). Algebraic mesh quality metrics. SIAM J. Sci. Comput. 23(1), 193–218. [4] Bonet, J. & Wood, R. D. (2008). Nonlinear Continuum Mechanics for Finite Element Analysis (2nd ed.). Cambridge. Ch. 4 on the deformation gradient and $J = \det \mathbf F$.