As stated in Section 2.1.2 and [Hala94], interpolation of attributes between different grids is one of the most important tasks inside a TCAD framework. This task has to be as accurate, reliable, and as fast as possible. Depending on the grid the attribute is defined on, GRS makes provisions for three possible cases:
For tensor product grids, linear and higher-order (using the AKIMA method [Hyma83][Akim70]) interpolation is implemented on the tensor product grid class. In the case of higher-order interpolation, the spatial derivatives of the attribute under consideration have to be calculated prior to interpolation. This is done in the corresponding grid preparation method of this class. Additionally, the grid axis ticks have to be sorted into ascending order in order to allow an time point location. The respective attribute values have to be shuffled accordingly, which is also done in the grid preparation method.
Searching in point cloud grids is possible through using a search structure like an N-ary tree [Same90], which allows an point location on the point cloud. However, the interpolation function for point cloud grids is currently not implemented in GRS, but rather exists as a stand-alone prototype using a modified SHEPARD's method [Alfe89][Agis91].
When interpolation on an unstructured grid is to be performed, a search structure has to be used also, which enables locating the element in which a given point lies. Besides the N-ary tree, several other geometric search structures can be applied which allow an effort point location [Prep85], like the slab method, the chain method, the triangulation refinement method and the trapezoid method.
Among those methods, the triangulation refinement method (in the following referred to as the KIRKPATRICK point location method [Kirk83]) was chosen for the point location in unstructured grids, since it uses triangles (in two-dimensional space) and relations between them as data structures, and a triangle represents already the primitive geometric grid element in two dimensions. Furthermore, this method uses a hierarchical tree of those triangles, and this tree structure is equally well suited to represent hierarchical unstructured grids too. Therefore two goals (point location and hierarchical grid representation) can be met with a single data structure, which is an important conceptual advantage in the application of this method to unstructured grids.
This tree structure is called a search-directed acyclic graph (SDAG), and has to be built prior to interpolation on unstructured grids. With this search structure, the grid element in which a given point lies and therefore is to be used for the interpolation can be located in time. The KIRKPATRICK method in general, and the construction of the SDAG in particular are discussed in the following section.