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.
Similar content being viewed by others
References
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
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
Weingarten V (1994) The controversy over hex or tet meshing. Mach Des 66(8):74–76
Knupp PM (2001) Algebraic mesh quality metrics. SIAM J Sci Comput 23:193–218
Knupp PM (2003) A method for hexahedral mesh shape optimization. Int J Numer Methods Eng 58(2):319–332
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
Ushakova OV (2011) Nondegeneracy tests for hexahedral cells. Comput Methods Appl Mech Eng 200(17–20):1649–1658
Gargallo-P eiró A (2014) Generation of curved meshes for high-order unstructured methods. Ph.D. thesis, Universitat Politècnica de Catalunya
Knupp PM (1990) On the invertibility of the isoparametric map. Comput Methods Appl Mech Eng 78(3):313–329
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
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
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
Knupp PM (2003) Algebraic mesh quality metrics for unstructured initial meshes. Finite Elem Anal Des 39:217–241
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
Garloff J, Jansson C, Smith AP (2003) Lower bound functions for polynomials. Comput Appl Math 157(1):207–225
Johnen A, Remacle JF, Geuzaine C (2014) Geometrical validity of high-order triangular finite elements. Eng Comput 30(3):375–382
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
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
Corresponding author
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
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
where \(b_{ijk}\) are the control values, and
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
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
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
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
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00366-016-0454-1