doping-function
Doping profiles
Doping profiles can be specified by the product of n functions. n is the dimension of the simulation,
i.e. n = 1, 2 or 3. Each function depends only on
one coordinate.
The doping profile is independent of the regions specified before. The
function is applied to the region given by the specifier only-region .
The doping concentration is at the position specified by the specifier
position .
The function is normalized such that the result is doping concentration at
position position .
The impurity number specifies the kind of impurities used in the profile.
Note: Can be used with a doping
concentration sweep where the doping-concentration is varied
stepwise.
!------------------------------------------------------------------!
$doping-function
optional !
doping-function-number
integer
required !
impurity-number
integer
required !
base-function-1
character
optional !
base-function-2
character
optional !
base-function-3
character
optional !
apply-function-1-along-dir
integer_array optional !
apply-function-2-along-dir
integer_array optional !
apply-function-3-along-dir
integer_array optional !
doping-concentration
double
required
!
position
double_array optional
!
parameters-base-function-1
double_array
optional !
parameters-base-function-2
double_array
optional !
parameters-base-function-3
double_array
optional !
exclude-materials
integer_array optional !
only-region
double_array
optional !
!
doping-profile-defined-by-function
character
optional !
new
!
read-in-doping-file
character
optional !
doping-filename
character
optional !
!
doping-sweep-active
character
optional !
doping-sweep-step-size
double
optional
!
doping-sweep-number-of-steps
integer
optional
!
$end_doping-function
optional !
!------------------------------------------------------------------!
Example
Constant doping profile
$doping-function
doping-function-number = 1
impurity-number =
1
! properties of this impurity type have to be here:
$impurity-parameters
doping-concentration = 0.5d0
! 0.5 * 10^18 cm^-3
only-region
= 10.0d0 160.0d0
$end_doping-function
Note: Can be used with a doping
concentration sweep where the doping-concentration is varied
stepwise.
doping-function-number = 1
= 2
= ...
An integer number. At the very end, the doping function numbers must be given in
a way, that a dense ascending series starting at 1
can be formed.
impurity-number = 1
= 2
= ...
An integer number. Properties of this impurity number have to be specified
later.
This is a reference to an impurity and its parameters which will be specified by
$impurity-parameters .
More complicated doping profiles
You can use different base functions along each simulation direction
to define more complicated doping profiles.
base-function-1 = string-1
base-function-2 = string-2
base-function-3 = string-3
a valid base function name
string-i can be one of the one-dimensional functions:
constant ,
linear ,
gauss-1d ,
step-1d ,
well-1d
The final doping profile will result from a product of these functions.
parameters-base-function-1 = double1 ....
parameters-base-function-2 = double1 ....
parameters-base-function-3 = double1 ....
function parameters
Parameters for the selected base functions. Dependent on the base function
chosen, the following is expected:
Constant base function: Constant doping profile
base-function-1 = constant
No further function parameters required in 1D simulations.
Note: Can be used with a doping
concentration sweep where the doping-concentration is varied
stepwise.
Linear base function: Linear doping profile
base-function-1 =
linear
The example shows which additional parameters are necessary.
Example:
$doping-function
doping-function-number =
1
! doping function #1
impurity-number
= 1
! properties of this impurity type have to be specified below
doping-concentration =
0.5d0
! 0.5 * 1.0 * 10^18 cm^-3 = 0.5 * 10^18 cm^-3
position
= -20d0
! doping concentration refers to that position, i.e. - 20 nm
only-region
= -20d0 0d0
! only from - 20 nm to 0 nm
base-function-1
= linear
! linear doping profile
apply-function-1-along-dir = 0 0 1
! along z direction
parameters-base-function-1 = -20d0 0d0
0.5d0 0.0d0 ! (1) zmin = -20 nm
(2) zmax = 0 nm
! (3) 0.5 * 10^18 cm^-3 (4)
0.0 * 10^18 cm^-3
doping-function-number
= 2
! doping function #2
impurity-number
= 2
! properties of this impurity type have to be specified below
doping-concentration =
1d0
! 1.0 * 10^18 cm^-3
position
= 10d0
! doping concentration refers to that position, i.e. 10 nm
only-region
= 0d0 10d0
! only from 0 nm to 10 nm
base-function-1
= linear
! linear doping profile
apply-function-1-along-dir = 0 0 1
! along z direction
parameters-base-function-1 = 0d0 10d0
0.0d0 1.0d0 ! (1) zmin = 0 nm
(2) zmax = 10 nm
! (3) 0.0 * 10^18 cm^-3 (4)
1.0 * 10^18 cm^-3
$end_doping-function
LSS theory (Lindhard, Scharff, Schiott theory) -
Gaussian distribution of ion implantation impurity profile
base-function-1 = gauss-1d
! LSS theory
parameters-base-function-1 = center-coordinate
gauss-width minimum-value maximum-value
center-coordinate is the position of the Gauss center along the
relevant direction i in units of
[nm] .
gauss-width is usually called sigma in the formula of the
Gaussian distribution function (in units of [nm] ).
For the meaning of gauss-width
have a look at the
10 DM
banknote of the German "Deutsche Mark" or any mathematical textbook.
minimum-value minimum value of doping concentration
in units of 10 18 [cm-3]
maximum-value maximum value of doping concentration
in units of 10 18 [cm-3]
Within LSS theory the specifiers correspond to the following notations:
base-function-1 = gauss-1d
! LSS theory
parameters-base-function-1 = projected-range
projected-straggle
minimum-value maximum-value
apply-function-1-along-dir = 0 0 1
! along z direction
doping-concentration =
implanted-dose / ( SQRT(2*pi) * projected-straggle )
! concentration at reference position
(see below)
position =
projected-range ! doping concentration
refers to this position
projected-range Rp (ion's projected
range) in units of [nm] , i.e. the depth where most ions stop.
projected-straggle Delta Rp
(ion straggle) in units of [nm] , i.e. the statistical fluctuation
of Rp.
implanted-dose
phi in units of [1/cm^2] (dose of the implant), typical ranges are
from 1d11 to
1d16 .
The program calculates from these parameters the dopant
distribution using LSS theory. The calculated dopant profile can be printed out
using the keyword $output-material
and the specifier doping-concentration .
The 1D
Schrödinger-Poisson tutorial shows a figure of two impurity profiles based
on LSS theory.
For further details see for example:
"Very brief
Introduction to Ion Implantation for Semiconductor Manufacturing" by Gerhard
Spitzlsperger
User-defined doping function
Using the specifier
doping-profile-defined-by-function , one can define an arbitrary function
n(x,y,z) for the doping profile.
The value of this function is finally multiplied by the value specified in
doping-concentration . Obviously, one can also set
doping-concentration = 1d0 .
The variables x, y, z refer to the grid point coordinates of the simulation area
in units of [nm] .
Example: The red Gaussian shaped curve in
the above figure can also be achieved by defining the Gaussian function
directly:
$doping-function
...
%mu =
86
! mu of Gaussian distribution (DisplayUnit:nm)
%sigma =
44
! sigma of Gaussian distribution (DisplayUnit:nm)
%max_dop =
0.181337400182469
! maximum doping concentration at center of Gaussian distribution
(DisplayUnit:1e18cm^-3)
doping-function-number =
4
! doping function #4
impurity-number
= 2
!
doping-concentration
= %max_dop ! 1
* 10^18 cm^-3
doping-profile-defined-by-function = " exp(-
(z-%mu)^2 / (2*%sigma^2)
) " ! n(x,y,z) = ... (dimensionless)
= no ! do not use
user-defined doping function
The following operators and functions are supported:
+ , - ,
* , / , ^
abs , exp , sqrt
, log , log10
, sin , cos
, tan , sinh ,
cosh , tanh , asin
, acos , atan
Predefined doping functions
base-function-1 = step-1d
parameters-base-function-1 = para(1) = center, para(2) = width, para(3) =
leftval, para(4) = rightval
base-function-1 = well-1d
parameters-base-function-1 = para(1) = center, para(2) = width, para(3) =
leftval, para(4) = rightval
para(5) = center, para(6) = width, para(7) = leftval, para(8) = rightval
First 4 parameters for left step, second 4 parameters for right step.
This is a well with double gauss walls. The walls are centered at parameter center
and the slope of the walls is given by width .
apply-function-1-along-dir = i j k
apply-function-2-along-dir = i j k
apply-function-3-along-dir = i j k
Variation of function-i is along the specified direction (0 0 1
or
0 1 0 or 1 0 0 ).
doping-concentration = double
concentration at reference position (see below).
A doping concentration at the position specified by the next specifier
(position). The function defined above is normalized such that the result is
doping concentration at position position .
Example:
We take a constant doping with a
concentration 8.0*1018
cm-3.
1D simulation: 8.0d0 * 1018/cm3.
doping-concentration =
8.0d0
2D simulation: 8.0d0 * 1018/cm3.
doping-concentration =
8.0d0
3D simulation: 8.0d0 * 1018/cm3
doping-concentration =
8.0d0
So we take the value to be
8.0d0 because we assume a 3D
doping although we do a 1D or 2D simulation.
Thus it would be wrong to take
- 2.0 *106 cm-1
in the 1D case (cubic root)
- 4.0 *1012 cm-2
in the 2D case (squared cubic root)
position = coord1 ...
Doping concentration refers to that position.
The coordinates of a position which is used to fix normalization of the doping
function profile. Can be omitted only for constant doping.
exclude-materials = num1 ...
To keep certain materials free from doping (e.g. air).
A list of defined material numbers which should not be doped.
only-region = coord1 ...
Apply doping function only to this region (coordinates of a cube,
rectangle, line).
Restrict doping to this region only. The region is either a cube, rectangle or
a line. The coordinates given specify the extension of the region as usual.
Note: See comments on how to specify correct interfaces further below.
Example (2D):
$doping-function
!
!
doping-function-number = 1
!
impurity-number =
1
! properties of this impurity type have to be specified by
$impurity-parameters
doping-concentration = 10d0
! 10 * 1018/cm3.
only-region
= 0.0d0 50.0d0 30.0d0 60.0d0 !
xmin xmax ymin ymax
!
$end_doping-function
!
Note: It you want to generate a very "accurate" doping
profile, then you should apply the doping between interfaces. Interfaces
are set if the material number is different.
Example: You want to specify a doping
between 35.0 and 35.3 nm. Then you should consider to define a separate region,
a separate cluster and a separate material for this 0.3 nm region.
Accurate doping profile:
35.0 35.15 35.3
! [nm]
x x
x x
! physical grid points
|
|
! interface
o|o o
o|o o
!
'multiple grid point' grid points (including multiple points)
.
. .
. !
material grid points (material parameters)
----- _________________ ------------------!
doping area
0|1 1 1|0
! weighting factor
Not so accurate doping profile:
35.0 35.15 35.3
! [nm]
x x
x x
! physical grid points
|
! no interface at 35.3 nm
o|o o
o o
!
'multiple grid point' grid points (including multiple points)
.
. .
. !
material grid points (material parameters)
----- ____________________ ---------------!
doping area
0|1 1 0.5
! weighting factor (an average)
Another not so accurate doping profile:
35.0 35.15 35.3
! [nm]
x x
x x
! physical grid points
! no interfaces at all
o o
o o
!
'multiple grid point' grid points (including multiple points)
.
. .
. !
material grid points (material parameters)
-- _______________________ ---------------!
doping area
0.5 1 0.5 ! weighting factor
Obviously all three cases can produce different results.
Example (3D):
The following figure shows a 3D doping profile that is defined inside a 20 nm
x 20 nm x 50 nm cube where the 50 nm are the z direction. The doping profile is
homogeneous with respect to the (x,y) plane, it only varies along the z
direction.
The doping profile is constant between z
= 10 nm and z = 25 nm with a concentration of 1 x 1018 cm-3.
It has Gaussian shape from z = 25 nm to z = 45 nm. It is
zero between z = 0 nm and z = 10 nm, as well as
between z = 45 nm and z = 50 nm.
$doping-function
!-------------------------------------
! constant doping of 1 * 10^18 cm^-3.
!-------------------------------------
doping-function-number = 1
! first doping funtion
impurity-number
= 1
!
doping-concentration =
1.0d0
! 1.0d0 => 1.0 * 10^18 / cm^3
only-region
= 0d0 20d0 0d0 20d0 10.0d0 25.0d0 !
xmin xmax ymin ymax zmin zmax
!--------------------------------------------------------------------------
! Gaussian shaped doping along z direction, constant doping in (x,y)
plane
!--------------------------------------------------------------------------
doping-function-number = 2
! second doping function
impurity-number
= 1
!
only-region
= 0d0 20d0 0d0 20d0 25.0d0 45.0d0 !
xmin xmax ymin ymax zmin zmax
base-function-1
= constant
!
base-function-2
= constant
!
base-function-3
= gauss-1d
!
apply-function-1-along-dir = 1 0 0
! constant doping along x direction
apply-function-2-along-dir = 0 1 0
! constant doping along y direction
apply-function-3-along-dir = 0 0 1
! Gaussian shaped doping along z direction
doping-concentration =
1d0
! 1.0d0 => 1.0 * 10^18 / cm^3
position
= 10d0 10d0 25d0
! doping concentration refers to that position
parameters-base-function-1 = 0d0 100d0
parameters-base-function-2 = 0d0 100d0
parameters-base-function-3 = 25d0 6d0 0d0
1.0d0
! center-coordinate gauss-width minimum-value maximum-value
$end_doping-function
If you want to obtain the input file that was used to obtain this 3D doping
profile plot (constant + Gaussian shape), please submit a support ticket.
-> 3Ddoping_profile.in
Reading in doping profiles from a file
read-in-doping-file = yes/no
-
flag for reading in doping profile from a file
-
valid for n-type and p-type doping
-
valid for arbitrary doping-function-number
- can be combined with explicitly specifying doping profile by input file
and by reading in doping profile from several files
- all doping functions will be added to the previously
specified values (like superpositions)
Restrictions:
- The value of this profile is finally multiplied by
doping-concentration . Obviously, one can also set
doping-concentration = 1d0 .
- You can specify a region (only-region ) for which the
doping file applies to, the outer region will not contribute.
doping-filename = doping_input.dat
=
doping/doping_input.dat
doping filename to be read in (e.g. experimental values). The string can
include a folder name.
The ASCII file must contain 2 (1D), 3 (2D) or 4 (3D) columns in each line:
1D:
x coordinate [nm]
doping concentration [1*1018 cm-3]
...
...
2D:
x coordinate [nm] y coordinate [nm] doping concentration [1*1018 cm-3]
...
...
...
3D:
x coordinate [nm] y coordinate [nm] z coordinate
[nm]
doping concentration [1*1018 cm-3]
...
...
...
...
The first line of this ASCII file can contain an optional header line with
column descriptors.
If you want to obtain an input file that shows how to import a doping profile
from a file
(1D_read_in_potential_and_doping_profiles.in ,
2D_read_in_potential_and_doping_profiles.in ,
3D_read_in_potential_and_doping_profiles.in ),
please submit a support ticket.
It is possible to sweep over the doping concentration, i.e. to vary the
doping concentration stepwise.
In each doping sweep step, the specifier doping-concentration is
increased by doping-sweep-step-size in units of [1*1018 cm-3] .
The output is labelled by ..._ind000.dat , ..._ind001.dat ,
... for each doping sweep step.
doping-sweep-active =
yes ! to
switch on doping sweep
= no ! to
switch off doping sweep
doping-sweep-step-size =
0.2d0
! increase doping concentration in each step by ... in units of
[1*1018 cm-3]
! (This value can also be negative.)
doping-sweep-number-of-steps = 5
! number of doping sweep steps
Restrictions:
- Voltage sweeps ($voltage-sweep )
and other sweeps cannot be combined with doping sweeps at present.
- Only one doping sweep is allowed at present.
|