Global parameters are general parameters which are valid all over the device. See also $global-parameters under database section.

$global-parameters                               optional
 lattice-temperature                 double      required
 temperature-sweep-active            character   optional
 temperature-sweep-step-size         double      optional
 temperature-sweep-number-of-steps   integer     optional
 data-out-every-nth-step             integer     optional
$end_global-parameters                           optional

The lattice temperature is given in Kelvin. The lowest allowed temperature can be set in $program_restrictions.


$global-parameters is optional. If it is not present, the default value for the temperature is taken from $global-parameters of the database file. Currently, the default temperature is set to 300 K.


The band gaps (namely the conduction band edges only) are adjusted when the temperature changes. This feature can be switched off. See $numeric-control: varshni-parameters-on = no

In addition, the lattice constants depend on temperature. This can be switched off as well. See $numeric-control: lattice-constants-temp-coeff-on = no

Temperature sweep

It is possible to sweep over the temperature, i.e. to vary the temperature stepwise. This is similar to

The output is labeled with ..._ind000.dat, ..._ind001.dat, ..._ind002.dat, … where the index refers to the number of the temperature sweep step.


  lattice-temperature               = 300.0  ! [K]

  temperature-sweep-active          = yes    ! yes/no
  temperature-sweep-step-size       = -10.0  ! [K], i.e. in this case -10 K
  temperature-sweep-number-of-steps = 20     ! number of temperature sweep steps
  data-out-every-nth-step           = 10     ! (optional, default = 1)


In this example, the temperature is varied starting from 300 K, and then reducing the temperature 20 times in steps of -10.0, ending at 100 K. Obviously, increasing the temperature is also possible. If you do not want to write out all data specified in the output section for every step, you have to enter an integer number greater than one. If you specify 1, then output files will be generated for each temperature sweep. This is useful if you want to fill out all unused space on your hard disk.


flow-scheme = 13
flow-scheme = 130
flow-scheme = 14
flow-scheme = 140

have some special functionality so far.

130/140: same as 13/14 but including self-consistent Poisson-Schrödinger.

flow-scheme = 13: vary temperature as T
     lattice-temperature               = 5.0  ! 5 Kelvin
     temperature-sweep-active          = yes  !
     temperature-sweep-step-size       = 5.0  ! increase by 5 K
     temperature-sweep-number-of-steps = 250  !
     data-out-every-nth-step           = 50   !

flow-scheme = 14: vary temperature as 1000/T
     lattice-temperature               = 1250  ! 1250 Kelvin
     temperature-sweep-active          = yes   !
     temperature-sweep-step-size       = -5.0  ! decrease by 5 K
     temperature-sweep-number-of-steps = 250   !
     data-out-every-nth-step           = 50    !

See tutorial Electron concentration in doped semiconductors (Si, Ge, GaAs) for details.