At first, let us describe the motivation for our considerations.
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.
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.
At the current state, many simulation programs use their own grid
generator. There are a lot of reasons for this situation:
- The requirements of different applications are different.
- Good grid generation software is often too expensive or only for
internal use.
- The result of the simulation depends too much on the
grid. That's why the programmer needs a lot of control over the grid
generator. To write an own grid generator may be the easier way to
obtain this control instead of learning the internals of an external
grid generator.
- A grid requires a complicate, nontrivial data structure. To build-in
an external grid generator requires nontrivial data exchange.
- It is very easy to write a trivial grid generator (f.e. for a
regular, rectangular grid). Thus, fast prototyping often leads to an
own implementation for the grid generator.
- Once introduced, it is often too difficult to replace the
implementation by an external grid generator because of bad modular
design. That's why it is also often not possible to extract the grid
generation part from the simulation program for external use.
- A "hand-made" special grid for the concrete situation is often
better than the grid created by the general-purpose grid generator.
This situation leads to a lot of double work for the programmer and
less quality of the resulting grids. But this situation may change:
- Simulation is no longer restricted to 1D/2D and/or
time-independent computations. So a lot of new applications can be
considered.
- On the other hand, the number of different grid generation
concepts will not increase very fast. That means, the number of
different applications using the same algorithm will increase.
- Increasing computer power allows to use also non-optimal grids
created in non-optimal time.
- The supply of cheap and public domain software for grid
generation and their quality also will increase.
- Modular design becomes more common.
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:
- Vectorization requires structured grids.
- A simple, fixed geometry allows to use "hand-made" optimal grids.
- Time-dependent or very complicate geometries require automatic
grid generation.
- A complicate geometry requires unstructured grids.
- If effects of interest are located in small parts, local refinement
is necessary.
- Different discretization even of the same equation leads to different
optimal grids. We show this later for FEM and FV.
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:
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.
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:
- The geometry of the device. The number and the topology of the
regions is not fixed. Regions may be not connected and not simply
connected.
- The dopant concentration in silicon. We have to consider here
different sorts of dopants (P, B, As).
But this information is not enough for technology simulation. Often we need
more detailed information:
- In high temperature steps we have a dopant diffusion through the
boundaries. That's why we need the dopant concentrations also in
other regions. These concentrations are discontinuous on the
boundaries.
- Sometimes we need also boundary concentrations of the dopants
(on the silicon surface in epitaxy)
- We need other concentrations because the nonlinear diffusion
depends on these concentrations (vacancy and interstitial
concentration in silicon).
- We have dopants in different states, with different diffusion
behaviour: cluster effect in silicon, grain and boundary concentration
in polysilicon.
- For the simulation of mechanical deformation we need the
components of mechanical stress.
- Subdivision of regions and materials may be necessary. In some
models there may be different equations in different materials which
may be considered as the same material in other models (different
subtypes of polysilicon and silicon oxide).
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 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 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).
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.
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.
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.
So, let's list the requirements for grid generation and geometry description we
get from our example application:
- We have a lot of different regions (materials) and no a-priori
information about geometry and topology. Topological restrictions are
not allowed. The regions may not be convex, connected, simply
connected.
- Topological changes are possible and have to be detected and
computed automatically.
- Accurate computation of the boundary position is necessary to
obtain a correct velocity for the time-dependent boundaries.
- Boundary data (boundary conditions, concentrations) have to be
handled (e.g. interpolated to the new boundary position).
- It must be easy to create and modify the geometry description
even for a complicate geometries.
- Grid generation must be fully automatic, and we obtain high
requirements to the stability of the grid generator.
- Because a grid has to be created in every time step for a
changing geometry, the grid generation must be fast enough.
- Grids have to be created not only for regions, but also for
boundaries. The grid of a region has to be connected along it's
boundaries with the related boundary grids and the region grids on the
other side.
- Caused by the general necessity of point economy in 3D, but also
by the considerations of typical geometries, not only local, but also
anisotropic refinement is necessary.
- Refinement is necessary even to describe the topology. That
means, to describe the geometry on a regular coarse grid before the
refinement step seems not good.
- Interpolation and manipulation of functions on the grid must be
possible in grid generation time.
- The problem of interpolation of functions from the old grid has
to be considered. An algorithm leading to nearly identical grids
inside the region even if the boundary changes has to be preferred.
- To avoid negative concentrations numerical stability is very
important. This leads to high requirements for numerical grid
quality.
- Integrated 1D, 2D and 3D grid generation and geometry
description is useful.
- The interfaces have to be designed very careful. They have to be
easy to use but powerful enough to allow the necessary influence of
the application.
The aim of this thesis is to find algorithms which allow to meet these
requirements.