The mesh consists of the following mesh entities - nodes, edges, triangles, and tetrahedrons. There are generally two basic mesh topologies. In the first one, a mesh entity is described by its nodes - an edge by two, a triangle by three, and a tetrahedron by four nodes. In the second one, a mesh entity is represented by its forming mesh entities of the next lower dimension. Thus an edge is described by two nodes, a triangle by three edges, and a tetrahedron by four triangles. Moreover, in both approaches, each mesh entity is provided with a list of connected mesh entities of the next higher dimension. Thus each node has a list of connected edges, each edge has a list of connected triangles, and each triangle is associated with up to two tetrahedrons. Each mesh entity is also classified (by a pointer) to the model entity from which it originates and each model entity, on the other hand, has the list of mesh entities classified to it. Both topological representations are equivalent in terms of direct memory requirements. However, the second approach seems to be superior to the first one because it offers a higher level of topological consistency. Despite this fact, the first approach has been adopted for the following reasons. Firstly, this topology is basically the same as used in finite elements codes. Secondly, its application does not introduce any additional complexity and finally, it allows to realize considerable indirect memory savings based on the fact that triangles inside a region may have a temporary character. Note that a ``closed'' 3D mesh (a mesh without boundary elements) of a uniform size comprising nodes contains approximately edges, triangles, and tetrahedrons and that most of the triangles are those inside the region. It should be mentioned, however, that these savings are not applicable if there are higher-order nodes stored on the triangles as for example in the case of 15-node tetrahedron. Since the temporary triangles can be usually discarded after the completion of the discretization of a particular region, the savings are truly exploitable only if multiple region models are under consideration. The currently implemented representation of the mesh data structure is schematically presented in Table 2.2.