w90_kpath Module

Calculates quantities along a specified k-path:

  • Energy bands (eventually colored by the spin)
  • Energy bands (colored by Berry curvature-like term of spin Hall conductivity)

  • (Berry curvature)x(-1) summed over occupied bands

  • Berry curvature-like term of spin Hall conductivity summed over occupied bands

  • Integrand of orbital magnetization Morb=LCtil+ICtil


Uses

  • module~~w90_kpath~~UsesGraph module~w90_kpath w90_kpath module~w90_constants w90_constants module~w90_kpath->module~w90_constants module~w90_error w90_error module~w90_kpath->module~w90_error module~w90_comms w90_comms module~w90_error->module~w90_comms module~w90_error_base w90_error_base module~w90_error->module~w90_error_base module~w90_comms->module~w90_constants module~w90_comms->module~w90_error_base

Used by

  • module~~w90_kpath~~UsedByGraph module~w90_kpath w90_kpath program~postw90 postw90 program~postw90->module~w90_kpath

Subroutines

public subroutine k_path(pw90_berry, dis_manifold, fermi_energy_list, kmesh_info, pw90_kpath, kpt_latt, pw90_oper_read, pw90_band_deriv_degen, pw90_spin, ws_region, kpoint_path, pw90_spin_hall, print_output, wannier_data, ws_distance, wigner_seitz, AA_R, BB_R, CC_R, HH_R, SH_R, SHR_R, SR_R, SS_R, SAA_R, SBB_R, v_matrix, u_matrix, bohr, eigval, real_lattice, scissors_shift, mp_grid, fermi_n, num_wann, num_bands, num_kpts, num_valence_bands, effective_model, have_disentangled, seedname, stdout, timer, error, comm)

Main routine

Arguments

Type IntentOptional Attributes Name
type(pw90_berry_mod_type), intent(in) :: pw90_berry
type(dis_manifold_type), intent(in) :: dis_manifold
real(kind=dp), intent(in), allocatable :: fermi_energy_list(:)
type(kmesh_info_type), intent(in) :: kmesh_info
type(pw90_kpath_mod_type), intent(in) :: pw90_kpath
real(kind=dp), intent(in) :: kpt_latt(:,:)
type(pw90_oper_read_type), intent(in) :: pw90_oper_read
type(pw90_band_deriv_degen_type), intent(in) :: pw90_band_deriv_degen
type(pw90_spin_mod_type), intent(in) :: pw90_spin
type(ws_region_type), intent(in) :: ws_region
type(kpoint_path_type), intent(in) :: kpoint_path
type(pw90_spin_hall_type), intent(in) :: pw90_spin_hall
type(print_output_type), intent(in) :: print_output
type(wannier_data_type), intent(in) :: wannier_data
type(ws_distance_type), intent(inout) :: ws_distance
type(wigner_seitz_type), intent(inout) :: wigner_seitz
complex(kind=dp), intent(inout), allocatable :: AA_R(:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: BB_R(:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: CC_R(:,:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: HH_R(:,:,:)
complex(kind=dp), intent(inout), allocatable :: SH_R(:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: SHR_R(:,:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: SR_R(:,:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: SS_R(:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: SAA_R(:,:,:,:,:)
complex(kind=dp), intent(inout), allocatable :: SBB_R(:,:,:,:,:)
complex(kind=dp), intent(in) :: v_matrix(:,:,:)
complex(kind=dp), intent(in) :: u_matrix(:,:,:)
real(kind=dp), intent(in) :: bohr
real(kind=dp), intent(in) :: eigval(:,:)
real(kind=dp), intent(in) :: real_lattice(3,3)
real(kind=dp), intent(in) :: scissors_shift
integer, intent(in) :: mp_grid(3)
integer, intent(in) :: fermi_n
integer, intent(in) :: num_wann
integer, intent(in) :: num_bands
integer, intent(in) :: num_kpts
integer, intent(in) :: num_valence_bands
logical, intent(in) :: effective_model
logical, intent(in) :: have_disentangled
character(len=50), intent(in) :: seedname
integer, intent(in) :: stdout
type(timer_list_type), intent(inout) :: timer
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine k_path_print_info(plot_bands, plot_curv, plot_morb, plot_shc, fermi_energy_list, pw90_kpath, berry_curv_unit, stdout, error, comm)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: plot_bands
logical, intent(in) :: plot_curv
logical, intent(in) :: plot_morb
logical, intent(in) :: plot_shc
real(kind=dp), intent(in), allocatable :: fermi_energy_list(:)
type(pw90_kpath_mod_type), intent(in) :: pw90_kpath
character(len=*), intent(in) :: berry_curv_unit
integer, intent(in) :: stdout
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine k_path_get_points(num_paths, kpath_len, total_pts, xval, plot_kpoint, kpoint_path, recip_lattice, pw90_kpath)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: num_paths
real(kind=dp), intent(out), allocatable :: kpath_len(:)
integer, intent(out) :: total_pts
real(kind=dp), intent(out), allocatable :: xval(:)
real(kind=dp), intent(out), allocatable :: plot_kpoint(:,:)
type(kpoint_path_type), intent(in) :: kpoint_path
real(kind=dp), intent(in) :: recip_lattice(3,3)
type(pw90_kpath_mod_type), intent(in) :: pw90_kpath