w90_kslice Module

Plots the intersections of constant-energy isosurfaces with a BZ slice, and/or makes a heatmap plot on the slice:

  • Minus the Berry curvature, summed over occupied bands

  • The k-integrand of the orbital magnetization formula

  • The k-integrand of the spin Hall conductivity formula

The slice is defined in reduced coordinates by three input variables:

pw90_kslice_corner(1:3) is the lower left corner pw90_kslice_b1(1:3) and pw90_kslice_b2(1:3) are the vectors subtending the slice


Uses

  • module~~w90_kslice~~UsesGraph module~w90_kslice w90_kslice module~w90_error w90_error module~w90_kslice->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_error_base module~w90_constants w90_constants module~w90_comms->module~w90_constants

Used by

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

Subroutines

public subroutine k_slice(pw90_berry, dis_manifold, fermi_energy_list, kmesh_info, kpt_latt, pw90_kslice, pw90_oper_read, pw90_band_deriv_degen, pw90_spin, ws_region, 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_bands, num_kpts, num_wann, 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
real(kind=dp), intent(in) :: kpt_latt(:,:)
type(pw90_kslice_mod_type), intent(in) :: pw90_kslice
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(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_bands
integer, intent(in) :: num_kpts
integer, intent(in) :: num_wann
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 kslice_print_info(plot_fermi_lines, fermi_lines_color, plot_curv, plot_morb, plot_shc, stdout, pw90_berry, fermi_energy_list, error, comm)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: plot_fermi_lines
logical, intent(in) :: fermi_lines_color
logical, intent(in) :: plot_curv
logical, intent(in) :: plot_morb
logical, intent(in) :: plot_shc
integer, intent(in) :: stdout
type(pw90_berry_mod_type), intent(in) :: pw90_berry
real(kind=dp), intent(in), allocatable :: fermi_energy_list(:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine write_data_file(stdout, filename, fmt, data)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: stdout
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: fmt
real(kind=dp), intent(in) :: data(:,:)

private subroutine write_coords_file(stdout, filename, fmt, coords, vals, mask, blocklen)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: stdout
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: fmt
real(kind=dp), intent(in) :: coords(:,:)
real(kind=dp), intent(in) :: vals(:,:,:)
logical, intent(in), optional :: mask(:,:)
integer, intent(in), optional :: blocklen

private subroutine script_common(scriptunit, areab1b2, square, seedname)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: scriptunit
real(kind=dp), intent(in) :: areab1b2
character(len=25), intent(in) :: square
character(len=50), intent(in) :: seedname

private subroutine script_fermi_lines(scriptunit, seedname, fermi_energy_list)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: scriptunit
character(len=50), intent(in) :: seedname
real(kind=dp), intent(in), allocatable :: fermi_energy_list(:)