LasVegas - Input Manual

Program-Name: LasVegas

All input specifications for a device have to be in one file, called device.ini

Global dimensions for arrays and some numerical type definitions are given in file allef.h

The rules, used by the input parser are given in file rules.ini

General informations about the two-dimensional lattice used in the simulator:

Lattice index (i,j) = (1,1) is in the upper left corner

x-direction: from left to right increasing x-coordinate (increasing lattice index i)

y-direction: from top to bottom increasing y-coordinate (increasing lattice index j)

Each lattice point is in the center of a surrounding rectangle (called block in the following)

The device.ini file commands

x cell dimension = n1,n2,r1

Input for lattice spacing in x-direction:

n1 .... lower lattice index in x-direction

n2 .... upper lattice index in x-direction

r1 .... width of one block in x direction in [nm]. Only multiples of 1nm are allowed.

Multiple input according to the above input statement allows to construct an irregular grid (various block widths) in x direction. The final device region must be initialized completely. Multiple inputs for the same lattice index overwrite each other according to the ordering in the input file.

y cell dimension = n1,n2,r1

Input for lattice spacing in y-direction:

n1 .... lower lattice index in y-direction

n2 .... upper lattice index in y-direction

r1 .... width of one block in y direction in [nm]. Only multiples of 1nm are allowed.

Multiple input according to the above input statement allows to construct an irregular grid (various

block widths) in y direction. The final device region must be initialized completely. Multiple inputs

for the same lattice index overwrite each other according to the ordering in the input file.

All the rest of the geometrical input settings (material etc.) is must be specified by indices of

the lattice.

material = n1 ,n2 ,n3 ,n4 ,n5 ,n6 ,r1 ,r2

Material regions; Input for a rectangular region:

n1 .... x-lattice index upper left corner of region made up of a certain material

n2 .... y-lattice index upper left corner of region made up of a certain material

n3 .... x-lattice index lower right corner of region made up of a certain material

n4 .... y-lattice index lower right corner of region made up of a certain material

n5 .... material number (arbitrary integer number to reference material (material regions with the

same number use the same scattering table))

n6 .... material system (1=AlGaAs , 2=InGaAs , 3= InAlAs , 5=Si, 6=SiO2 , 7=air), names or

numbers are legal input

r1 .... alloy concentration x=(0.0 — 1.0)

r2 .... fraction of band gap energy of the material. The corresponding energy (above top of valence

band) is used as a reference to align neighboring materials energetically at these levels.

Multiple inputs for the same lattice index overwrite each other according to the ordering in the

input file.

contact = n1,n2,n3,n4,n5,n6,r1

Contact regions:

n1 .... x-lattice index upper left corner

n2 .... y-lattice index upper left corner

n3 .... x-lattice index lower right corner

n4 .... y-lattice index lower right corner

n5 .... Contact number (arbitrary unique integer value to identify contact)

n6 .... contact type (0=Schottky , 1=Ohmic), names or number allowed as input

r1 .... Voltage [V] (=boundary condition for Poisson equation, Schottky barrier must be included in this value)

Multiple inputs for the same lattice index overwrite each other according to the ordering in the input file.

fixed field = n1,n2,n3,r1

input optional, default von Neumann with field component zero:

n1 .... smaller lattice index

n2 .... bigger lattice index

n3 .... boundary-number: (north=1 , east=2 , west=3 , south=4), Names and numbers are possible

input

r1 .... electric field [V/m]

Can be used only at outer boundaries of the lattice. Dependent on the boundary number, the lattice

indexes refer to the x- or y-direction. (Note: In most instances, this type of input doesn’t work)

surface charge = n1,n2,n3,n4,n5,r1

Input optional, Default: no surface charge:

n1 .... x-lattice index upper left corner

n2 .... y-lattice index upper left corner

n3 .... x-lattice index lower right corner

n4 .... y-lattice index lower right corner

n5 .... block wall number: (north=1 , east=2 , west=3 , south=4), names and numbers are possible

input

r1 .... surface charge density [q x 1012 cm-2]

The specified region must extend in one direction only across one block. This input is necessary

for each lattice point, carrying a surface charge at one of its walls. This means, that for one layer

of surface charge, two of the above input statements must be present.

mgrid setup = n1,n2,n3,n4,n5,n6,n7,r1

Input to specify multigrid cycles for Poisson equation:

n1 .... Multigrid-cycle ( v-cycle=1 , w-cycle=2 , f-cycle=3), w-cycle is max. robust

n2 .... Number of multigrid iterations before convergence tests are performed

n3 .... number of “presmoothing” iterations (typically 1)

n4 .... number of “postsmoothing” iterations (typically 1)

n5 .... method used for error reduction or smoothing
(XLGS=1,YLGS=2,XYLGS=3,PGS=4,Alternate=5),

names or numbers are possible input

n6 .... special error smoothing around contact (Yes=1,No=0), names or numbers possible

n7 .... method to solve error equation at the coarsest grid (SOR=1 , Smoother=2 , Nothing =3 , PGS=4),
names or numbers are possible

r1 .... convergence threshold

periodic boundary= n1

Input optional, Default: NO

n1 .... periodic boundary conditions for particle dynamics (No=0 , xperiodic=1 , yperiodic=2 ,

xyperiodic=3), names or numbers are possible as input

In case of periodic boundary conditions, contacts can be specified only at the outermost blocks of

the entire device region.

reference material= n1

Input optional, Default: Material of the first material-entry in device.ini:

n1 .... material number for reference material

Affect only output numbers for band edge profiles etc.

lattice temperature= r1

Input:

r1 .... lattice temperature [K] > 77 K

advance density in time = r1

Input:

r1 .... fraction of timestep to advance density according free ight

Can be used to cool high density plasmas, when simulations are performed at the stability limit.

doping region = n1,n2,n3,n4,r1,r2

Input:

n1 .... x-lattice index upper left corner

n2 .... y-lattice index upper left corner

n3 .... x-lattice index lower right corner

n4 .... y-lattice index lower right corner

r1 .... doping concentration (fully ionized) [10 18 cm -3 ]

r2 .... n-type=1.0 , p-type=-1.0 ; names or numbers possible

Multiple inputs for the same lattice index overwrite each other according to the ordering in the

input file.

statistic = n1

Input optional, Default: Maxwell-Boltzmann:

n1 .... type of statistics to use for charge carriers (Maxwell-Boltzmann=1 , Fermi-Dirac=2); names

or numbers possible. In case of Fermi Dirac statistics, the distribution function of the charge carriers

is required. Therefore, all the input statements, necessary to determine the distribution function,

must be present in the input file.

initial distribution = n1,n2

Input optional, Default: 1,1

n1 .... multiplication factor for the number of electrons to generate (0 or 1)

n2 .... multiplication factor for the number of holes to generate (0 or 1)

The value 0 can be used to suppress the generation of one type of charge carriers (e.g. for a

depleted buffer).

particle number = n1

Input:

n1 .... Number of particles to be used for initial distribution (a small deviation from this number

due to rounding is possible)

read ensemble from = filename

Input optional:

Read complete phase space information of the particle ensemble of a previous simulation from file

>>filename<<. If this input ag is not present in the input file device.ini, a new thermal initial

distribution is generated, forcing charge neutrality on each block.

write ensemble to = filename

Input optional:

Write phase space information of particle ensemble to file >>filename<< at the end of the simulation.

If this input ag isn’t present, no detailed phase space information of the particle ensemble is stored.

scattering background = r1

Input optional:

r1 .... minimum ionized impurity concentration [1018 cm-3 ], to be used for scattering tables only.

This is useful to avoid coulomb divergencies in complete undoped material, however this parameter

doesn’t affect the Poisson equation.

energy step distribution = r1

Input (optional only if Maxwell-Boltzmann statistics):

r1 .... energy step [eV] used to create a mesh to sample the particle for the distribution function

If no entry for >>energy step distribution<< is in the input file, the selfconsistent calculation of

the distribution function is switched off.

energy grid distribution = n1,n2

Input (optional only, if no selfconsistent distribution function has to be calculated):

n1 .... number of energy mesh blocks, each having a width of n2 in units of [energy step distribution]

Multiple entries are added one after each other, increasing the mesh size to higher energies.

xy grid distribution = n1,n2,n3,n4,n5,n6

Input (optional, no effect if selfconsistent calculation of distribution function is not activated).

Used to generate a coarser grid than the Poisson grid by clustering Poisson grid blocks to determine

self-consistent distribution function on that coarse grid:

n1 .... x-lattice index upper left corner

n2 .... y-lattice index upper left corner

n3 .... x-lattice index lower right corner

n4 .... y-lattice index lower right corner

n5 .... number of blocks (Poisson grid) per cluster in x-direction (n3 n1 +1 must be a multiple of n5 )

n6 .... number of blocks (Poisson grid) per cluster in y-direction (n4 n2 +1 must be a multiple of n6 )

In the region defined by n1 n4 , a coarser grid is generated by clustering n5 x n6 lattice blocks to

one coarser block. On these coarser blocks, the distribution function is determined.

simulation times = r1,n1,n2,n3,n4,n5

Input:

r1 .... timestep, corresponding to one iteration [fs]

n1 .... total simulation time [iterations]

n2 .... solve Poisson equation each n2 –th iteration

n3 .... average over and actualize distribution function after any n3 iterations

n4 .... start averaging output quantities after n4 iterations

n5 .... use each n5 —th iteration after n4 iterations for averaging

impact switch = n1

Input optional, Default 0:

n1 .... switch off impact ionization before iteration n1 . (Exception 0: always switched off)

real space offset = n1,n2,n3,n4

Input optional, default 1,1,1,1 (lower right corner of upper left block of total geometry):

n1 .... block index x-direction

n2 .... block index y-direction

n3 .... lower (=0) resp. upper (=1) border of block (n1 ,n2 ) in x-direction

n4 .... lower (=0) resp. upper (=1) border of block (n1 ,n2 ) in y-direction

This sets the origin of the real space coordinates for output of position resolved quantities. In uences

only numbers for real space coordinates in output files.

write x_velocity to = filename

Input optional, no default:

Write average velocity along x-direction into file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10

x1 .... x-coordinate of block center [nm]

x2 .... y-coordinate of block center [nm]

x3 .... average velocity of all electrons in block in x-direction [10 6 cm/s]

x4 .... average velocity of the electrons in block in the

_

G-valley in x-direction [10 6 cm/s]

x5 .... average velocity of the electrons in block in the L-valley in x-direction [10 6 cm/s]

x6 .... average velocity of the electrons in block in the X-valley in x-direction [10 6 cm/s]

x7 .... average velocity of all holes in block in x-direction [106cm/s]

x8 .... average velocity of heavy holes in block in x-direction [106 cm/s]

x9 .... average velocity of light holes in block in x-direction [106cm/s]

x10 .... average velocity of holes in split off band in block in x-direction [106cm/s]

write y_velocity to = filename

Input optional, no default:

Write average velocity along y-direction into file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10

x1 .... x-coordinate of block center [nm]

x2 .... y-coordinate of block center [nm]

x3 .... average velocity of all electrons in block in y-direction [106 cm/s]

x4 .... average velocity of the electrons in block in the

_

G-valley in y-direction [106 cm/s]

x5 .... average velocity of the electrons in block in the L-valley in y-direction [106cm/s]

x6 .... average velocity of the electrons in block in the X-valley in y-direction [106cm/s]

x7 .... average velocity of all holes in block in y-direction [106cm/s]

x8 .... average velocity of heavy holes in block in y-direction [106 cm/s]

x9 .... average velocity of light holes in block in y-direction [106cm/s]

x10 .... average velocity of holes in split off band in block in y-direction [106cm/s]

write energy to = filename

Input optional, no default:

Write average energy along y-direction into file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7, x8 , x9 , x10

x1 .... x-coordinate [nm]

x2 .... y-coordinate [nm]

x3 .... average total energy of electrons [eV]

x4 .... average kinetic energy of electrons in

_

G -valley [eV]

x5 .... average kinetic energy of electrons in L-valley [eV]

x6 .... average kinetic energy of electrons in X-valley [eV]

x7 .... average total energy of holes [eV]

x8 .... average kinetic energy of heavy holes [eV]

x9 .... average kinetic energy of light holes [eV]

x10 .... average kinetic energy of holes in split off band [eV]

write density to = filename

Input optional

Write average density along y-direction into file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7, x8 , x9 , x10

x1 .... x-coordinate [nm]

x2 .... y-coordinate [nm]

x3 .... average density of electrons [1018 cm —3 ]

x4 .... average density of electrons in

_

G-valley [1018 cm —3 ]

x5 .... average density of electrons in L-valley [1018 cm —3 ]

x6 .... average density of electrons in X-valley [1018 cm —3 ]

x7 .... average density of holes [1018 cm —3 ]

x8 .... average density of heavy holes [1018 cm —3 ]

x9 .... average density of light holes [1018 cm —3 ]

x10 .... average density of holes in split off band [1018 cm —3 ]

write efield to = filename

Input optional

Write average electrostatic results into file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8

x1 .... x-coordinate [nm]

x2 .... y-coordinate [nm]

x3 .... electrostatic potential [V]

x4 .... electric field strength in x-direction [V/m]

x5 .... electric field strength in y-direction [V/m]

x6 .... band edge energy of G-point [eV]

x7 .... band edge energy of L-point [eV]

x8 .... band edge energy of L-point [eV]

write current to = filename

Input optional

Write integrated and instantaneous current into file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , y1 ,..., yn , z1 ,...., zn , m

x1 .... time [fs]

yi .... time integrated current [fsA/m] at contact Nr. i

zi .... instantaneous current [A/m] at contact Nr. i

m .... instantaneous number of carriers in device

write impact info to = filename

Input optional

Write particle information for particles, initiating and created by impact ionization to file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7, x8 , x9 , x10

x1 .... x-coordinate [nm]

x2 .... y-coordinate [nm]

x3 .... lattice index x-direction

x4 .... lattice index y-direction

x5 .... initiated by particle in valley i (i=1,2,3,4,5,6 1=G,2=L,3=X,4=HH,5=LH,6=SO)

x6 .... initiating particle in valley i after impact ionization process (i=1,2,3,4,5,6

1= G,2=L,3=X,4=HH,5=LH,6=SO)

x7 .... created electron in valley i (i=1,2,3,4,5,6 1= G,2=L,3=X,4=HH,5=LH,6=SO)

x8 .... created hole in valley i (i=1,2,3,4,5,6 1= G,2=L,3=X,4=HH,5=LH,6=SO)

x9 .... statistical weight of initiating particle

x10 .... kinetic energy of initiating particle after impact ionization process

x11 .... kinetic energy of created electron

x12 .... kinetic energy of created hole

x12 .... iteration number

write material info to = filename

Input optional

Write material information to file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7, x8 , x9 , x10

x1 .... lattice index x-direction

x2 .... lattice index y-direction

x3 .... material-number

x4 .... material system (see >>material<<)

x5 .... region code number (1 left wall, 2 lower wall, 3 right wall, 4 upper wall, 5 upper left corner, 6 lower left corner, 7 lower right corner, 8 upper right corner, 9 transparent wall - for contacts, 10 internal region)

This output is probably only useful for people, having an idea in which way the numbers above

are used in the program

write x_grid info to = filename

Input optional

Write x-coordinate lattice midpoints and width of block (x-direction) of lattice blocks in file

“filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2

x1 .... x-coordinate of lattice midpoint [nm]

x2 .... width of lattice block [nm]

write y_grid info to = filename

Input optional

Write y-coordinate lattice midpoints and width of block (y-direction) of lattice blocks in file

“filename”

Output quantities in the columns of file “filename” have the following meaning:

y1 , y2

x1 .... y-coordinate of lattice midpoint [nm]

x2 .... height of lattice block [nm]

write bandedge info to = filename

Input optional

Write band edge energy without electrostatic potential relative to reference material (see >>reference material<<) in file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11

x1 .... lattice index x-direction

x2 .... lattice index y-direction

x3 .... x-coordinate [nm]

x4 .... y-coordinate [nm]

x5 .... band edge 1st conduction band G-point [eV]

x6 .... band edge 1st conduction band L-point [eV]

x7 .... band edge 1st conduction band X-point [eV]

x8 .... band edge heavy hole band G -point [eV]

x9 .... band edge light hole band G -point [eV]

x10 .... band edge split-off-band [eV]

x11 .... static dielectric constant

advance density in time = r1

Input optional

Calculate future density for a free flight time

__ _____¢ ˆ...__.._°and use it to solve Poisson’s equation.

This corresponds to a simple implicit scheme for the selfconsistent coupling of the Poisson equation

with the particle dynamics.

r1 .... fraction of timestep ( usually 0.5)

Can be used only, if Poisson’s equation is solved each iteration

hetero switch region = n1,n2,n3,n4

Input optional

Switch off energy and parallel momentum conservation for particles, crossing a hetero barrier in

the specified region. The carriers just cross the barrier without changing their momentum and the

energy is recalculated using the energy dispersion of the new material. This input option must be

used very careful, its mainly a kind of cheating procedure.

n1 .... x-lattice index upper left corner

n2 .... y-lattice index upper left corner

n3 .... x-lattice index lower right corner

n4 .... y-lattice index lower right corner

quasi one dimensional = n1

Input optional, default No

To deal with device geometries, having spatial inhomogeneities only along the x-direction.

n1 .... 0==No or 1==Yes (Names or numbers possible)

Solve Poisson equation only along the x-direction. Varying dielectric constants are not taken into

account. Instead, an average of the dielectric constant across the total device geometry is used

overall. The number of blocks in y-direction has to specified to 3. Additionally, periodic boundary

conditions in y-direction must be specified (periodic boundary = 2). Dirichlet conditions for

contacts can be applied only at the outermost blocks at the left and right boarder of the device.

energy step weighting = r1

Input optional

r1 .... energy step [eV] to create an irregular grid in energy space.

This input parameter activates particle weighting, that means, the complete required input for particle

weighting (xy grid weighting = .... , energy grid weighting = .....) must be provided additionally.

energy grid weighting = n1 ,n2

Input (Required only, if particle weighting is switched on):

n1 .... Number of coarse energy blocks, each having a width of n2 >>energy step weighting<< units

Multiple entries for this parameter are added in such a way, that later entries add coarse blocks at

the next higher energy available. If you are lucky, the program tries to adjust the pseudo particle

density inversely proportional to the Index of the coarse energy grid.

xy grid weighting = n1,n2,n3,n4,n5,n6,r1,r2,r3,r4,r5,r6

Input (Required only, if particle weighting is switched on):

n1 .... x-lattice index upper left corner

n2 .... y-lattice index upper left corner

n3 .... x-lattice index lower right corner

n4 .... y-lattice index lower right corner

n5 .... number of Poisson grid blocks per cluster x-direction (n3 n1 +1 must be a multiple of n5 )

n6 .... number of Poisson grid blocks per cluster y-direction (n4 n2 +1 must be a multiple of n6 )

r 1 .... multiply the internal computed minimum number of electrons on blockcluster with r1

r 2 .... multiply the internal computed minimum number of holes on blockcluster with r2

r 3 .... multiply the internal computed maximum number of electrons on blockcluster with r3

r 4 .... multiply the internal computed maximum number of holes on blockcluster with r4

r 5 .... multiply the internal computed number of electrons which should be achieved on blockcluster

with r5

r 6 .... multiply the internal computed number of holes which should be achieved on blockcluster

with r6

In the region, defined by n1 n4 on the Poisson grid, a coarser grid is generated by clustering

Poisson grid blocks (n5 and n6 blocks in x- and y-direction respectively). This coarser real space

grid is used for splitting and gathering weighted pseudo-particles. The pseudo-particle number, to

be achieved on each block-cluster is the maximum number of unweighted particles, calculated from

the charge neutrality conditions by assuming the maximum doping level for each type of doping

in the device on each hole cluster. The maximum particle number on each cluster is computed

as twice the particle number which should be achieved. The minimum particle number on each

cluster is computed as half of the particle number which should be achieved.

refresh check = n1

Input (Required only, if particle weighting is switched on):

n1 .... Compute pseudo-particle numbers and refresh if necessary (split/gather) pseudo-particle

subensembles any n1 timesteps

generate thermal pairs = n1,r1

Input (Usual only meaningful if particle weighting is switched on):

n1 .... number of electron-hole pairs

r1 .... statistical weight of generated particles

Generates each timestep n1 thermal electron-hole pairs with particle weight r1 . The position for the

generated electron-hole pair is chosen randomly somewhere in the device.

write impact rate to = filename

Input optional

Write impact ionization rates, initiated by electrons and holes, to file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7, x8

x1 .... x-coordinate [nm]

x2 .... y-coordinate [nm]

x3 .... generation rate initiated by electrons [10 18 /cm 3 s]

x4 .... generation rate initiated by holes [10 18 /cm 3 s]

x5 .... inverse average electric field strength in x-direction at block [cm/kV]

x6 .... average electric field strength in x-direction at block [kV/cm]

x7 .... impact ionization coefficient alpha for electrons [1/m]

x8 .... impact ionization coefficient beta for electrons [1/m]

The output quantities x7 and x8 make sense only for geometries with no spatial inhomogeneities

along the y-direction, because the impact ionization coefficients are calculated, using the velocity

in x-direction only.

write tunnel info to = filename

Input optional

Write information about Zener tunneling processes to file “filename”

Output quantities in the columns of file “filename” have the following meaning:

x1 , x2 , x3 , x4 , x5 , x6 , x7, x8 , x9 , x10 , x11 , x12 , x13

x1 .... x-coordinate [nm]

x2 .... y-coordinate [nm]

x3 .... generation rate of electrons by Zener tunneling [cm –3 s -1 ]

x4 .... generation rate of holes by Zener tunneling [cm –3 s -1 ]

x5 .... don’t ask, for special purpose only

x6 .... don’t ask, for special purpose only

x7 .... don’t ask, for special purpose only

x8 .... don’t ask, for special purpose only

x9 .... don’t ask, for special purpose only

x10 .... don’t ask, for special purpose only

x11 .... current due to tunneling from valence to cunduction band [A/cm 2 ]

x12 .... current due to tunneling from conduction to valence band [A/cm 2 ]

x13 .... total current due to tunneling between conduction and valence band (light hole) [A/cm 2 ]

The inclusion of Zener tunneling is possible only for one dimensional p-n structures in with the

p-region on the left.