w90_dos Module

module~~w90_dos~~UsesGraph module~w90_dos w90_dos module~w90_constants w90_constants module~w90_constants->module~w90_dos

Compute Density of States

Used By

module~~w90_dos~~UsedByGraph module~w90_dos w90_dos module~w90_boltzwann w90_boltzwann module~w90_dos->module~w90_boltzwann program~postw90 postw90 module~w90_dos->program~postw90 module~w90_boltzwann->program~postw90


TypeVisibility AttributesNameInitial
integer, private :: num_freq

Number of sampling points

real(kind=dp), private :: d_omega

Step between energies


public subroutine dos_main()

Computes the electronic density of states. Can resolve into up-spin and down-spin parts, project onto selected Wannier orbitals, and use adaptive broadening, as in PRB 75, 195121 (2007) [YWVS07].



public subroutine dos_get_k(kpt, EnergyArray, eig_k, dos_k, smr_index, smr_fixed_en_width, adpt_smr_fac, adpt_smr_max, levelspacing_k, UU)

This subroutine calculates the contribution to the DOS of a single k point


Type IntentOptional AttributesName
real(kind=dp), intent(in), dimension(3):: kpt
real(kind=dp), intent(in), dimension(:):: EnergyArray
real(kind=dp), intent(in), dimension(:):: eig_k
real(kind=dp), intent(out), dimension(:,:):: dos_k
integer, intent(in) :: smr_index
real(kind=dp), intent(in), optional :: smr_fixed_en_width
real(kind=dp), intent(in), optional :: adpt_smr_fac
real(kind=dp), intent(in), optional :: adpt_smr_max
real(kind=dp), intent(in), optional dimension(:):: levelspacing_k
complex(kind=dp), intent(in), optional dimension(:,:):: UU

public subroutine dos_get_levelspacing(del_eig, kmesh, levelspacing)

This subroutine calculates the level spacing, i.e. how much the level changes near a given point of the interpolation mesh


Type IntentOptional AttributesName
real(kind=dp), intent(in), dimension(num_wann,3):: del_eig

Band velocities, already corrected when degeneracies occur

integer, intent(in), dimension(3):: kmesh

array of three integers, giving the number of k points along each of the three directions defined by the reciprocal lattice vectors

real(kind=dp), intent(out), dimension(num_wann):: levelspacing

On output, the spacing for each of the bands (in eV)