$impurity-parameters

To specify the properties of impurities used in the simulation.

$impurity-parameters                                     optional
 impurity-number                         integer         required
 impurity-name                           character       optional
 impurity-type                           character       required
 number-of-energy-levels                 integer         required
 energy-levels-relative                  double_array    required
 degeneracy-of-energy-levels             integer_array   required
 incomplete-ionization-N-ref             double_array    optional
 incomplete-ionization-c                 double_array    optional
 incomplete-ionization-N-b               double_array    optional
 incomplete-ionization-d                 double_array    optional
 transition-times-cb-to-levels           double_array    optional
 transition-times-levels-to-vb           double_array    optional
$end_impurity-parameters                                 optional

Specify here the properties of the impurities used for doping.

impurity-number
type:

integer

presence:

required

example:

1

1, 2, 3, … are unique impurity numbers labeled in $doping-function.

Optionally, a name for the impurity can be provided.

impurity-name
type:

character

presence:

optional

example:

n-As-in-Si

example:

0.010*x+0.050*(1-x) (unit: eV)

example:

0.010*x+0.050*(1-x)-0.020*x*(1-x) (unit: eV) Here, a bowing factor of 0.020 eV is included.

Specify an arbitrary name. The name will be part of some output files. (for later use; it is planned to read in impurity parameters from the database.)

Special feature: If impurity-name contains the character x, this string is then interpreted as an equation where x is the alloy content. This way, a position dependent impurity level can be simulated, e.g. for graded Al(x)Ga(1-x)N layers. In this example, the impurity level would be 10 meV for AlN (x=1) and 50 meV vor GaN (x=0). Note that this has influence on CPU time, i.e. the calculation will take longer because the result of the equation has to be evaluated during the calculation.

(For later use: It is planned to read in impurity parameters from the database.)

Several types of impurities are supported.

impurity-type
type:

character

presence:

required

options:

n-type, p-type, trap

Specifies the type of an impurity. n-type means that the impurity is treated as a donor, p-type as an acceptor. Option trap is not supported so far.

Each impurity can have several different energy levels.

number-of-energy-levels
type:

integer

presence:

required

example:

1

example:

1      2

Number of different energy levels for this impurity. Each energy level is specified in energy-levels-relative.

Energy levels

energy-levels-relative
type:

double array

presence:

required

unit:

[eV]

example:

0.005

example:

0.005  0.015

example:

1000.0

When impurity levels are relatively deep compared to the thermal energy \(k_{\text B}T\) at room temperature, incomplete ionization must be considered.

Energy levels relative to “nearest” band edge (n-type -> conduction band, else valence band) in units of eV. As many energies as energy levels. These energies are meant as ionization energies, e.g. a donor with an energy level right below the conduction band edge would be specified by a small positive energy level \(E_{\text {D}}^{\text {ion}}\).

A large negative value, e.g. -1000.0 eV implies full ionization.

Note

‘Cheat’ parameter: energy-levels-relative = -1000.0, for instance, that means, all electrons are fully ionized from the donors (similar for holes/acceptors). This might be useful for low temperatures like 4 K where usually the degree of ionization is very small. By using -1000.0 one can force them to be completely ionized.

The energy levels of the donors and acceptors relative to the lowest conduction band edge and highest valence band edge can be output using dopant-energy-levels = yes (see $output-densities).

See also our tutorial on Doped semiconductors to learn more about partial ionization.

Degeneracy of the specified energy levels

degeneracy-of-energy-levels
type:

integer array

presence:

required

example:

2

example:

4      4

Shallow donors have degeneracy factor 2: Outer s orbital is onefold occupied (neutral state). There is one possibility to get rid of one electron but there are two to incorporate one (spin up, spin down).

Shallow acceptors have degeneracy factor 4: The sp3 orbital is threefold occupied. Thus, one possibility to incorporate an electron, four possibilities to get rid of one.

More details on degenerate impurity levels can be found in e.g. [ChuangOpto1995]. Note that in nitride semiconductors crystallizing in the wurtzite structure the degeneracy factor may vary from 4 to 6 because of a small valence band splitting.

If full ionization is assumed, i.e. energy-levels-relative = -1000.0, then the degeneracy factor effectively becomes irrelevant. This can be seen from eqs. (1.4) - (1.7) in [BirnerPhD2011].

Altermatt model for incomplete ionization

The Altermatt model for incomplete ionization is described in [AltermattI2006] and [AltermattII2006]. We need 4 parameters (\(N_{\text {ref}}\), \(c\), \(N_{\text b}\), \(d\)) to calculate the incomplete ionization. If all of these 4 parameters are specified, then the Altermatt model is used. If these parameters are not specified, the default model for incomplete ionization is used (Eqs. (1.4) - (1.7) in [BirnerPhD2011]).

incomplete-ionization-N-ref
type:

double array

presence:

optional

unit:

10^18 * [cm^-3]

example:

2.2

Parameter \(N_{\text {ref}}\)

incomplete-ionization-c
type:

double array

presence:

optional

unit:

[]

example:

2

Parameter \(c\)

incomplete-ionization-N-b
type:

double array

presence:

optional

unit:

10^18 * [cm^-3]

example:

6.0

Parameter \(N_{\text b}\)

incomplete-ionization-d
type:

double array

presence:

optional

unit:

[]

example:

2.3

Parameter \(d\)

Our default model assumes that

\(E_{\text {D}}=E_{\text {c}}-E_{\text {D}}^{\text {ion}}\)

is the energetic position of the donor level, and

\(E_{\text {A}}=E_{\text {v}}+E_{\text {A}}^{\text {ion}}\)

is the energetic position of the acceptor level. In the Altermatt model, these energies are modified,

\(E_{\text {D}}^{\text {Alt}}=E_{\text {c}}-E_{\text {D}}^{\text {ion,Alt}}\),

\(E_{\text {A}}^{\text {Alt}}=E_{\text {v}}+E_{\text {A}}^{\text {ion,Alt}}\),

because we assume that the dopant density of states (DOS) peaks at the energy \(E_{\text {D}}^{\text {ion,Alt}}\) (for donors) and at \(E_{\text {A}}^{\text {ion,Alt}}\) (for acceptors). To calculate this modified energy of the dopant level, we use

\(E_{\text {D}}^{\text {ion,Alt}} = \frac{E_{\text {D}}^{\text {ion}}}{1+\left( N_{\text {D}} / N_{\text {ref}} \right)^c}\), and

\(E_{\text {A}}^{\text {ion,Alt}} = \frac{E_{\text {A}}^{\text {ion}}}{1+\left( N_{\text {A}} / N_{\text {ref}} \right)^c}\),

where \(E_{\text {D}}^{\text {ion}}\) and \(E_{\text {A}}^{\text {ion}}\) are the (usual) dopant energy at low doping concentration \(N_{\text {D}}\) for donors (or \(N_{\text {A}}\) for acceptors) specified via doping-concentration, i.e. the activation energy of the donor level \(E_{\text {D}}^{\text {ion}}\) or acceptor level \(E_{\text {A}}^{\text {ion}}\) specified via energy-levels-relative.

The decreasing fraction of the bound states is described by

\(b = \frac{1}{1+\left( N_{\text {dop}} / N_{\text b} \right)^d}\),

where \(N_{\text {dop}}\) is the dopant concentration (\(N_{\text {D}}\) for donors and \(N_{\text {A}}\) for acceptors).

Then the ionized donors and acceptors are calculated as follows,

\(N_{\text {D}}^+ = N_{\text {D}} \left( 1 - \frac{b}{1 + g' e^{-\left( E_{\text F} - E_{\text {D}}^{\text {Alt}} \right)/kT}} \right)\),

\(N_{\text {A}}^+ = N_{\text {A}} \left( 1 - \frac{b}{1 + g' e^{-\left( E_{\text {A}}^{\text {Alt}} - E_{\text F} \right)/kT}} \right)\),

where \(E_{\text {D}}^{\text {Alt}}\) and \(E_{\text {A}}^{\text {Alt}}\) are the (modified) energetic (peak) positions of the donor or acceptor level.

In these equations, the factor \(g'=1/g\) is the inverse of the degeneracy \(g\) (degeneracy-of-energy-levels), i.e. 1/2 for donors and 1/4 for acceptors.

For comparison, our default incomplete ionization model uses

\(N_{\text D}^+ = N_{\text D} \frac{1}{1 + g e^{\left( E_{\text F} - E_{\text D} \right)/kT}}\),

\(N_{\text A}^+ = N_{\text A} \frac{1}{1 + g e^{\left( E_{\text A} - E_{\text F} \right)/kT}}\),

where the degeneracy factor \(g\) (degeneracy-of-energy-levels) is 2 for donors and 4 for acceptors.

Interlevel transition times (not implemented yet)

transition-times-cb-to-levels
type:

double array

presence:

optional

unit:

?

Transition times tau1, tau2, tau3, … from conduction band(s) to energy levels; required in case of trap: times from conduction band to discrete levels.

transition-times-levels-to-vb
type:

double array

presence:

optional

unit:

?

Transition times tau1, tau2, tau3, … from energy levels to valence bands band(s); required in case of trap: times from discrete levels to valence bands.

Note

Currently no interlevel transition times implemented. Can be added provided there are also models which can handle such things.

Example

$impurity-parameters

 !--------------------------------
 ! n-type in GaAs
 !--------------------------------
 impurity-number              = 1
 impurity-name                = n-Si-in-GaAs
 impurity-type                = n-type
 number-of-energy-levels      = 1
 energy-levels-relative       = 0.0058
 degeneracy-of-energy-levels  = 2        ! 2 for n-type

 !--------------------------------
 ! n-type in GaAs (fully ionized)
 !--------------------------------
 impurity-number              = 2
 impurity-name                = n-fully-ionized
 impurity-type                = n-type
 number-of-energy-levels      = 1
 energy-levels-relative       = -1000.0  ! fully ionized
 degeneracy-of-energy-levels  = 2        ! 2 for n-type

 !--------------------------------
 ! p-type in GaAs
 !--------------------------------
 impurity-number              = 3
 impurity-name                = p-C-in-GaAs
 impurity-type                = p-type
 number-of-energy-levels      = 1
 energy-levels-relative       = 0.027
 degeneracy-of-energy-levels  = 4         ! 4 for p-type

 !--------------------------------
 ! p-type in GaAs (fully ionized)
 !--------------------------------
 impurity-number              = 2
 impurity-name                = p-fully-ionized
 impurity-type                = p-type
 number-of-energy-levels      = 1
 energy-levels-relative       = -1000.0  ! fully ionized
 degeneracy-of-energy-levels  = 4        ! 4 for n-type

$end_impurity-parameters

Database values

energy-levels-relative = ...       ! energy in units of [eV]
                       = -1000.0   ! a large negative value implies full ionization
                       = 0.054     ! n-As-in-Si
                       = 0.045     ! n-P -in-Si
                       = 0.039     ! n-Sb-in-Si
                       = 0.045     ! n-N -in-Si
                       = 0.006     ! n-Si-in-Al0.27Ga0.73As
                       = 0.0058    ! n-Si-in-GaAs
                       = 0.007     ! n-Si-in-AlAs
                       = 0.10      ! n-N -in-SiC
                       = 0.20      ! p-Al-in-SiC
                       = 0.045     ! p-B -in-Si
                       = 0.16      ! p-In-in-Si
                       = 0.027     ! p-C -in-GaAs

More parameters can be found in the database file database_nn3.in or at this website: http://www.ioffe.ru/SVA/NSM/Semicond/