Introduction

At first, let us describe the motivation for our considerations.

General Motivation

One of the most interesting applications of scientific computing is simulation. For many problems in very different fields of physics and chemistry (thermal analysis, mechanics of solids, electromagnetism, fluid mechanics, cosmology) and their applications (from semiconductor devices to weather prediction) computer simulation is a very powerful instrument. It is usually much cheaper than a real experiment, and often a real experiment is even not possible (f.e. in global climate prediction, cosmology). Numerical simulation also allows to obtain detailed information about the process. One can get the value of every interesting function at every point and for every moment of time. In a real experiment usually only some integral values or a low number of values at measurement points can be measured.

The simulation of natural processes in our three-dimensional world is usually based on the numerical solution of three-dimensional time-dependent partial differential equations. The most popular techniques of discretization of such PDEs --- Finite Element Methods (FEM) and Finite Volume or Box Methods (FV) are based on grids. So grid generation is a necessary and important part of almost all computer simulation programs. Caused by the three dimensions of the space we live in, for many applications 3D grids are required.

Another problem of many applications is the geometry description. In the real world, the domain of interest is usually subdivided into parts --- regions --- with well-defined, sharp boundaries between them. This subdivision is a necessary part of the input data. In 3D, this geometry description is a nontrivial, very complicate object, and to create and modify geometry descriptions is in general as complicate as the grid generation itself.

In the past, caused by limited computer resources and high costs, usually only 2D and even 1D simulation was possible, especially for time-dependent problems. So, simulation was restricted to situations with high symmetry in the geometry and the initial conditions. Now the hardware necessary for 3D computations is available. Today 3D computations seems to be possible even on a PC. Thus, a lot of new applications for simulation will be possible. All they need good grid generation programs. So, there seems to be a market for general purpose grid generation and geometry description packages.

Author's Motivation

From 1987 I was concerned with DIOS, a program for 2D simulation of semiconductor technology. I was responsible for geometry handling and grid generation. During this time I have considered not only the 2D problems, but also possible algorithms for 3D technology simulation, especially for geometry handling. As a result, some basic ideas of the concept described here have been developed.

After the unification of Germany in 1990, caused by general problems of industrial research in the further GDR and the termination of the GDR academy of science, the simulation of semiconductor technology with DIOS has not been continued in Berlin. The further development of DIOS now is located in the ETH Zurich.

I am convinced that the concept for 3D grid generation and geometry description I have developed for technology simulation will be useful not only for technology simulation, but also for a great class of other applications. So, my idea was to implement the concept as a general purpose grid generation package, independent of a direct application in semiconductor technology or device simulation. In 1992 I have started to implement the IBG package.

This thesis will be also used as the "theoretical part" of the documentation of the IBG package.

The Current Situation

At the current state, many simulation programs use their own grid generator. There are a lot of reasons for this situation: This situation leads to a lot of double work for the programmer and less quality of the resulting grids. But this situation may change: We see, that cheap or public domain software for 3D grid generation and geometry description of good quality, with a good modular interface, is necessary to speed up this process.

But, the result of this process will not be one universal grid generator for all applications. The reason is that different equations, different discretizations of these equation, different hardware and different application requirements lead to different optimal grids:

Example Application: Semiconductor Technology

An example for an application where simulation was already very successful is process simulation - the simulation of different technological steps in the process of fabrication of semiconductor devices. Because to perform a real test of a new technological process is very expensive and needs a lot of time, it is much easier and cheaper to make a simulation. The output of the technology simulation may be used for the simulation of the behaviour of the device (device simulation). In the past, 1D and 2D simulators have been used successfully for the simulation of such devices. But for the problems of current device fabrication 3D simulation is necessary.

Let's consider now some of the steps of semiconductor technology and the problems connected with their simulation especially in 3D:

Geometrical Properties

Let's consider at first the geometrical bounds of the problem. Usually only a small part of the complete chip will be simulated (e.g. one memory cell). A typical domain for computation may be around 10 mum, but domains up to 100 μm are possible. The typical length for the minimal geometrical object is much smaller, may be around 100 nm, may be smaller. So, even to describe the geometry it is not possible to use a regular coarse grid.

There are great parts on the device where "nothing happens". But we also have small regions which require high accuracy. So, local refinement will be necessary. Caused by the technology and the typical design, we often have regions which have approximately 2D or even 1D geometry and concentrations. That's why, 1D and 2D simulation programs have been very successful. For such regions anisotropic refinement is necessary. A possibility for integrated 1D, 2D and 3D computations is useful. For example, for the first steps 1D computation may be enough, and only after the usage of a nontrivial mask 2D or 3D is useful.

Device Description

At first let's consider the central data structure of the technology simulation. This data structure is the input and the output of every technology step. This description has to include the data which are necessary for the device simulation: But this information is not enough for technology simulation. Often we need more detailed information: A special problem is that it is not a priori defined which functions we need. This depends on the special physical model we use. For example, if we use a viscous model of mechanical transformation, we don't need to save the stress from step to step. For the elastic or viscoelastic model it is necessary to save the stress. If the reaction between the clustered and the free dopant concentration is in equilibrium we don't need to save different concentrations, else we need. So, for the device description it must be easy to change the number of functions we have to save.

There have to be trivial possibilities for the initialization of the device. Usually as the initial geometry a silicon region (the substrate) and gas will be used.

There must be also possibilities to save the current state of the device into a file after every technology step. This file can be used to restart the technology simulation or as the input for device simulation.

Deposit

Deposit is an useful step for changing the geometry. To simulate a deposit step we have to consider a transport of the deposit material through the gas phase and a chemical reaction on the surface. The most trivial model is the model of a constant growing rate. This model can be used for a reaction-controlled deposit process. The other possibility is the diffusion-controlled deposit process. Here the growing rate has to be computed by a special diffusion equation in the gas phase.

Already for the most trivial simulation --- the constant growing rate --- we obtain topological problems. The topology can change and really changes in the technological process. It is not a priori defined when these changes occur --- this depends on the simulated concentrations. So we have to compute these changes automatically.

Using the deposit step it is also possible to create very thin layers. These thin layers are a problem especially for 3D grid generators if the thickness of the layer is smaller than the usual point density in this region.

Etching

Etching is another process step used to create nontrivial structures. There are two standard methods for these etch processes. The older, easier method is the chemical etching. Here we have usually an isotropic etch rate on the surface which depends on the surface material.

But today usually other methods as ion beam etching will be used. An ion beam strikes the surface of the device. To simulate these methods we have to consider etch rates depending on the direction of the ion beam. For a more detailed simulation we also have to consider shadowing and reflection effects of the ion beam. So we obtain a more complex space dependent etch rate. The resorbtion of the sputtered material may lead to a local deposit process on another place. Since the ideal etch process is a "selective etching", in all of these cases the etch rate depends strongly on the material of the surface.

Changes of the topology are usual in this process step. Small oscillations in the results of the simulation may lead to a big number of very small regions. Sometimes they may be of interest, but often it seems better to ignore them. So, it is sufficient (and may be sometimes also necessary) to compute the topology only up to an user-defined accuracy (topological smoothing).

Implantation

The dopant implantation is usually not connected with a change of the topology. It is the basic step of creating a nontrivial dopant concentration, usually in the substrate. In this step we have to compute a new dopant concentration. This concentration may be nontrivial on places with trivial dopant concentration before. Since the dopant concentration is the most interesting output inside the regions, local refinement usually has to be done in dependence of these dopant concentrations. So an implementation usually is connected with a new refinement step. Here we have to be careful with the computation of the new concentration on new points. So it is not possible to compute the new concentrations on the old grid and then to interpolate these results onto the new grid. We have to compute the "new" part of the concentration on the new grid and to add the result to the "old" part which is interpolated from the old grid. The resulting concentration is necessary input for the refinement criteria, so it is necessary to organize the related data transfer in the grid generation step.

An interesting variant which creates topological changes is the oxygen implantation into silicon. In the parts of the silicon with high oxygen concentrations the material properties change --- we obtain silicon oxide. So we have to subdivide the silicon region into a silicon part and a silicon oxide part dependent on a critical oxygen concentration.

Oxidation

This is a very complex process step. We have to compute here many different subprocesses. At first we have to compute an oxygen diffusion through the silicon oxide. Then we have an oxidation reaction on silicon-oxide surfaces. The growing rate on these surfaces depends on the oxygen which is available there. So the growing rate is space-dependent. The volume of the created oxide is greater as the volume of the silicon used by the reaction. So we have also a mechanical deformation. Topological changes are also possible and have to be simulated.

Since oxidation is a "high temperature step" we also have a redistribution of the dopant concentrations --- a nonlinear diffusion with difficult boundary conditions on the changing boundary and a convection defined by the mechanical deformation. In principle all these subprocesses are coupled. So the mechanical stress and the dopant concentration can influence the reaction rate. The reaction rate often will be considered as isotropic, but depends in reality on the crystal orientation of the silicon. So we have to consider also anisotropic reaction rates. The mechanical properties of the silicon oxide may depend on dopant concentrations.

Epitaxy

This step can be considered as a special deposit step. Here the deposit material is silicon. But from point of view of simulation it is more complex, because it is a high temperature step and we have to compute the dopant redistribution. As in the oxidation we have to consider a diffusion problem for the concentrations with difficult boundary conditions on a changing boundary. We have also a special effect --- auto-doping --- connected with a boundary concentration which has an interaction with the concentration inside the silicon and a high diffusion. This leads to the necessity to consider boundary concentrations and equations for these concentrations.

Conclusion

So, let's list the requirements for grid generation and geometry description we get from our example application: The aim of this thesis is to find algorithms which allow to meet these requirements.