$Monte-Carlo

Monte Carlo transport: Here, the parameters for the Monte Carlo procedure and the mobility calculations are defined.

$Monte-Carlo                               optional                !
 Monte-Carlo-transport                     character     required  !
 destination-directory                     character     required  !
 grid-position                             double_array  required  ! [nm]
 energy-dispersion                         character     required  !
 charge-carrier-type                       character     required  !
 number-of-simulated-carriers              integer       required  !
 number-of-timesteps                       integer       required  !
 timestep                                  double        required  ! [fs]
 number-of-electric-field-steps            integer       required  !
 electric-field-start-value                double_array  required  ! [V/m]
 electric-field-step                       double        required  ! [V/m]
 electric-field-step-factor                double        required  !
 start-averaging-after-timesteps           integer       required  !
 execute-averaging-after-timesteps         integer       required  !
 impurity-background-doping-concentration  double        required  ! [cm-3]
 doping-concentration                      double        required  ! [cm-3]
 LA-phonon-scattering                      character     optional  !
 LO-phonon-scattering                      character     optional  !
 TA-phonon-scattering                      character     optional  !
 TO-phonon-scattering                      character     optional  !
 acoustic-phonon-scattering                character     optional  !
 polar-optical-phonon-scattering           character     optional  !
 plasmon-scattering                        character     optional  !
 ionized-impurity-scattering               character     optional  !
 surface-roughness-scattering              character     optional  !
 electron-hole-scattering                  character     optional  !
 impact-ionization-scattering              character     optional  !
                                                                   !
 alloy-scattering                          character     optional  !
 alloy-disorder-scattering-potential       double        optional  ! [eV]
                                                                   !
 mass-density                              double        optional  ! [kg/m3]
 sound-velocity                            double        optional  ! [m/s]
 acoustic-deformation-potential            double        optional  ! [eV]
                                                                   !
 quantum-well-width                        double        optional  ! [nm]
 spacer-width                              double_array  optional  ! [nm]
 remote-doping-sheet-density               double_array  optional  ! [cm-2]
 2DEG-sheet-density                        double        optional  ! [cm-2]
 2DEG-sheet-density-number-of-subbands     double        optional  !
$end_Monte-Carlo                                         optional  !

Syntax

destination-directory = Monte_Carlo/
Name of directory to which the Monte Carlo files should be written.
Directory name has to include the slash.
Monte-Carlo-transport = yes    ! Monte Carlo transport calculations switched on
                      = no     ! Monte Carlo transport calculations switched off
                      = simple ! Monte Carlo transport calculations switched off and a simple 2DEG algorithm is employed
grid-position = 10.0              ! grid position in units of [nm]
                                  ! take material parameters from the material located at this point
grid-position = 10.0              ! x = 10 [nm]                           (1D)
              = 10.0  20.0        ! x = 10 [nm], y = 20 [nm]              (2D)
              = 10.0  20.0  20.0  ! x = 10 [nm], y = 10 [nm], z = 20 [nm] (3D)
energy-dispersion = kp        ! use nonparabolic and anisotropic energy dispersion E(k) calculated from k.p theory, i.e.
                              ! take into account k.p           dispersion into scattering rates, overlap factors and selection of final states
                  = parabolic ! use parabolic      and     isotropic energy dispersion E(k) (single-band effective-mass approximation), i.e.
                              ! take into account parabolic dispersion into scattering rates, overlap factors and selection of final states
charge-carrier-type = holes     ! Monte Carlo transport calculations for holes
                    = electrons ! (not implemented yet)
number-of-simulated-carriers = 10000 ! number of simulated electrons or holes, respectively
                                     ! (depending on charge-carrier-type = ...)
number-of-timesteps = 600  ! number of timesteps
timestep            = 10.0 ! timestep in units of [fs]

total time = number-of-timesteps * timestep = 600 * 10 fs = 6000 fs = 6 ps

number-of-electric-field-steps = 5          ! number of calculated points for increasing electrical field (starting value: 1 kV/cm)
electric-field-start-value     = 1.0e5  0.0 ! [V/m], F = (Fx,Fy), i.e. in this case Fx = 1.0 * 10^5 V/m = 1 kV/cm,
                                            !                               Fy = 0 V/m
electric-field-step            = 1.0e3      ! increase electric field strength along the channel by this magnitude (for each electric field step)
                                            ! [V/m], i.e. in this case 1.0 * 10^5 V/m,  Units: 1 kV/cm = 1 * 10^5 V/m = 1e5 V/m
                                            ! (1.0d3 = 0.01 kV/cm = 1000 V/m = 1 kV/m = 10 V/cm)
electric-field-step-factor     = 1.1        ! increase electric field strength along the channel by this factor        (for each electric field step)
                               = 1.0        ! [] linear increase

\(F_{x,i+1} = F_{x,i}\) * electric-field-step-factor + electric-field-step

\(F_{y,i+1} = F_{y,i}\) where \(F_{x}\) and \(F_{y}\) are the electric field magnitude along the \(y\) or \(y\) direction, respectively.

start-averaging-after-timesteps   = 400  ! number of timesteps after which the averaging mechanism is started
execute-averaging-after-timesteps = 1    ! number of timesteps after which the averaging mechanism is executed
                                         ! (= 1: each timestep is used for averaging)
impurity-background-doping-concentration = 0.5e15  ! in units of [cm^-3]  ==> 0.5e15 = 0.5 * 10^15 cm-3

The impurity background doping concentration which is relevant for the impurity scattering mechanism is given in units of [cm^-3]. Doping with fully ionized dopants is assumed in this case (during the Monte Carlo procedure only). The whole simulation region will be covered with this background doping during the Monte Carlo procedure. It will contribute additively to the additional doping regions specified inside the input file ($doping-function). It also enters the scattering rates for impurity scattering: If it is set to zero, the integral will not converge, so don’t do it…

doping-concentration = 1e18 ! in units of [cm^-3]  ==> 1e18 = 1 * 10^18 cm^-3

The doping concentration is given in units of [cm^-3]. This value for the doping concentration is used for the impurity scattering table. It is relevant for electron-hole scattering and ionized impurity scattering.

Flags to switch on/off certain scattering models

LA-phonon-scattering = yes ! include    LA phonon scattering (default)
                     = no  ! switch off LA phonon scattering

This affects the subroutines

  • total scattering probability due to LA phonon emission in first conduction band

  • total scattering probability due to LA phonon emission among hole bands

  • total scattering probability due to LA phonon absorption in first conduction band

  • total scattering probability due to LA phonon absorption among hole bands

LO-phonon-scattering = yes  ! include    LO phonon scattering (default)
                     = no   ! switch off LO phonon scattering

This affects the subroutines

  • total scattering probability due to LO phonon emission in first conduction band

  • total scattering probability due to LO phonon emission among hole bands

  • total scattering probability due to LO phonon emission among 2D hole subbands

  • total scattering probability due to LO phonon absorption in first conduction band

  • total scattering probability due to LO phonon absorption among hole bands

  • total scattering probability due to LO phonon absorption among 2D hole subbands

TA-phonon-scattering = yes  ! include    TA phonon scattering (default)
                     = no   ! switch off TA phonon scattering

This affects the subroutines

  • total scattering probability due to TA phonon emission in first conduction band

  • total scattering probability due to TA phonon emission among hole bands

  • total scattering probability due to TA phonon absorption in first conduction band

  • total scattering probability due to TA phonon absorption among hole bands

TO-phonon-scattering = yes  ! include    TO phonon scattering (default)
                     = no   ! switch off TO phonon scattering

This affects the subroutines

  • total scattering probability due to TO phonon emission in first conduction band

  • total scattering probability due to TO phonon emission among hole bands

  • total scattering probability due to TO phonon absorption in first conduction band

  • total scattering probability due to TO phonon absorption among hole bands

acoustic-phonon-scattering = yes  ! include    acoustic phonon scattering (default)
                           = no   ! switch off acoustic phonon scattering

This affects the subroutines

  • total scattering probability due to acoustic scattering in first conduction band

  • total scattering probability due to acoustic scattering among hole bands

  • total scattering probability due to acoustic scattering among 2D hole subbands

The acoustic phonon scattering rates are linear functions of temperature.

polar-optical-phonon-scattering = yes  ! include    polar optical phonon scattering (default)
                                = no   ! switch off polar optical phonon scattering

This affects the subroutines

  • total scattering probability due to polar optical phonon emission

  • total scattering probability due to polar optical phonon absorption

plasmon-scattering = yes  ! include    plasmon scattering (default)
                   = no   ! switch off plasmon scattering

This affects the subroutines

  • total scattering probability due to heavy hole - plasmon absorption in first conduction band

  • total scattering probability due to Gamma - plasmon absorption in hole bands

  • total scattering probability due to heavy hole - plasmon emission in first conduction band

  • total scattering probability due to Gamma - plasmon emission in hole band

ionized-impurity-scattering = yes  ! include    TO phonon scattering (default)
                            = no   ! switch off TO phonon scattering

This affects the subroutines

  • total scattering probability due to ionized impurities

  • total scattering probability due to ionized impurity scattering among 2D hole subbands

surface-roughness-scattering = yes  ! include    surface roughness scattering (default)
                             = no   ! switch off surface roughness phonon scattering

This affects the subroutines

  • total scattering probability due to surface roughness scattering among 2D hole subbands

electron-hole-scattering = yes  ! include    electron-hole scattering (default)
                         = no   ! switch off electron-hole scattering

This affects the subroutines

  • total scattering probability due to electron-hole scattering in first conduction band

  • total scattering probability due to electron-hole scattering in hole bands

impact-ionization-scattering = yes  ! include    impact ionization scattering (Kane model) (default)
                             = no   ! switch off impact ionization scattering (Kane model)

This affects the subroutines

  • total scattering probability due to impact ionization scattering (Kane model)

alloy-scattering = yes  ! include    alloy scattering (default)
                 = no   ! switch off alloy scattering

This affects the subroutines

  • total scattering probability due to alloy scattering in first conduction band

  • total scattering probability due to alloy scattering among hole bands

alloy-disorder-scattering-potential = 1.0 ! [eV] (optional parameter)
                                    = 1.0 ! [eV]  1 eV for AlGaAs
                                    = 0.6 ! [eV] ~0.6 eV for InGaAs

If alloy-disorder-scattering-potential is not present, then this value will be calculated internally from the conduction (or valence) band offset of the two binary end points for each grid point, e.g. Al(x)Ga(1-x)As: CBO(AlAs) - CBO(GaAs) Some more information about the used parameters for each grid point is contained in the file AlloyScatteringInfo.dat.

Material parameters

The following parameters are used for deformation potential acoustic phonon scattering.

mass-density                   = 5.79e3 ! [kg/m3] lattice density
sound-velocity                 = 3.7e3  ! [m/s]   velocity of longitudinal elastic waves
acoustic-deformation-potential = 7.2    ! [eV]

The following parameters are used for the simple algorithm (for delta-doped 2DEGs) to calculate the mobility.

quantum-well-width                    = 10.0      ! [nm]
spacer-width                          = 20.0      ! [nm]
remote-doping-sheet-density           = 1e12      ! [cm-2]
2DEG-sheet-density                    = 0.071e12  ! [cm-2]
2DEG-sheet-density-number-of-subbands = 3         ! (default: 1)

If 2DEG-sheet-density is not present, then the 2DEG density is calculated automatically where the number of subbands that are taken into account can be specified (default: 1). If two remote doping regions should be taken into account, one can input an array of values.

spacer-width                = 20.0  10.0  ! [nm]   spacer width of first and 2nd doping region
remote-doping-sheet-density = 1e12  1e11  ! [cm-2] remote doing density of first and 2nd doping region

Monte Carlo

The Monte Carlo algorithm that is used inside nextnano³ is similar to the following publication:

Subband structure and mobility of two-dimensional holes in strained Si/SiGe MOSFET’s
R. Oberhuber, G. Zandler and P. Vogl
Physical Review B 58, 9941 (1998)

Details

The carrier transport in quantized 2D channels is computed in terms of a momentum space ensemble Monte Carlo procedure for a spatially homogeneous channel with constant electric fields invoking consistently calculated 2D scattering rates (see subroutine scattering for details on scattering).

For electrons and a single conduction band, a similar procedure was carried out previously (M.V. Fischetti, S.E. Laux, PRB 48, 2244 (1993)).

The equations of motion are integrated with the numerically determined, fully nonparabolic subband dispersions E(k) in analogy to full band Monte Carlo methods that have been developed previously for bulk (M.V. Fischetti, S.E. Laux, PRB 38, 9721 (1988)).

Both the hole dispersion relations E(k) and the inverse relation k(E) have been determined by a 2D discretization of k space.

The Monte Carlo method requires both the individual as well as the total scattering rates. The latter can only be obtained, for each initial state in subband … with energy E(k), by a numerical integration of Eq. (…) over all final states. This amounts to integrating over the wavevectors q,q with the numerically determined 2D band structure.

Restrictions: So far, this Monte Carlo procedure only makes sense for 1D simulations with quantum confinement.

Note: Do not forget to specify the parameters for the density of states (DOS) calculation. The DOS is used for the calculation of the scattering tables.

$output-kp-data
 ...
 DOS-density-of-states = ...
 DOS-Emin-Emax         = ...
 DOS-points            = ...

Scattering mechanisms

  • polar optical phonon emission

  • ionized impurities

  • polar optical phonon absorption

  • LO phonon emission in first conduction band

  • LO phonon emission among hole bands

  • LO phonon emission among 2D hole subbands

  • LO phonon absorption in first conduction band

  • LO phonon absorption among hole bands

  • LO phonon absorption among 2D hole subbands

  • TO phonon emission in first conduction band

  • TO phonon emission among hole bands

  • TO phonon absorption in first conduction band

  • TO phonon absorption among hole bands

  • LA phonon emission in first conduction band

  • LA phonon emission among hole bands

  • LA phonon absorption in first conduction band

  • LA phonon absorption among hole bands

  • TA phonon emission in first conduction band

  • TA phonon emission among hole bands

  • TA phonon absorption in first conduction band

  • TA phonon absorption among hole bands

  • acoustic scattering in first conduction band

  • acoustic scattering among hole bands

  • acoustic scattering among 2D hole subbands

  • alloy scattering in first conduction band

  • alloy scattering among hole bands

  • electron-hole scattering in first conduction band

  • electron-hole scattering in hole bands

  • heavy hole plasmon absorption in first conduction band

  • Gamma plasmon absorption in hole bands

  • heavy hole plasmon emission in first conduction band

  • Gamma plasmon emission in hole band

  • surface roughness scattering among 2D hole subbands

  • ionized impurity scattering among 2D hole subbands

Output

Output files for k.p data

Density of states (DOS)

The two-dimensional density of states (DOS) is written to the files Schroedinger_kp/DOS_hl_6x6kp.dat and DOS_hl_6x6kp_sum.dat (and similar for electrons). The DOS has been calculated from the energy dispersion \(E({\mathbf k}) = E(k_x,k_y)\) and is used inside the Monte Carlo procedure (e.g. scattering tables).

For details, see $output-kp-data.

Output files for transport data

After the total simulation time is reached, the averaged transport quantities are written to the output files with the subroutine write_outputMC. This is done for each value of the applied electric field. The results of the calculated transport quantities are stored in the files:

  • mobility10.dat

  • mobility11.dat

  • subband_energy.dat

  • subband_velocity_x.dat

  • subband_density.dat

The growth direction is along [001], so the carrier channel is perpendicular to this direction. The electric field is applied in the [100] direction, so the output file mobility10.dat contains the mobility into this direction. To investigate the anisotropy in the two-dimensional plane, also the mobility calculated from the velocity in [110] direction is stored (mobility11.dat).

mobility10.dat

This file contains the calculated low field mobility, both calculated from the velocity (4th column of the file) and the diffusion constant average (5th column) obtained by the Monte Carlo procedure. The value of the electric field in [kV/cm] is given in the 1st column, and the corresponding velocity in x direction, average energy, mobility from velocity and mobility from diffusion constant are listed in the following columns.

electric field [kV/cm]       vx [cm/s]    Eav [eV]    µv,x [cm2/Vs]    µDiff,x [cm2/Vs]

\(\mu _{v,x} = v_x / F_x\) where \(F_x\) is the electric field denoted in the 1st column.

mobility11.dat

This file contains the mobility along the [11] direction in the two-dimensional k space, and is similar to the file mobility10.dat discussed above.

electric field [kV/cm]       vxy [cm/s]    Eav [eV]    µv,xy [cm2/Vs]

subband_energy.dat

This file contains for each electric field value (1st column) the average kinetic energy within each subband (2nd column: subband 1, 3rd column: subband 2, …) in units of [eV].

electric field [kV/cm]       Eav,1    Eav,2    Eav,3    Eav,4    Eav,5    Eav,6    ...

subband_velocity_x.dat

This file contains the average velocity in each subband in units of [cm/s]. Its structure is similar to the previous file.

electric field [kV/cm]       vav,1    vav,2    vav,3    vav,4    vav,5    vav,6    ...

subband_density.dat

This file gives the occupation of each subband. \(N_{{\rm av},i}\) is the average number of particles in subband \(i\). The sum over all \(N_{{\rm av},i}\) must be equal to the number of particles that have been simulated, i.e. number-of-simulated-carriers.

electric field [kV/cm]       Nav,1    Nav,2    Nav,3    Nav,4    Nav,5    Nav,6    ...