LasVegas  Input Manual
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 twodimensional lattice used in the simulator:
Lattice index (i,j) = (1,1) is in the upper left corner
xdirection: from left to right increasing xcoordinate (increasing lattice index i)
ydirection: from top to bottom increasing ycoordinate (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 xdirection:
n1 .... lower lattice index in xdirection n2 .... upper lattice index in xdirection 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 ydirection:
n1 .... lower lattice index in ydirection n2 .... upper lattice index in ydirection 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 .... xlattice index upper left corner of region made up of a certain material n2 .... ylattice index upper left corner of region made up of a certain material n3 .... xlattice index lower right corner of region made up of a certain material n4 .... ylattice 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 .... xlattice index upper left corner n2 .... ylattice index upper left corner n3 .... xlattice index lower right corner n4 .... ylattice 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 .... boundarynumber: (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 ydirection. (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 .... xlattice index upper left corner n2 .... ylattice index upper left corner n3 .... xlattice index lower right corner n4 .... ylattice 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 10^{12} 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 .... Multigridcycle ( vcycle=1 , wcycle=2 , fcycle=3), wcycle 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 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), 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 materialentry 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 .... xlattice index upper left corner n2 .... ylattice index upper left corner n3 .... xlattice index lower right corner n4 .... ylattice index lower right corner r1 .... doping concentration (fully ionized) [10 18 cm 3 ] r2 .... ntype=1.0 , ptype=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: MaxwellBoltzmann:
n1 .... type of statistics to use for charge carriers (MaxwellBoltzmann=1 , FermiDirac=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 [10^{18} 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 MaxwellBoltzmann 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 selfconsistent distribution function on that coarse grid:
n1 .... xlattice index upper left corner n2 .... ylattice index upper left corner n3 .... xlattice index lower right corner n4 .... ylattice index lower right corner n5 .... number of blocks (Poisson grid) per cluster in xdirection (n3 –n1 +1 must be a multiple of n5 ) n6 .... number of blocks (Poisson grid) per cluster in ydirection (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 xdirection n2 .... block index ydirection n3 .... lower (=0) resp. upper (=1) border of block (n1 ,n2 ) in xdirection n4 .... lower (=0) resp. upper (=1) border of block (n1 ,n2 ) in ydirection 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 xdirection 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 .... xcoordinate of block center [nm] x2 .... ycoordinate of block center [nm] x3 .... average velocity of all electrons in block in xdirection [10 6 cm/s] x4 .... average velocity of the electrons in block in the _ Gvalley in xdirection [10 6 cm/s] x5 .... average velocity of the electrons in block in the Lvalley in xdirection [10 6 cm/s] x6 .... average velocity of the electrons in block in the Xvalley in xdirection [10 6 cm/s] x7 .... average velocity of all holes in block in xdirection [10^{6}cm/s] x8 .... average velocity of heavy holes in block in xdirection [10^{6} cm/s] x9 .... average velocity of light holes in block in xdirection [10^{6}cm/s] x10 .... average velocity of holes in split off band in block in xdirection [10^{6}cm/s] 
write y_velocity to = filename 


Input optional, no default:
Write average velocity along ydirection 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 .... xcoordinate of block center [nm] x2 .... ycoordinate of block center [nm] x3 .... average velocity of all electrons in block in ydirection [10^{6} cm/s] x4 .... average velocity of the electrons in block in the _ Gvalley in ydirection [10^{6} cm/s] x5 .... average velocity of the electrons in block in the Lvalley in ydirection [10^{6}cm/s] x6 .... average velocity of the electrons in block in the Xvalley in ydirection [10^{6}cm/s] x7 .... average velocity of all holes in block in ydirection [10^{6}cm/s] x8 .... average velocity of heavy holes in block in ydirection [10^{6} cm/s] x9 .... average velocity of light holes in block in ydirection [10^{6}cm/s] x10 .... average velocity of holes in split off band in block in ydirection [10^{6}cm/s] 
write energy to = filename 


Input optional, no default:
Write average energy along ydirection 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 .... xcoordinate [nm] x2 .... ycoordinate [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 Lvalley [eV] x6 .... average kinetic energy of electrons in Xvalley [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 ydirection 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 .... xcoordinate [nm] x2 .... ycoordinate [nm] x3 .... average density of electrons [10^{18} cm —3 ] x4 .... average density of electrons in _ Gvalley [10^{18} cm —3 ] x5 .... average density of electrons in Lvalley [10^{18} cm —3 ] x6 .... average density of electrons in Xvalley [10^{18} cm —3 ] x7 .... average density of holes [10^{18} cm —3 ] x8 .... average density of heavy holes [10^{18} cm —3 ] x9 .... average density of light holes [10^{18} cm —3 ] x10 .... average density of holes in split off band [10^{18} 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 .... xcoordinate [nm] x2 .... ycoordinate [nm] x3 .... electrostatic potential [V] x4 .... electric field strength in xdirection [V/m] x5 .... electric field strength in ydirection [V/m] x6 .... band edge energy of Gpoint [eV] x7 .... band edge energy of Lpoint [eV] x8 .... band edge energy of Lpoint [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 .... xcoordinate [nm] x2 .... ycoordinate [nm] x3 .... lattice index xdirection x4 .... lattice index ydirection 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 xdirection x2 .... lattice index ydirection x3 .... materialnumber 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 xcoordinate lattice midpoints and width of block (xdirection) of lattice blocks in file “filename” Output quantities in the columns of file “filename” have the following meaning: x1 , x2 x1 .... xcoordinate of lattice midpoint [nm] x2 .... width of lattice block [nm] 
write y_grid info to = filename 


Input optional
Write ycoordinate lattice midpoints and width of block (ydirection) of lattice blocks in file “filename” Output quantities in the columns of file “filename” have the following meaning: y1 , y2 x1 .... ycoordinate 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 xdirection x2 .... lattice index ydirection x3 .... xcoordinate [nm] x4 .... ycoordinate [nm] x5 .... band edge 1st conduction band Gpoint [eV] x6 .... band edge 1st conduction band Lpoint [eV] x7 .... band edge 1st conduction band Xpoint [eV] x8 .... band edge heavy hole band G point [eV] x9 .... band edge light hole band G point [eV] x10 .... band edge splitoffband [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 .... xlattice index upper left corner n2 .... ylattice index upper left corner n3 .... xlattice index lower right corner n4 .... ylattice index lower right corner 
quasi one dimensional = n1 


Input optional, default No
To deal with device geometries, having spatial inhomogeneities only along the xdirection. n1 .... 0==No or 1==Yes (Names or numbers possible) Solve Poisson equation only along the xdirection. 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 ydirection has to specified to 3. Additionally, periodic boundary conditions in ydirection 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 .... xlattice index upper left corner n2 .... ylattice index upper left corner n3 .... xlattice index lower right corner n4 .... ylattice index lower right corner n5 .... number of Poisson grid blocks per cluster xdirection (n3 –n1 +1 must be a multiple of n5 ) n6 .... number of Poisson grid blocks per cluster ydirection (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 ydirection respectively). This coarser real space grid is used for splitting and gathering weighted pseudoparticles. The pseudoparticle number, to be achieved on each blockcluster 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 pseudoparticle numbers and refresh if necessary (split/gather) pseudoparticle subensembles any n1 timesteps 

generate thermal pairs = n1,r1 


Input (Usual only meaningful if particle weighting is switched on):
n1 .... number of electronhole pairs r1 .... statistical weight of generated particles Generates each timestep n1 thermal electronhole pairs with particle weight r1 . The position for the generated electronhole 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 .... xcoordinate [nm] x2 .... ycoordinate [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 xdirection at block [cm/kV] x6 .... average electric field strength in xdirection 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 ydirection, because the impact ionization coefficients are calculated, using the velocity in xdirection 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 .... xcoordinate [nm] x2 .... ycoordinate [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 pn structures in with the pregion on the left. 