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

 ==> Download Software
 nextnano³ documentation

 Copyright notice
 About us
 Useful Links
 Publications
 
 * password protected

 

 
 

Get k|| for 1D (2D Brillouin zone)

In 1D, the k.p Hamiltonian is discretized in z-direction, the (x,y) plane is taken into account by integrating over the according 2D Brillouin zone. The Brillouin zone is discretized in subroutine get_dim_2D_BZ.

In the input file one of three options can be specified to calculate the density of the k.p states (specifier: 'method-of-brillouin-zone-integration':

  • 'special-axis': The Hamiltonian is isotropic in (kx,ky)-plane. The density integral reduces to a one-dimensional integration. This option is only allowed for wurtzite in [0001]-direction. In all other cases the program switches to option 'simple-integration'. This option is internally stored as dim_intBZ='1D'.
  • 'simple-integration': The 2D-Brillouin zone is discretized. For zincblende in [001]-direction only the irreducible wedge of the Brillouin zone (up to maximum k_parallel) is discretized. In all other cases the whole Brillouin zone (to be more exact half of the BZ) is discretized. This option is internally stored as dim_intBZ='2D'.
  • 'gen-dos': The density is calculated by integration over the density of states. For zincblende in [001]-direction only the irreducible wedge of the Brillouin zone (up to maximum k_parallel) is discretized. In all other cases the whole Brillouin zone (to be more exact half of the BZ) is discretized. This option is internally stored as dim_intBZ='DO'.

The number of discretization points is given under the keyword 'num-kp-parallel'. This number refers to the whole Brillouin zone. For 1D integration or integration over a part of the Brillouin zone the number of k_parallel is reduced accordingly.

In subroutine get_dim_2D_BZ there are two options: calculate_kL = .TRUE.
                                                         = .FALSE.
1)  For initialization (for setup) option .FALSE. is taken. Here input_num_kp_par is the number of k|| specified via input. dim_intBZ is the method specified via input. This information is mapped to a variable ispecify_case which determines how the density calculation is carried out in the following. First the rotation matrix is obtained via subroutine get_crystal_and_rotation. Note: dim_intBZ may be changed on output.

!------------------------------------------------------------------
subroutine get_crystal_and_rotation
(num_qr,crystC,rotM)
!------------------------------------------------------------------
! input: num_qr = number of quantum region
!
! output: crystC = 'wz' or 'zb'
! rotM = 3x3-matrix
!
!-------------------------------------------------------------------

The mapping for ispecify_case is done as follows:

!---------------------------------------------------------------
subroutine get_case_integrate_BZ(num_qr,dim_intBZ,ispecify_case)
!---------------------------------------------------------------
! input: num_qr , dim_intBZ
!
! returns for 2D-integration 
!---------------------------------------------------------------
!
! dim_intBZ='1D' :
!
!   crystC='wz' and (rotM = I or rotM=-I --> [0001]) : ispecify_case = 1
!
!   crystC='zb' and (rotM = I or rotM=-I --> [001])  : ispecify_case = 2
!
!   all other cases : ispecify_case = 3
!
! dim_intBZ='2D' :
!
!   crystC='wz' and (rotM = I or rotM=-I --> [0001]) : ispecify_case = 4
!
!   crystC='zb' and (rotM = I or rotM=-I --> [001])  : ispecify_case = 5
!
!   all other cases : ispecify_case = 6
!
! dim_intBZ='DO' :
!
!   crystC='wz' and (rotM = I or rotM=-I --> [0001]) : ispecify_case = 7
!
!   crystC='zb' and (rotM = I or rotM=-I --> [001])  : ispecify_case = 8
!
!   all other cases : ispecify_case = 9
!
!--------------------------------------------------------------

2) Option calculate_kL=.TRUE. is taken whenever one wants to get the special k points. Now dim_intBZ, max_num_kp_par and ispecify_case (as determined before) are taken as input. NOTE: The k_parallel returned refer to a discretized square of length 1.0 [1/AA].

For more details please have a look here: Brillouin zone integration

   
Last modified: 09-Jun-2011