nextnano.com
 nextnano³
 Download | SearchCopyright | Publications
 * password protected

 

nextnano³ software

 

  Voltage sweep

 

 

 
Up
 

Voltage sweep

Command to perform several calculations with increasing (decreasing) bias voltage at a specific contact (poisson-cluster-number / Poisson boundary condition). Useful to get I-V characteristics (current-voltage characteristics) or to get better convergence for high bias voltage by stepwise approaching the final voltage. Sweep always starts from voltage set in Poisson cluster definition ($poisson-boundary-conditions).

With the specifier 'sweep-number' up to four sweeps maybe executed simultaneously. Note that the numbers 'sweep-number' have to be in consecutive order. The relation between the sweep index appended to each output file ("_ind000") and the actual sweep voltage applied is given in the file sweep_index_to_voltage.dat.

!------------------------------------------------------------!
$voltage-sweep                                     optional  !
 sweep-number                       integer        required  !
 sweep-active                       character      required  !
 
poisson-cluster-number             integer_array  required  !
 number-of-steps                    integer        required  !
 step-size                          double_array   optional  !
 table-of-voltages                  double_array   optional  !
 data-out-every-nth-step            integer        optional  !
$end_voltage-sweep                                 optional  !
!------------------------------------------------------------!

 

Important:

The output files that are generated during a voltage sweep include an index number in the file name that specifies the step number to which the file belongs. Since

Example: cb_band001_ind000.dat : This is the first conduction band output before the first voltage step occurred.
         cb_band001_ind001.dat : This is the first conduction band output after the first voltage step occurred.
         ...
         cb_band001_ind00n.dat : This is the first conduction band output after the nth voltage step occurred.

 

Examples

$voltage-sweep
 
sweep-number            = 1
 sweep-active            =
yes
 poisson-cluster-number  =
2
 step-size               =
0.05d0    ! [V]
 number-of-steps         =
10
 data-out-every-nth-step =
1
$end_voltage-sweep

 

$voltage-sweep
 
sweep-number            = 1
 sweep-active            =
yes
 poisson-cluster-number  =
1
 step-size               =
0.05d0    ! [V]
 number-of-steps         =
10
 data-out-every-nth-step =
2

 sweep-number            = 2
 sweep-active            =
no
 poisson-cluster-number  =
2
 step-size               =
0.1d0     ! [V]
 number-of-steps         =
3
 data-out-every-nth-step =
1
$end_voltage-sweep

 

Syntax:

sweep-number            = 1

     Numbering of sweeps. For now the maximum is 4. Numbering has to be in consecutive order.

 

sweep-active            = yes
                        = no

Flag whether voltage sweep is active or not.

 

poisson-cluster-number  = 1
                       
= 2
                       
= ...
                       
= 5
                       
= 1 3  !
Here: Voltage sweep applies to several Poisson clusters simultaneously (Sweep Poisson cluster number #1 #2).
                               !      This might be useful for a 2D or 3D simulation if one has different Schottky barrier heights where the same voltage should be applied or ...

Number of Poisson cluster to which bias voltage should be applied (integer array). The Poisson cluster (= contacts) can be specified here: $poisson-boundary-conditions

 

number-of-steps         = 10

Number of steps to be performed for this cluster / these clusters.

 

step-size               = 0.02d0              ! [V]

Step size for voltage sweep in [V].
Should not be too large as the electrostatic potential of the previous voltage sweep is used as initial guess.
If more than one poisson-cluster-number entries are specified, this entry can consist of an array of different step sizes for each poisson-cluster-number entry.
                   = 0.02d0  0.01d0      ! [V] Sweep Poisson cluster number #1 #2 ( poisson-cluster-number = 1 3   ! (for instance)  )

 

                      !   #1         #2        #3       ! Sweep Poisson cluster number ( poisson-cluster-number = 1 4 5 ! (for instance)  )
table-of-voltages       = 0.005d0    0.005d0   0.000d0  ! [V]
voltages of step 1
                          0.010d0    0.005d0   0.000d0  ! [V] voltages of step 2
                          0.015d0    0.005d0   0.000d0  ! [V] voltages of step 3
                          0.020d0    0.010d0   0.000d0  ! [V] voltages of step 4
                          0.020d0    0.015d0   0.000d0  ! [V] voltages of step 5
                          0.020d0    0.020d0   0.000d0  ! [V] voltages of step 6
                          0.020d0    0.020d0   1.000d0  ! [V] voltages of step 7
                          0.020d0    0.020d0   2.000d0  ! [V] voltages of step 8

Instead of specifying the step-size, one can also specify a table of voltages.

The number of entries in table-of-voltages must be consistent to the number-of-steps and the number of entries in poisson-cluster-number.
It must hold: SIZE(table-of-voltages) = number-of-steps * SIZE(poisson-cluster-number)

Either step-size or table-of-voltages must be present but not both of them.

 

data-out-every-nth-step = 1

If you don't 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 gate voltage. This is useful if you want to fill out all unused space on your hard disk.

 

 

2D Example with Source, Drain and Gate as contacts (Poisson clusters):

$voltage-sweep
 sweep-active           = yes
poisson-cluster-number=1  poisson-cluster-number = 2 poisson-cluster-number=3
 step-size              = 0.1d0
     number-of-steps        = 4  
sweep-step=0 Source 0.0 V Drain 0.0 V Gate 0.2 V
sweep-step=1 Source 0.0 V Drain 0.1 V Gate 0.2 V
sweep-step=2 Source 0.0 V Drain 0.2 V Gate 0.2 V
sweep-step=3 Source 0.0 V Drain 0.3 V Gate 0.2 V
sweep-step=4 Source 0.0 V Drain 0.4 V Gate 0.2 V

For each sweep-step, the Poisson, Schrödinger and current equations are solved for the given voltages. For sweep-step=n, the results of sweep-step=n-1 are taken as starting values to improve convergence.


Example

FET - Field Effect Transistor (1D) - How to incorporate voltage sweep steps

  1. FET - Field Effect Transistor (1D)
    This example deals with a FET including voltage sweep from 0 V to 4 V in steps of 0.2 V writing out every 1 V.
    Input file: ULM_FETs.in
  2. The FET is grown pseudomorphically on a GaN substrate and looks like this:

    !   1       2       3            4           5      6
    ! metal   n-GaN   n-GaN   Ga(0.9)In(0.1)N   GaN   metal
    !   20     220     270          290         295    315      nm
    !_____________________________________________________________
    ! ohmic contact                               ohmic contact
     
  3. Doping: The structure has a constant n-type doping of 1*1018 cm-3 from 20 nm to 269 nm.
  4. Voltage sweep

    Command to perform several calculations with increasing (decreasing) bias voltage at one specific contact.
    Useful to get I-V characteristics or to get better convergence for high bias voltage by stepwise approaching the final voltage.

    Important:
    The output files that are generated during a voltage sweep include a index number in the file name that specifies the step number to which the file belongs.

     $voltage-sweep
      sweep-number            = 1   
      sweep-active            =
    yes  !
    Flag whether voltage sweep is active or not.
      poisson-cluster-number  =
    1    !
    number of Poisson cluster to which bias voltage should be applied.
      step-size               =
    0.2  ! [V]
    step size for voltage sweep
      number-of-steps         =
    20   !
    number of steps to be performed.
      data-out-every-nth-step =
    5    !
    If you don't want to write out all data specified in the output section for every step, you have to enter an integer number greater than one.
     
    $end_voltage-sweep
     
  5. Output:
    Gamma conduction band edge for voltages of 0 V, 1 V, 2 V, 3 V and 4 V.
    cb_band1_ind000.dat: This is the first conduction band written out before the first voltage step occurred.