## 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
^{1}^{1}1

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.

### Contribution

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 (www.gmsh.info).

## 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):

(1) |