w90_transport Module

Module to handle ballistic transport. Based on < dosqc_1.0 > Density Of States and Quantum Conductance - Version 1.0 Marco Buongiorno Nardelli, January 2000. Reference: - M. Buongiorno Nardelli, "Electronic transport in extended systems: application to carbon nanotubes", Phys. Rev. B, vol. 60(11), 7828 (1999)


Uses

  • module~~w90_transport~~UsesGraph module~w90_transport w90_transport module~w90_constants w90_constants module~w90_transport->module~w90_constants

Used by

  • module~~w90_transport~~UsedByGraph module~w90_transport w90_transport program~wannier wannier program~wannier->module~w90_transport proc~wannier_run wannier_run proc~wannier_run->module~w90_transport

Contents


Variables

TypeVisibility AttributesNameInitial
complex(kind=dp), private, parameter:: eta =(0.0_dp, 0.0005_dp)

small complex number

integer, private, parameter:: nterx =50

nterx = # of maximum iteration to calculate transfer matrix

integer, private :: one_dim_vec

cartesian axis to which real_lattice(:,one_dim_vec) is parallel

integer, private :: nrpts_one_dim
integer, private :: num_pl

number of unit cell in a principal layer

integer, private, dimension(3):: coord

coord : coord(1) defines the conduction direction according to 1=x,2=y,3=z, coord(2),coord(3) define the other directions during sorting routines

integer, private, allocatable:: tran_sorted_idx(:)

index of sorted WF centres to unsorted

real(kind=dp), private, allocatable:: hr_one_dim(:,:,:)
real(kind=dp), private, allocatable:: hB0(:,:)
real(kind=dp), private, allocatable:: hB1(:,:)
real(kind=dp), private, allocatable:: hL0(:,:)
real(kind=dp), private, allocatable:: hL1(:,:)
real(kind=dp), private, allocatable:: hR0(:,:)
real(kind=dp), private, allocatable:: hR1(:,:)
real(kind=dp), private, allocatable:: hC(:,:)
real(kind=dp), private, allocatable:: hLC(:,:)
real(kind=dp), private, allocatable:: hCR(:,:)

Subroutines

public subroutine tran_main()

Main transport subroutine

Arguments

None

private subroutine tran_reduce_hr()

Arguments

None

private subroutine tran_cut_hr_one_dim()

Arguments

None

private subroutine tran_get_ht()

Arguments

None

private subroutine tran_bulk()

Arguments

None

private subroutine tran_lcr()

Arguments

None

private subroutine tran_transfer(tot, tott, h_00, h_01, e_scan_cmp, nxx)

Arguments

Type IntentOptional AttributesName
complex(kind=dp), intent(out) :: tot(nxx,nxx)
complex(kind=dp), intent(out) :: tott(nxx,nxx)
real(kind=dp), intent(in) :: h_00(nxx,nxx)
real(kind=dp), intent(in) :: h_01(nxx,nxx)
complex(kind=dp), intent(in) :: e_scan_cmp
integer, intent(in) :: nxx

private subroutine tran_green(tot, tott, h_00, h_01, e_scan, g, igreen, invert, nxx)

Arguments

Type IntentOptional AttributesName
complex(kind=dp), intent(in) :: tot(nxx,nxx)
complex(kind=dp), intent(in) :: tott(nxx,nxx)
real(kind=dp), intent(in) :: h_00(nxx,nxx)
real(kind=dp), intent(in) :: h_01(nxx,nxx)
real(kind=dp), intent(in) :: e_scan
complex(kind=dp), intent(out) :: g(nxx,nxx)
integer, intent(in) :: igreen
integer, intent(in) :: invert
integer, intent(in) :: nxx

private subroutine tran_read_htX(nxx, h_00, h_01, h_file)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: nxx
real(kind=dp), intent(out) :: h_00(nxx,nxx)
real(kind=dp), intent(out) :: h_01(nxx,nxx)
character(len=50), intent(in) :: h_file

private subroutine tran_read_htC(nxx, h_00, h_file)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: nxx
real(kind=dp), intent(out) :: h_00(nxx,nxx)
character(len=50), intent(in) :: h_file

private subroutine tran_read_htXY(nxx1, nxx2, h_01, h_file)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: nxx1
integer, intent(in) :: nxx2
real(kind=dp), intent(out) :: h_01(nxx1,nxx2)
character(len=50), intent(in) :: h_file

private subroutine tran_find_integral_signatures(signatures, num_G)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(out), allocatable, dimension(:, :):: signatures
integer, intent(out) :: num_G

private subroutine tran_lcr_2c2_sort(signatures, num_G, pl_warning)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in), dimension(:, :):: signatures
integer, intent(in) :: num_G
logical, intent(out) :: pl_warning

private subroutine master_sort_and_group(Array, Array_groups, Array_size, subgroup_info)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(inout), dimension(2, Array_size):: Array
integer, intent(in), dimension(:):: Array_groups
integer, intent(in) :: Array_size
integer, intent(out), allocatable, dimension(:, :):: subgroup_info

private subroutine sort(non_sorted, sorted)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(inout), dimension(:, :):: non_sorted
real(kind=dp), intent(out), dimension(:, :):: sorted

private subroutine group(array, array_groups)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in), dimension(:, :):: array
integer, intent(out), allocatable, dimension(:):: array_groups

private subroutine check_and_sort_similar_centres(signatures, num_G)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in), dimension(:, :):: signatures
integer, intent(in) :: num_G

private subroutine tran_write_xyz()

Arguments

None

private subroutine tran_parity_enforce(signatures)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(inout), dimension(:, :):: signatures

private subroutine tran_lcr_2c2_build_ham(pl_warning)

Arguments

Type IntentOptional AttributesName
logical, intent(in) :: pl_warning

public subroutine tran_dealloc()

Dellocate module data

Arguments

None