w90_hamiltonian Module

module~~w90_hamiltonian~~UsesGraph module~w90_hamiltonian w90_hamiltonian module~w90_constants w90_constants module~w90_constants->module~w90_hamiltonian
Help

Module to obtain the Hamiltonian in a wannier basis This is a simplified routine, more sophisticated properties are found in postw90 (e.g. w90_get_oper)

Used By

module~~w90_hamiltonian~~UsedByGraph module~w90_hamiltonian w90_hamiltonian program~wannier wannier module~w90_hamiltonian->program~wannier proc~tran_cut_hr_one_dim tran_cut_hr_one_dim module~w90_hamiltonian->proc~tran_cut_hr_one_dim proc~plot_main plot_main module~w90_hamiltonian->proc~plot_main proc~tran_write_xyz tran_write_xyz module~w90_hamiltonian->proc~tran_write_xyz proc~tran_main tran_main module~w90_hamiltonian->proc~tran_main proc~tran_find_integral_signatures tran_find_integral_signatures module~w90_hamiltonian->proc~tran_find_integral_signatures proc~tran_lcr_2c2_build_ham tran_lcr_2c2_build_ham module~w90_hamiltonian->proc~tran_lcr_2c2_build_ham proc~master_sort_and_group master_sort_and_group module~w90_hamiltonian->proc~master_sort_and_group proc~check_and_sort_similar_centres check_and_sort_similar_centres module~w90_hamiltonian->proc~check_and_sort_similar_centres proc~tran_reduce_hr tran_reduce_hr module~w90_hamiltonian->proc~tran_reduce_hr proc~plot_interpolate_bands plot_interpolate_bands module~w90_hamiltonian->proc~plot_interpolate_bands proc~plot_fermi_surface plot_fermi_surface module~w90_hamiltonian->proc~plot_fermi_surface proc~tran_lcr_2c2_sort tran_lcr_2c2_sort module~w90_hamiltonian->proc~tran_lcr_2c2_sort proc~wannier_run wannier_run module~w90_hamiltonian->proc~wannier_run proc~wann_main wann_main module~w90_hamiltonian->proc~wann_main
Help


Variables

TypeVisibility AttributesNameInitial
complex(kind=dp), public, save, allocatable:: ham_r(:,:,:)

Hamiltonian matrix in WF representation

integer, public, save, allocatable:: irvec(:,:)

The irpt-th Wigner-Seitz grid point has components irvec(1:3,irpt) in the basis of the lattice vectors

integer, public, save, allocatable:: shift_vec(:,:)
integer, public, save, allocatable:: ndegen(:)

Weight of the irpt-th point is 1/ndegen(irpt)

integer, public, save:: nrpts

number of Wigner-Seitz grid points

integer, public, save:: rpt_origin

index of R=0

real(kind=dp), public, save, allocatable:: wannier_centres_translated(:,:)

translated Wannier centres

logical, private, save:: ham_have_setup =.false.
logical, private, save:: have_translated =.false.
logical, private, save:: use_translation =.false.
logical, private, save:: have_ham_r =.false.
logical, private, save:: have_ham_k =.false.
logical, private, save:: hr_written =.false.
logical, private, save:: tb_written =.false.
complex(kind=dp), private, save, allocatable:: ham_k(:,:,:)

Subroutines

public subroutine hamiltonian_setup()

Allocate arrays and setup data

Arguments

None

public subroutine hamiltonian_dealloc()

Deallocate module data

Arguments

None

public subroutine hamiltonian_get_hr()

Calculate the Hamiltonian in the WF basis

Arguments

None

public subroutine hamiltonian_write_hr()

Write the Hamiltonian in the WF basis

Arguments

None

private subroutine hamiltonian_wigner_seitz(count_pts)

Calculates a grid of points that fall inside of (and eventually on the surface of) the Wigner-Seitz supercell centered on the origin of the B lattice with primitive translations nmonkh(1)a_1+nmonkh(2)a_2+nmonkh(3)*a_3

Arguments

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

Only count points and return

public subroutine hamiltonian_write_rmn()

Write out the matrix elements of r

Arguments

None

public subroutine hamiltonian_write_tb()

Write in a single file all the information that is needed to set up a Wannier-based tight-binding model:
* lattice vectors
* <0n|H|Rn>
* <0n|r|Rn>

Arguments

None