Nodal fields

The primary nodal field is cotet(3,*), which contains the actual coordinates of the mesh. This includes the coordinates of these parts of the mesh which are not meshed by tetrahedral elements. During the refinement only nodes are created, existing nodes are not deleted. The actual maximum node number is nktet, the actual nodal allocation size is nktet_. Both numbers change during the refinement.

Figure 180: Nodal fields

iexternnode(*) is a nodal field which indicates whether the node is on the surface (value 1) or internal (value 0). The field h(*) specifies the desired edge length at each node. Both these fields change dynamically during the refinement. The structure of fields cotet(3,*), iexternnode(*) and h(*) is illustrated in Figure 180.

Figure 181: Element per node relationship

Finally, the fields ipoeln and ieln are used to specify the elements containing a specific node (Figure 181). For a node i the value ipoeln(i) points to an entry ieln(1,ipoeln(i)) containing an element to which the node belongs. If there are more such elements, the next element is stored in ieln(1,ieln(2,ipoeln(i))) and so on until ieln(2,ieln(2,ieln(2...,ipoeln(i))))=0. At any time during the scalar ifreeln contains the next free position in ieln, whereas the entry ieln(2,j) for any not used position j in the field points to a next free position.