|   | 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.
 
 References 
 purchase the full-text of this paper (price £20) 
go to the previous paper | |