w90_spin Module

Module to compute spin


Uses

  • module~~w90_spin~~UsesGraph module~w90_spin w90_spin module~w90_constants w90_constants module~w90_spin->module~w90_constants module~w90_error w90_error module~w90_spin->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_spin~~UsedByGraph module~w90_spin w90_spin proc~berry_get_kubo_k berry_get_kubo_k proc~berry_get_kubo_k->module~w90_spin proc~dos_get_k dos_get_k proc~dos_get_k->module~w90_spin proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_get_k_list->module~w90_spin proc~gyrotropic_get_noa_k gyrotropic_get_NOA_k proc~gyrotropic_get_noa_k->module~w90_spin proc~k_path k_path proc~k_path->module~w90_spin proc~k_slice k_slice proc~k_slice->module~w90_spin proc~tdf_kpt TDF_kpt proc~tdf_kpt->module~w90_spin program~postw90 postw90 program~postw90->module~w90_spin

Subroutines

public subroutine spin_get_moment(dis_manifold, fermi_energy_list, kpoint_dist, kpt_latt, pw90_oper_read, pw90_spin, ws_region, print_output, wannier_data, ws_distance, wigner_seitz, HH_R, SS_R, u_matrix, v_matrix, eigval, real_lattice, scissors_shift, mp_grid, num_wann, num_bands, num_kpts, num_valence_bands, effective_model, have_disentangled, wanint_kpoint_file, seedname, stdout, timer, error, comm)

Computes the spin magnetic moment by Wannier interpolation

Arguments

Type IntentOptional Attributes Name
type(dis_manifold_type), intent(in) :: dis_manifold
real(kind=dp), intent(in), allocatable :: fermi_energy_list(:)
type(kpoint_dist_type), intent(in) :: kpoint_dist
real(kind=dp), intent(in) :: kpt_latt(:,:)
type(pw90_oper_read_type), intent(in) :: pw90_oper_read
type(pw90_spin_mod_type), intent(in) :: pw90_spin
type(ws_region_type), intent(in) :: ws_region
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 :: HH_R(:,:,:)
complex(kind=dp), intent(inout), allocatable :: SS_R(:,:,:,:)
complex(kind=dp), intent(in) :: u_matrix(:,:,:)
complex(kind=dp), intent(in) :: v_matrix(:,:,:)
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) :: 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
logical, intent(in) :: wanint_kpoint_file
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

public subroutine spin_get_nk(ws_region, pw90_spin, wannier_data, ws_distance, wigner_seitz, HH_R, SS_R, kpt, real_lattice, spn_nk, mp_grid, num_wann, error, comm)

Computes (m=1,...,num_wann) where S.n = n_x.S_x + n_y.S_y + n_z.Z_z

Read more…

Arguments

Type IntentOptional Attributes Name
type(ws_region_type), intent(in) :: ws_region
type(pw90_spin_mod_type), intent(in) :: pw90_spin
type(wannier_data_type), intent(in) :: wannier_data
type(ws_distance_type), intent(inout) :: ws_distance
type(wigner_seitz_type), intent(in) :: wigner_seitz
complex(kind=dp), intent(inout), allocatable :: HH_R(:,:,:)
complex(kind=dp), intent(inout), allocatable :: SS_R(:,:,:,:)
real(kind=dp), intent(in) :: kpt(3)
real(kind=dp), intent(in) :: real_lattice(3,3)
real(kind=dp), intent(out) :: spn_nk(num_wann)
integer, intent(in) :: mp_grid(3)
integer, intent(in) :: num_wann
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine spin_get_moment_k(kpt, ef, spn_k, num_wann, ws_region, wannier_data, real_lattice, mp_grid, ws_distance, HH_R, SS_R, wigner_seitz, error, comm)

Computes the spin magnetic moment by Wannier interpolation at the specified k-point

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: kpt(3)
real(kind=dp), intent(in) :: ef
real(kind=dp), intent(out) :: spn_k(3)
integer, intent(in) :: num_wann
type(ws_region_type), intent(in) :: ws_region
type(wannier_data_type), intent(in) :: wannier_data
real(kind=dp), intent(in) :: real_lattice(3,3)
integer, intent(in) :: mp_grid(3)
type(ws_distance_type), intent(inout) :: ws_distance
complex(kind=dp), intent(inout), allocatable :: HH_R(:,:,:)
complex(kind=dp), intent(inout), allocatable :: SS_R(:,:,:,:)
type(wigner_seitz_type), intent(in) :: wigner_seitz
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

public subroutine spin_get_S(kpt, S, num_wann, ws_region, wannier_data, real_lattice, mp_grid, ws_distance, HH_R, SS_R, wigner_seitz, error, comm)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: kpt(3)
real(kind=dp), intent(out) :: S(num_wann,3)
integer, intent(in) :: num_wann
type(ws_region_type), intent(in) :: ws_region
type(wannier_data_type), intent(in) :: wannier_data
real(kind=dp), intent(in) :: real_lattice(3,3)
integer, intent(in) :: mp_grid(3)
type(ws_distance_type), intent(inout) :: ws_distance
complex(kind=dp), intent(inout), allocatable :: HH_R(:,:,:)
complex(kind=dp), intent(inout), allocatable :: SS_R(:,:,:,:)
type(wigner_seitz_type), intent(in) :: wigner_seitz
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm