berry_get_imf_klist Subroutine

public subroutine berry_get_imf_klist(kpt, imf_k_list, occ, ladpt)

Calculates the Berry curvature traced over the occupied states, -2Im[f(k)] [Eq.33 CTVR06, Eq.6 LVTS12] for a list of Fermi energies, and stores it in axial-vector form

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: kpt(3)
real(kind=dp), intent(out), dimension(:, :, :):: imf_k_list
real(kind=dp), intent(in), optional dimension(:):: occ
logical, intent(in), optional dimension(:):: ladpt

Calls

proc~~berry_get_imf_klist~~CallsGraph proc~berry_get_imf_klist berry_get_imf_klist proc~berry_get_imfgh_klist berry_get_imfgh_klist proc~berry_get_imf_klist->proc~berry_get_imfgh_klist proc~wham_get_occ_mat_list wham_get_occ_mat_list proc~berry_get_imfgh_klist->proc~wham_get_occ_mat_list proc~wham_get_eig_uu_hh_jjlist wham_get_eig_UU_HH_JJlist proc~berry_get_imfgh_klist->proc~wham_get_eig_uu_hh_jjlist proc~utility_im_tr_prod utility_im_tr_prod proc~berry_get_imfgh_klist->proc~utility_im_tr_prod proc~pw90common_fourier_r_to_k_vec pw90common_fourier_R_to_k_vec proc~berry_get_imfgh_klist->proc~pw90common_fourier_r_to_k_vec proc~utility_re_tr_prod utility_re_tr_prod proc~berry_get_imfgh_klist->proc~utility_re_tr_prod proc~io_error io_error proc~wham_get_occ_mat_list->proc~io_error proc~utility_diagonalize utility_diagonalize proc~wham_get_eig_uu_hh_jjlist->proc~utility_diagonalize proc~get_hh_r get_HH_R proc~wham_get_eig_uu_hh_jjlist->proc~get_hh_r proc~utility_diagonalize->proc~io_error proc~get_hh_r->proc~io_error proc~get_win_min get_win_min proc~get_hh_r->proc~get_win_min proc~fourier_q_to_r fourier_q_to_R proc~get_hh_r->proc~fourier_q_to_r proc~io_file_unit io_file_unit proc~get_hh_r->proc~io_file_unit

Called by

proc~~berry_get_imf_klist~~CalledByGraph proc~berry_get_imf_klist berry_get_imf_klist proc~k_slice k_slice proc~k_slice->proc~berry_get_imf_klist proc~k_path k_path proc~k_path->proc~berry_get_imf_klist proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_get_k_list->proc~berry_get_imf_klist proc~berry_main berry_main proc~berry_main->proc~berry_get_imf_klist proc~gyrotropic_main gyrotropic_main proc~gyrotropic_main->proc~gyrotropic_get_k_list

Contents

Source Code


Source Code

  subroutine berry_get_imf_klist(kpt, imf_k_list, occ, ladpt)
    !============================================================!
    !                                                            !
    !! Calculates the Berry curvature traced over the occupied
    !! states, -2Im[f(k)] [Eq.33 CTVR06, Eq.6 LVTS12] for a list
    !! of Fermi energies, and stores it in axial-vector form
    !                                                            !
    !============================================================!
    ! Arguments
    !
    real(kind=dp), intent(in)                    :: kpt(3)
    real(kind=dp), intent(out), dimension(:, :, :) :: imf_k_list
    real(kind=dp), intent(in), optional, dimension(:) :: occ
    logical, intent(in), optional, dimension(:) :: ladpt

    if (present(occ)) then
      call berry_get_imfgh_klist(kpt, imf_k_list, occ=occ)
    else
      if (present(ladpt)) then
        call berry_get_imfgh_klist(kpt, imf_k_list, ladpt=ladpt)
      else
        call berry_get_imfgh_klist(kpt, imf_k_list)
      endif
    endif

  end subroutine berry_get_imf_klist