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)
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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(:,:,:) |
Allocate arrays and setup data
Deallocate module data
Calculate the Hamiltonian in the WF basis
Write the Hamiltonian in the WF basis
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
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(in) | :: | count_pts | Only count points and return |
Write out the matrix elements of r
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>