Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 76
PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by: B.H.V. Topping and Z. Bittnar
Paper 10

An Object Oriented Method for Tetrahedral Mesh Refinement

J.M. Gonzalez-Yuste, R. Montenegro, J.M. Escobar, G. Montero and E. Rodriguez

University Institute of Intelligent Systems and Numerical Applications in Engineering, University of Las Palmas de Gran Canaria, Spain

Full Bibliographic Reference for this paper
J.M. Gonzalez-Yuste, R. Montenegro, J.M. Escobar, G. Montero, E. Rodriguez, "An Object Oriented Method for Tetrahedral Mesh Refinement", in B.H.V. Topping, Z. Bittnar, (Editors), "Proceedings of the Third International Conference on Engineering Computational Technology", Civil-Comp Press, Stirlingshire, UK, Paper 10, 2002. doi:10.4203/ccp.76.10
Keywords: 3-D triangulations, unstructured grids, nested meshes, adaptive refinement, object oriented methods, data structures, finite element method.

Summary
Data structures, used in finite element meshes, are usually based on the definition of many arrays in which the mesh information is kept: nodes, edges, faces, tetrahedra, connectivity, genealogy, etc. Generally, in FORTRAN codes the memory management consisted in over-dimension the variables for preventing the mesh changes; in case of using adaptive mesh refinement, the memory needs must be estimated previously. Besides, in case of using mesh derefinement, arrays must be compacted for recovering the memory space corresponding to deleted elements. With the appearance of languages as C, part of these problems could be solved, since dynamic memory management allows us to get and put the amount of space that we need every moment. In addition, C structures gives us a simple way to access to the information of any item. Moreover, the use of pointers improves the accesses through the mesh information. It is well known that C structures do not get, by themselves, a saving of storing information, but it can be performed an easier programming and readability of the code, because the information of each element can be grouped independently of the kind of used data. With C++ the qualitative advance is considerable, since the concept of structure is extended to class. A class contains, besides the proper information of an element, all operations which can be carried out on this one. On the other hand, object oriented programming introduces the concept of inheritance. Any class can be defined as inherited from another, such that a new class will have all the characteristics of its ancestor and other new ones. These properties allow us to generate hierarchical classes, that is, to create complex modules from simpler ones. Other interesting concept is encapsulation. In every class we can indicate which parts could be accessible from outside it, and which ones only could be visible inside the class. By this way, errors in modification of data can be prevented. All these tools are essential for improving the programming of adaptive finite element meshes. So, an hierarchy of elements have been designed to model the different parts of a mesh: nodes, edges, faces and tetrahedra. The definition is based on a very simple class, so called element, with a few properties, but commons to all of them. From this class, other classes will be inherited; for instance, the characteristics of the subdivision of an element maintain links between fathers and sons in the mesh. Obviously, except nodes, the rest of the elements are divisible. Another class will be responsible for maintaining links between different elements, such that the hierarchical structure of the mesh will be guaranteed every moment: nodes with edges, edges with faces and faces with tetrahedra. Due to this organization, the neighbouring relationship can be easily determined and, thus, also the implementation of refinement and derefinement algorithms. Finally, in this paper a local refinement algorithm for tetrahedral meshes, based on the 8-subtetrahedra subdivision, is presented with the proposed design. Several applications are shown in different domains; see Figure 10.1, for example.

Figure 10.1: Application of the refinement algorithm; (a) initial mesh, (b) and (c) resulting meshes after 1 and 2 refinement steps, respectively.

References
1
J.M. Escobar, R. Montenegro, "Several aspects of three-dimensional delaunay triangulation", Advances in Engineering Software, 27(1/2), 27-39, 1996. doi:10.1016/0965-9978(96)00006-3
2
R. Lohner, J.D. Baum, "Adaptive h-refinement on 3D unstructured grids for transient problems", Int. J. Num. Meth. Fluids, 14, 1407-1419, 1992. doi:10.1002/fld.1650141204
3
R. Montenegro, G. Montero, J.M. Escobar, E. Rodriguez, J.M. Gonzalez-Yuste, "Tetrahedral Mesh Generation for Environmental Problems over Complex Terrains", Lecture Notes in Computer Science, Springer Verlag, Berlin Heidelberg New York, 335-344, 2002. doi:10.1007/3-540-46043-8_33
4
A. Plaza, R. Montenegro, L. Ferragut, "An improved derefinement algorithm of nested meshes", Advances in Engineering Software, 27(1/2), 51-57, 1996. doi:10.1016/0965-9978(96)00005-1

purchase the full-text of this paper (price £20)

go to the previous paper
go to the next paper
return to the table of contents
return to the book description
purchase this book (price £85 +P&P)