Robust and efficient validation of the linear hexahedral element

Checking mesh validity is a mandatory step before doing any finite element analysis. If checking the validity of tetrahedra is trivial, checking the validity of hexahedral elements is far from being obvious. In this paper, a method that robustly and efficiently compute the validity of standard linear hexahedral elements is presented. This method is a significant improvement of a previous work on the validity of curvilinear elements. The new implementation is simple and computationally efficient. The key of the algorithm is still to compute Bézier coefficients of the Jacobian determinant. We show that only 20 Jacobian determinants are necessary to compute the 27 Bézier coefficients. Those 20 Jacobians can be efficiently computed by calculating the volume of 20 tetrahedra. The new implementation is able to check the validity of about 6 million hexahedra per second on one core of a personal computer. Through the paper, all the necessary information is provided that allow to easily reproduce the results, write a simple code that takes the coordinates of 8 points as input and outputs the validity of the hexahedron.


Automatic HFL(Z) Validity Checking for Program Verification

We propose an automated method for checking the validity of a formula of...

A family of finite element Stokes complexes in three dimensions

We construct finite element Stokes complexes on tetrahedral meshes in th...

Finite Element Methods For Interface Problems On Local Anisotropic Fitting Mixed Meshes

A simple and efficient interface-fitted mesh generation algorithm is dev...

Revisiting Semantics of Interactions for Trace Validity Analysis

Interaction languages such as UML sequence diagrams are often associated...

Simple finite elements and multigrid for efficient mass-consistent wind downscaling in a coupled fire-atmosphere model

We present a simple finite element formulation of mass-consistent approx...

HoneyTop90: A 90-line MATLAB code for topology optimization using honeycomb tessellation

This paper provides a simple, compact and efficient 90-line pedagogical ...

One machine, one minute, three billion tetrahedra

This paper presents a new scalable parallelization scheme to generate th...

1 Introduction

Hexahedral meshes are often preferred to tetrahedral meshes as they offer excellent numerical properties: faster assembly remacle2016gpu, orthogonal grids in the wall-normal direction for wall-bounded flows, high accuracy in solid mechanics, both for statics wang2004back and dynamics, or for quasi-incompressible materials benzley1995comparison 111

In many references, the accuracy of linear hexahedra is shown to be equivalent to the accuracy of quadratic tetrahedra with the same mesh density. Note that quadratic tetrahedra have one extra node per edge of the mesh, which multiplies the number of degrees of freedom by

.. Generating hex-meshes is however still an open problem for general 3D domains. Finite element meshes should ideally fill the 3D domain in a conformal fashion but should also respect some size and quality constraints in order to be suitable for finite element formulations. The validity of elements is usually the most important constraint and can be checked by verifying the local injectivity of their mapping; in the usual finite element language, one should check the positivity of the Jacobian determinant. While checking the validity of a linear tetrahedron just consists in ensuring its volume positivity, checking the validity of a linear hexahedron is not trivial.

Testing hexahedron validity is of particular interest when generating hex meshes with an indirect method baudouin2014frontal; botella2016indirect; sokolov2016hexahedral. In these methods, a huge set of hexahedral elements whose cardinality can be as high as 40 times the number of vertices of the mesh is computed pellerin2017. Computing the validity robustly and rapidly is then essential for the efficiency of these methods. Many algorithms have been proposed in the literature for checking the validity of hexahedra, however they do not provide any strong guarantees except method of johnen2013geometrical. In this paper, we particularize this method for the linear hexahedron and propose an efficient and simple implementation.

Previous works

knupp1990invertibility has shown that the positivity of the Jacobian determinant at the corners of a linear hexahedron, as well as on its edges, is not sufficient to ensure its validity. He conjectured that any hexahedra having a positive Jacobian determinant on its boundary is valid. However, the Jacobian determinant on the faces are biquadratic functions; verifying their positivity is complex and, to our knowledge, no practical algorithm has been presented.

Some authors have proposed to check the validity by ensuring the positivity of sets of tetrahedra constructed from the nodes of the hexahedron ivanenko1999harmonic; grandy1999conservative; ushakova2001conditions; vavasis2003bernstein; shangyou2005subtetrabedral. The number of tetrahedra ranges from to . ushakova2011nondegeneracy compiled and empirically studied these tests. It is known that the positivity of the corner tetrahedra is a necessary condition knupp1990invertibility; ivanenko1999harmonic. ushakova2011nondegeneracy showed that none of the tests that consider less than tetrahedral volumes constitute a sufficient condition. The volume of the hexahedron is sometimes used in commercial packages ushakova2001conditions. It can be expressed from the volume of tetrahedra. It is a poor test alone but gives a sharper necessary condition when combined with the corner tetrahedra.

Another original method for checking the validity of linear hexahedra has been proposed by knabner2003conditions. The Jacobian determinant of the hexahedron is expanded into the monomial basis. Positivity conditions are derived from the monomial coefficients of respectively a quadratic one-dimensional polynomial, a biquadratic polynomial and a triquadratic polynomial. The latter enables to check the positivity of the Jacobian determinant of the hexahedron. However, it is needed to linearize inequalities containing a square root which implies this approach to be only a sufficient condition. A parameter provided by the user allows to determine the precision of this linearization.

A method for checking the validity of curved finite element of any type has been proposed by johnen2013geometrical. This method consists in expanding the Jacobian determinant into the Bézier basis of order 2. Thanks to the convex hull property of Bézier expansion, the minimum of these coefficients gives a lower bound of the Jacobian determinant. Moreover, the minimum of specific coefficients gives an upper bound of the minimum of the Jacobian determinant. These bounds are subsequently sharpened by “subdividing” in a recursive and adaptive manner which allows to compute the minimum of the Jacobian determinant with any prescribed tolerance. This method can be employed for the validity of the linear hexahedron since it is a particular case of the curved hexahedron.


To the best of our knowledge, the method johnen2013geometrical is the only method to robustly check the validity of linear hexahedra. However, the general framework used for curved elements is not well-adapted for an efficient computation of the validity of one specific type of element. In this work, this method is optimized for to the specific case of the linear hexahedron. We start by introducing the validity of the linear quadrangle and hexahedron (§2), and the Bézier expansion of the Jacobian determinant (§LABEL:s:bezier). Then, two substantial improvements are presented: we show that only quantities have to be computed instead of LABEL:s:only20) and that those quantities can be computed as the volume of tetrahedra (§LABEL:s:tet2lag). Finally, we present the complete algorithm (§LABEL:s:algo) and demonstrate that this new algorithm is robust and efficient (§LABEL:s:results). The C++ code implementing the algorithm will be available in Gmsh geuzaine2009gmsh (

2 Validity of finite elements

Let us consider a -dimensional physical linear finite element which is geometrically defined by a set of points , called nodes, and a set of Lagrange shape functions . These polynomial functions allow to map a reference unit element, represented by the domain of definition , to the physical element (see Figure LABEL:f:mapping):