1.1.1.1 PAL

The PIF application layer provides a set of functions to read and write the list oriented data from or to a PIF file respectively.

Figure 1.2: Example point list as used in PIF ASCII files.
\begin{figure}\hrulefill
{\small\begin{verbatim}(pointList points_1
(valueTy...
....5000000000000000
-1.0000000000000000 ))\end{verbatim}}
\hrulefill
\end{figure}

Figure 1.3: Example line list as used in PIF ASCII files.
\begin{figure}\hrulefill
{\small\begin{verbatim}(lineList lines_1
(nameList
...
...meList
(ref points_2
(valueList 7 8))))\end{verbatim}}
\hrulefill
\end{figure}

Fig. 1.2 and Fig. 1.3 give an example for a point and a line list respectively as they are stored in the intersite file format. The PAL defines several functions to read and write such lists into memory and to disk respectively. For the case of the point list a set of functions to read data is:

The corresponding write functions for a point list are:

Functions as the ones shown in the above example exist for all other lists that are stored in a PIF file. The lists can be categorized into the ones that describe the geometry of a device and the ones that describe gridding information and quantities. The geometry description lists are:

Note that in above definitions of the various geometry elements no constraints are applied at all. It is, e.g. not defined whether a face or solid describes a single connected domain, a multiply connected or disconnected domain, or any domain at all. Indeed there are no such constraints existing in the PAL. Instead, there exists a 'cookbook' that accurately describes such (and other) constraints on the data. Unfortunately, the PAL does not implement the constraints defined in the cookbook simply because it was released too late. As a consequence several semantically different representations of PIF are existing today. Another drawback of the PAL is that it does not provide access to the full functionality of the underlying libraries. Therefore, some of the higher level libraries are also using functions that are logically beneath the top level.

Additionally to the above mentioned lists there are also lists that store grids, quantities and data like segment descriptions. Segment descriptions are used to assign a name to a region in order to be able to identify the different simulation domains from within the simulator.

High level libraries were meant to deal with complex tasks like the modification of the geometry (for topography simulations) or the handling of grids and quantities stored thereon (grid generation, point location, interpolation). Fig. 1.4 depicts the architecture of the high level libraries.

Figure 1.4: High level PIF libraries. These libraries support the handling of geometry and grid issues. The grid support library (GRS) provides functions to interpolate data on a grid. The two-dimensional geometry support (G2S) and the three-dimensional geometry support (G3S) libraries are meant as an aid for two-dimensional and three-dimensional topography operations respectively. The C list support (CLS) library provides a distinct view of the PIF data used in the graphical PIF editor (PED [7]). The material server (MAT) defines a database of materials used in TCAD simulations.
\begin{figure}\centering\psfig{file=pics/pif-high, width=0.4\linewidth}\par\end{figure}

High level libraries are built on top of the PAL. With some exceptions they use functions as the ones described in the previous section to transfer data from the file representation into memory and vice versa. Due to the lack of a data model in the PAL all of the libraries more or less define their own data representation.

2003-03-27