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

 ==> Download Software
 nextnano³ documentation

 Copyright notice
 About us
 Useful Links
 Publications
 
 * password protected

 

 
 

Input of k.p parameters

MODULE input_kp_parameters contains subroutines which provide the k.p parameters:

  •  subroutine get_8x8_kp_zb_parameters
  •  subroutine get_6x6_kp_zb_parameters
  •  subroutine get_8x8_kp_wz_parameters
  •  subroutine get_6x6_kp_wz_parameters
  •  subroutine get_kp_lattice_type

 

The definition of the k.p Hamiltonian is described in detail in the according script:
As units are assumed: [eV] for the energy,  [1/Angstrom] for the k vector
The parameters provided by these functions must be correctly dimensioned.

  • !------------------------------------------------------------
     subroutine get_8x8_kp_zb_parameters(i,L,M,N,B,P,s,d,Ec,Ev)
    !------------------------------------------------------------
    ! i
    point on material grid
    !
    !
    returns k.p parameters
    !
    [without strain]
    !
    !--------------------------------
    !
    See script for definition of the k.p Hamiltonian.
    !
    Units for setup are: eV, AA
    !
    The parameters provided by this function must be consistent with the
    !
    definition of the Hamiltonian and the units [eV, AA]
    !
    !
    Note: Ec here DOES NOT include the shift due to strain.
    !-----------------------------------------------------------------------------
  • !----------------------------------------------------
      subroutine get_6x6_kp_zb_parameters(i,L,M,N,P,d,Ev)
    !----------------------------------------------------
    ! i
    point on material grid
    !
    !
    returns k.p parameters
    !
    [without strain]
    !
    !--------------------------------
    !
    See script for definition of the k.p Hamiltonian.
    !
    Units for setup are: eV, AA
    !
    The parameters provided by this function must be consistent with the
    !
    definition of the Hamiltonian and the units [eV, AA]
    !-----------------------------------------------------------------------------
  • !------------------------------------------------------------------------------
     subroutine get_8x8_kp_wz_parameters(i,L1,L2,M1,M2,M3,N1,N2,B1,B2,B3,P1,P2,s1,s2,d1,d2,d3,Ec,Ev)
    !------------------------------------------------------------------------------
    ! i
    point on material grid
    !
    !
    returns k.p parameters
    !
    [without strain]
    !
    !
    !--------------------------------
    !
    See script for definition of the k.p Hamiltonian.
    !
    Units for setup are: eV, AA
    !
    The parameters provided by this function must be consistent with the
    !
    definition of the Hamiltonian and the units [eV, AA]
    !
    !
    Note: Ec here DOES NOT include the shift due to strain.
    !---------------------------------------------
  • !-------------------------------------------------------
     subroutine get_6x6_kp_wz_parameters1D(i,L1,L2,M1,M2,M3,N1,N2,P1,P2,d1,d2,d3,Ev)
    !-------------------------------------------------------
    ! i
    point on material grid
    !
    !
    returns k.p parameters
    !
    [without strain]
    !
    !
    !--------------------------------
    !
    See script for definition of the k.p Hamiltonian.
    !
    Units for setup are: eV, AA
    !
    The parameters provided by this function must be consistent with the
    !
    definition of the Hamiltonian and the units [eV, AA]
    !-----------------------------------------------------------------------------

 

Deformation potentials

 

The subroutine get_deformation_pot_vb in MODULE input_deformation_pot provides the deformation potentials for wurtzite and zincblende.
Thus for zincblende it is: l1=l2, m1=m2=m3, n1=n2

Setup of k.p parameters

The k.p material data (k.p parameters) are stored in MODULE kp_parameters:
They are defined in subroutine setup_kp_parameters. Please note that E_c already contains the shift due to strain. They are stored on material grid points for each k.p region.

!-----------------------------------------------------------------------------
 MODULE kp_parameters
!-----------------------------------------------------------------------------
!
! Units here: eV, AA   !!!
! -----------
!
! 8x8_kp_zb :
!
! kp_parV(1) = L
! kp_parV(2) = M
! kp_parV(3) = N
! kp_parV(4) = B
! kp_parV(5) = P
! kp_parV(6) = s
! kp_parV(7) = E_c
! kp_parV(8) = E_v
! kp_parV(9) = d
!
! dim_8x8_zb=9
!
!
! 6x6_kp_zb :
!
! kp_parV(1) = L
! kp_parV(2) = M
! kp_parV(3) = N
! kp_parV(4) = E_v
! kp_parV(5) = d
!
!
! 8x8_kp_wz :
!
! kp_parV( 1) = L1
! kp_parV( 2) = L2
! kp_parV( 3) = M1
! kp_parV( 4) = M2
! kp_parV( 5) = M3
! kp_parV( 6) = N1
! kp_parV( 7) = N2
! kp_parV( 8) = B1
! kp_parV( 9) = B2
! kp_parV(10) = B3
! kp_parV(11) = P1
! kp_parV(12) = P2
! kp_parV(13) = s1
! kp_parV(14) = s2
! kp_parV(15) = E_c
! kp_parV(16) = E_v
! kp_parV(17) = d1
! kp_parV(18) = d2
! kp_parV(19) = d3
!
!
! 6x6_kp_wz :
!
! kp_parV( 1) = L1
! kp_parV( 2) = L2
! kp_parV( 3) = M1
! kp_parV( 4) = M2
! kp_parV( 5) = M3
! kp_parV( 6) = N1
! kp_parV( 7) = N2
! kp_parV( 8) = E_v
! kp_parV( 9) = d1
! kp_parV(10) = d2
! kp_parV(11) = d3
!
!
Note: The parameters here must be consistent with the definition in
         the scriptum!!!. As unit are assumed [eV] and [AA].
!
!       E_c
here includes the shift of the conduction band due to strain, i.e.
!       E_c = E_c0 + a_abs*tr(strain_tensor)
!
!-------------------------------------
!
! latticeC = '8x8_wz'
!            '6x6_wz'
!            '8x8_zb'
!            '6x6_zb'
!
!-------------------------------------
!
!
Possible combinations are:
!
!     
electrons                       holes
!
!      sg_1b,class                   sg_1b,class
!      sg_1b,class                   kp_8b             --->  8x8_kp parameters
!      sg_1b,class                   kp_6b             --->  6x6_kp parameters
!      kp_8b                         sg_1b,class       --->  8x8_kp parameters
!      kp_8b                         kp_8b             --->  8x8_kp parameters
!
!
Note: Treating electrons within 8x8_kp and holes within 6x6_kp is not allowed!
!
!-------------------------------------
!
!
k.p parameters are stored on material points.
!
! kp_parametersM(1..num_quantum_regions)  
contains in
! kp_parametersM(i)%points_guentherV(num_point)% ...
!
for quantum_region i and point number num_point the relevant k.p parameters.
!
!  
(corresponds to map_qr_guentherV in MODULE gitter)
!
! kp_parametersM
are only allocated if number of quantum regions > 0.
!----------------------------------------------------------------------------
  TYPE :: point_kp
   REAL(8),DIMENSION(:),POINTER :: kp_parV
   CHARACTER(len=6)             :: latticeC
  END TYPE point_kp

  TYPE :: all_kp
   TYPE (point_kp),DIMENSION(:),POINTER :: points_guentherV
  END TYPE all_kp

  TYPE (all_kp)   ,DIMENSION(:),POINTER :: kp_parametersM

  INTEGER,PARAMETER :: dim_8x8_zb=9, dim_6x6_zb=5, dim_8x8_wz=19, dim_6x6_wz=11

 END MODULE  kp_parameters

   
Last modified: 09-Jun-2011