Skip to main content
Log in

Strategies for optimization of hexahedral meshes and their comparative study

  • Original Article
  • Published:
Engineering with Computers Aims and scope Submit manuscript

Abstract

In this work, we study several strategies based on different objective functions for optimization of hexahedral meshes. We consider two approaches to construct objective functions. The first one is based on the decomposition of a hexahedron into tetrahedra. The second one is derived from the Jacobian matrix of the trilinear mapping between the reference and physical hexahedral element. A detailed description of all proposed strategies is given in the present work. Some computational experiments have been developed to test and compare the untangling capabilities of the considered objective functions. In the experiments, a sample of highly distorted hexahedral elements is optimized with the proposed objective functions, and the rate of success of each function is obtained. The results of these experiments are presented and analyzed.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

References

  1. Benzley S, Steven E, Perry E, Merkley K, Clark B, Sjaardema G (1995) A comparison of all-hexahedral and all-tetrahedral finite element meshes for elastic and elasto-plastic analysis. In: Proceedings 4th international meshing roundtable, Sandia National Laboratories, pp 179–191

  2. Cifuentes AO, Kalbar A (1992) A performance study of tetrahedral and hexahedral elements in 3D finite element structural analysis. Finite Elem Anal Des 12(3–4):313–318

    Article  Google Scholar 

  3. Weingarten V (1994) The controversy over hex or tet meshing. Mach Des 66(8):74–76

    Google Scholar 

  4. Knupp PM (2001) Algebraic mesh quality metrics. SIAM J Sci Comput 23:193–218

    Article  MathSciNet  MATH  Google Scholar 

  5. Knupp PM (2003) A method for hexahedral mesh shape optimization. Int J Numer Methods Eng 58(2):319–332

    Article  MATH  Google Scholar 

  6. Wilson TJ, Sarrate J, Roca X, Montenegro R, Escobar JM (2012) Untangling and smoothing of quadrilateral and hexahedral meshes. In: Proceedings of the eighth international conference on engineering computational technology

  7. Ushakova OV (2011) Nondegeneracy tests for hexahedral cells. Comput Methods Appl Mech Eng 200(17–20):1649–1658

    Article  MathSciNet  MATH  Google Scholar 

  8. Gargallo-P eiró A (2014) Generation of curved meshes for high-order unstructured methods. Ph.D. thesis, Universitat Politècnica de Catalunya

  9. Knupp PM (1990) On the invertibility of the isoparametric map. Comput Methods Appl Mech Eng 78(3):313–329

    Article  MathSciNet  MATH  Google Scholar 

  10. Escobar JM, Rodríguez E, Montenegro R, Montero G, González-Yuste JM (2003) Simultaneous untangling and smoothing of tetrahedral meshes. Comput Methods Appl Mech Eng 192:2775–2787

    Article  MATH  Google Scholar 

  11. Escobar JM, Rodríguez E, Montenegro R, Montero G, González-Yuste JM (2003) SUS code: simultaneous mesh untangling and smoothing code, Technote, http://www.dca.iusiani.ulpgc.es/SUScode/TechNote.pdf

  12. Dennis J, Schnabel R (1983) Numerical methods for unconstrained optimization and nonlinear equations, classics in applied mathematics, society for industrial and applied mathematics, Englewood Cliffs, New Jersey. http://books.google.es/books?id=RtxcWd0eBD0C

  13. Knupp PM (2003) Algebraic mesh quality metrics for unstructured initial meshes. Finite Elem Anal Des 39:217–241

    Article  MATH  Google Scholar 

  14. Knabner P, Korotov S, Summ G (2003) Conditions for the invertibility of the isoparametric mapping for hexahedral finite elements. Finite Eleme Anal Des 40:159–172

    Article  MathSciNet  Google Scholar 

  15. Garloff J, Jansson C, Smith AP (2003) Lower bound functions for polynomials. Comput Appl Math 157(1):207–225

    Article  MathSciNet  MATH  Google Scholar 

  16. Johnen A, Remacle JF, Geuzaine C (2014) Geometrical validity of high-order triangular finite elements. Eng Comput 30(3):375–382

    Article  Google Scholar 

  17. Geuzaine C, Johnen A, Lambrechts L, Remacle JF, Toulorge T (2015) The generation of valid curvilinear meshes. In: N Kroll, C Hirsch, F Bassi, C Johnston, K Hillewaert (eds) IDIHOM: industrialization of high-order methods-a top-down approach, vol 128, Springer International Publishing, Berlin, pp 15–39

Download references

Acknowledgments

This work has been supported by the Spanish Government, “Secretaría de Estado de Universidades e Investigación,” “Ministerio de Economía y Competitividad,”, “Programa de FPU del Ministerio de Educación, Cultura y Deporte”, “Programa de FPI propio de la ULPGC” and FEDER, grant contracts: CTM2014-55014-C3-3R and CTM2014-55014-C3-1-R.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to J. I. López.

Appendices

Appendix A. Bounds for Jacobian determinant

To verify the validity of a physical element, we can minimize the Jacobian and check if its minimum value is negative or not. To reduce the computational cost, some bounds can be used to identify quickly some valid and invalid elements.

The Jacobian of the trilinear transformation is at most a degree two polynomial in each variable. The expansion of this polynomial in terms of Bernstein basis allows to find tight bounds for this polynomial. Let us consider the Jacobian

$$\begin{aligned} J(\varvec{\xi }) = J(\xi , \eta , \zeta ) = \sum _{i=0}^{l_i} \sum _{j=0}^{l_j} \sum _{k=0}^{l_k} a_{ijk} \xi ^i\eta ^j\zeta ^k. \end{aligned}$$

In our case, \(l_i, l_j, l_k = 2\) and the total degree of the polynomial is 4, i.e., \(a_{ijk} = 0\) if \(i+j+k > 4\). The expansion of \(J(\varvec{\xi })\) in terms of Bernstein basis is

$$\begin{aligned} J(\varvec{\xi }) = \sum _{i=0}^{l_i} \sum _{j=0}^{l_j} \sum _{k=0}^{l_k} b_{ijk} B^{l_i}_i(\xi )B^{l_j}_j(\eta )B^{l_k}_k(\zeta ) \end{aligned}$$

where \(b_{ijk}\) are the control values, and

$$\begin{aligned} B_i^l(\xi ) = \left( \begin{array}{c}l\\ i \end{array}\right) \frac{(\xi + 1)^{i}(1-\xi )^{l-i}}{2^l} \end{aligned}$$

is the ith Bernstein polynomial of degree l in the interval \([-1, 1]\).

An explicit expression for the control values \(b_{ijk}\) can be found in [15]. Due to the properties of the Bernstein functions, i.e., positivity and partition of unity, it can be shown that the control values bound the Jacobian

$$\begin{aligned} \underset{i,j,k}{\text {min}} \; b_{ijk} \le J(\varvec{\xi }) \le \underset{i,j,k}{\text {max}} \; b_{ijk}, \end{aligned}$$

where \(0 \le i \le l_i\), \(0 \le j \le l_j\) , and \(0 \le k \le l_k\).

The minimum of \(b_{ijk}\) sets a tight lower bound for \(J(\varvec{\xi })\), so the condition \(\text {min} \; b_{ijk} > 0\) determines the validity of an element with a low computational cost. Only in a few ambiguous cases, when \(\text {min} \; b_{ijk} \le 0\) and \(\text {max} \; b_{ijk} > 0\), we have to minimize \(J(\varvec{\xi })\) to check if the element is valid. More accurate bounds can be found by recursively splitting the initial interval in smaller ones [16, 17]. This option is specially appropriate for high degree polynomials in which the minimization is computationally impractical.

Appendix B. Random local meshes generation

Isolated hexahedra for the first sample of the experiment 2 is constructed by assigning a random value from the interval [0, 1] to the coordinates of the eight vertexes of the element. Then, the validity of the hexahedron is checked, and only valid ones (positive Jacobian) are selected to participate in the experiment. The probability to generate a valid random hexahedron is approximately 1/1000, i.e., one valid element is generated per 1000 randomly generated elements. Due to the low computational cost to generate a random element, it is feasible to obtain a sufficiently big sample for the experiment.

For the second sample of the experiment 2, we need a set of random local meshes. As we are dealing with local meshes formed by eight elements, we have to generate randomly 26 of the 27 nodes that compose the local mesh (we can fix the free node). We need to select for the experiment only valid meshes, i.e., each element of the local mesh should be valid. However, during random generation of the nodes' coordinates, the probability to generate a valid local mesh is very low. In fact, we could not generate any valid local mesh using this procedure. Therefore, another approach was used to generate a sample of highly distorted local meshes. The procedure is as follows. We take a local mesh composed by eight ideal elements, and deform it by moving 26 nodes of the local mesh. The deformation is performed by means of an optimization process where the nodes \(\{\mathbf p_j\}_{j=1,\ldots ,26}\) are relocated to achieve a predefined distortion at certain points of each element of the local mesh. First, we select a set of points where we intend to impose the distortion. For example, we are going to impose the predefined distortion at the vertexes of each element, so there are \(8\times 8\) points. Let us denote these points as \(\{\mathbf x_{k,i}\}_{k,i=1,\ldots ,8}\), where the index k is for the elements numeration, and the index i is for the nodes numeration of the k-th element. Next, we assign to each of these points a distortion value \(\bar{\eta }_{k,i}=1/\bar{q}_{k,i}\), where the quality \(\bar{q}_{k,i}\) is a randomly generated number from \([\epsilon ,1]\). Then, the goal is to deform the initial mesh so that for each element \(\Omega _k\) , its trilinear mapping \(\mathbf x^k(\xi )\) has the predefined distortion values at the corners \(\{\mathbf x_{k,i}\}_{i=1,\ldots ,8}\) of the element, that is

$$\begin{aligned} \eta ^{*}_{k,i}=\displaystyle \frac{\left\| S_{k,i}\right\| ^2}{3h(\sigma (S_{k,i}))^{2/3}} =\bar{\eta }_{k,i}, \end{aligned}$$

where \(S_{k,i}\) is the Jacobian matrix of the mapping \(\mathbf x^k(\xi )\) evaluated in the i-th node of the element \(\Omega _k\). For that, the 26 nodes are relocated by minimizing the following objective function

$$\begin{aligned} F(\mathbf p_1,\mathbf p_2,\ldots , \mathbf p_{26} )=\sum \limits ^8_{k=1}{\sum \limits ^8_{i=1}{\left( \eta ^{*}_{k,i}-\bar{\eta }_{k,i}\right) ^2}}=\sum \limits ^8_{k=1}{\sum \limits ^8_{i=1}{\left( \displaystyle \frac{\left\| S_{k,i}\right\| ^2}{3h(\sigma (S_{k,i}))^{2/3}}-\bar{\eta }_{k,i}\right) ^2}}. \end{aligned}$$

As a result of this minimization, we obtain the new position of the nodes \(\{\mathbf p_j\}_{j=1,\ldots ,26}\) that provide a highly distorted local mesh. These local meshes are not necessarily valid, so analogously to the first sample, the validity is checked, and only valid local meshes are selected for the experiment. It is worth noting that, in general, it is not possible to construct a hexahedron with predefined quality at certain set of points, because the required qualities may not be compatible. However, this procedure provides a good method for generating arbitrary highly distorted local meshes.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

López, J.I., Brovka, M., Escobar, J.M. et al. Strategies for optimization of hexahedral meshes and their comparative study. Engineering with Computers 33, 33–43 (2017). https://doi.org/10.1007/s00366-016-0454-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00366-016-0454-1

Keywords

Navigation