[ Home ] [ News ] [ Contact ] [ Search ]

 ==> Download Software
 nextnano³ documentation

 Copyright notice
 About us
 Useful Links
 Publications
 
 * password protected

 

 
 

Doping

Doping concentrations are stored in MODULE doping.

See also:
- $doping-function
- $impurity-parameters

   number-of-energy-levels     <=> num_levelsV
   energy-levels-relative      <=> E_V
   degeneracy-of-energy-levels <=> g_V

  • MODULE doping

    num_don_doping  -->  
    number of donors (on whole region)
    num_acc_doping  -->  
    number of acceptors (on whole region)
    max_don_levels  -->  
    maximum number of donor levels
    max_acc_levels  -->  
    maximum number of acceptor levels

    dopingV (1..lengvecV)
    contains for each point on Stefan's grid
                         
    information of TYPE dop_type

        num_donors       
    number of dopants on that point
        num_acceptors  

        par_donV(1..num_donors)
        par_accV(1..num_acceptors) -->
              
    contains doping number (1..num_don_doping + 1..num_acc_doping)
               conc_donV,con_accV -->
    doping concentration in SI units [1/m^3]

              
    Note: Arrays only allocated if num_donors/num_acceptors > 0.

    g_V(1..num_doping,1..max_levels) ...
    g-factors (= degeneracies) for dopants
    E_V(1..num_doping,1..max_levels) ...
    ionization energies in SI units [J]
                                        
    usually positive for donors and acceptors
                                        
    ionization energy relative to band edge!

    num_levelsV(1..num_doping)       ...
    number of actual energy levels
          
    Note: num_doping = num_don_doping + num_acc_doping

    INTEGER :: num_don_doping,max_don_levels, &
               num_acc_doping,max_acc_levels, &
               num_dopants,max_levels

     
    TYPE ::  dop_type
       INTEGER                                  :: num_donors, num_acceptors
       REAL(8)      ,DIMENSION(:)  ,POINTER     :: conc_donV , conc_accV
       INTEGER      ,DIMENSION(:)  ,POINTER     :: par_donV  , par_accV
     END TYPE dop_type

     TYPE (dop_type),DIMENSION(:)  ,ALLOCATABLE :: dopingV

     REAL(8)        ,DIMENSION(:,:),POINTER     :: g_V,E_V
     INTEGER        ,DIMENSION(:)  ,POINTER     :: num_levelsV

 

The details of doping are provided by the subroutines in MODULE input_block_three:

  • SUBROUTINE number_of_dopants(num_don_doping,num_acc_doping, &
                                 max_don_levels,max_acc_levels)

    Output:
    num_don_doping  -->  number of donors
    num_acc_doping  --> 
    number of acceptors
    num_trp_doping  --> 
    number of traps
    max_don_levels  --> 
    maximum number of donor levels
    max_acc_levels  --> 
    maximum number of acceptor levels
    max_trp_levels  --> 
    maximum number of trap levels
  • SUBROUTINE dopant_characteristics(num_dop,num_levels,g_V,E_V)

    Returns for given dopant [num_don] the number of energy levels.
    g-factors and energies are returned in
    g_V(1..num_levels) and E_V(1..num_levels) (relative to band edge).
    E_V is the value from the input file, i.e. in scaled units,
    so E_V * e0 is the energy in SI units.
    Note: E_V is usually positive, i.e. the absolute energy level is
     ...    bandedge - E_V  for donors
     ...    bandedge + E_V  for acceptors
  • SUBROUTINE get_doping(i,num_don,num_acc,index_donV,index_accV,dop_donV,dop_accV)
    Input:
     i          -->  point number on material grid

    Output:
     num_don    -->  number of donators on that point
     num_acc    --> 
    number of acceptors on that point
     index_donV --> 
    contains in (1..num_don) the donor numbers
     index_accV --> 
    contains in (1..num_acc) the acceptor numbers
     dop_donV   --> 
    contains in (1..num_don) the donor concentrations
     dop_accV   --> 
    contains in (1..num_acc) the acceptor concentrations

Note:
All dopants are numbered from 1 ... number_of_dopants.
index_donV(k) contains for donor   k (k=1,...,num_don) the dopant number (within 1... number of dopant num_dop)
index_accV(k) contains for acceptor k (k=1,...,num_acc) the dopant number (within 1... number of dopant num_dop)
number of dopant = num_don + num_acc + num_trp

Note:
For donors and acceptors only one energy level is allowed up to now.
Traps will be implemented later on.

The setup of the doping is done in MODULE material_data_block_three.

   
Last modified: 09-Jun-2011