A clear, syntactic procedural interface provides access to the simulation data and conveys all physical and nonphysical information used by the application. The interface must contain language bindings for those programming languages which are commonly used to develop TCAD tools. Moreover, the interface must be operating system- and machine-independent, to achieve easy portability to different platforms.
The procedural interface must be characterized by its ease of use and an orthogonal architecture to minimize the effort involved in the creation of new tools. The interface should automatically perform conversions of coordinate systems, physical units, simulation grids, etc. so that the application can concentrate on its actual task. Fast random access to simulation data and compact database sizes are crucial for simulators operating in three geometric dimensions, so these issues cannot be neglected when designing a procedural interface. Since some TCAD applications may want to use their own internal data structures, the interface has to adapt easily to application-specific data structures.
The application sees the interchange format only through the procedural interface, therefore its design and implementation is a keystone of the whole data level. All data level implementations discussed above which feature a binary interchange format do have procedural interfaces for data access, which holds true for the VISTA data level, too. Recent approaches however do not concentrate on an interchange format as a central design issue, but rather on this procedural interface, and leave the specific implementation up to a server contacted by the TCAD client application.