kmesh_spacing_singleinteger Function

private function kmesh_spacing_singleinteger(num_points)

Uses

  • proc~~kmesh_spacing_singleinteger~~UsesGraph proc~kmesh_spacing_singleinteger kmesh_spacing_singleinteger module~w90_parameters w90_parameters proc~kmesh_spacing_singleinteger->module~w90_parameters module~w90_constants w90_constants module~w90_parameters->module~w90_constants module~w90_io w90_io module~w90_parameters->module~w90_io module~w90_io->module~w90_constants

Set up the value of the interpolation mesh spacing, needed for adaptive smearing [see Eqs. (34-35) YWVS07]. Choose it as the largest of the three Delta_k's for each of the primitive translations b1, b2, and b3

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: num_points

Return Value real(kind=dp)


Called by

proc~~kmesh_spacing_singleinteger~~CalledByGraph proc~kmesh_spacing_singleinteger kmesh_spacing_singleinteger interface~pw90common_kmesh_spacing pw90common_kmesh_spacing interface~pw90common_kmesh_spacing->proc~kmesh_spacing_singleinteger proc~dos_get_levelspacing dos_get_levelspacing proc~dos_get_levelspacing->interface~pw90common_kmesh_spacing proc~berry_get_sc_klist berry_get_sc_klist proc~berry_get_sc_klist->interface~pw90common_kmesh_spacing proc~berry_get_shc_klist berry_get_shc_klist proc~berry_get_shc_klist->interface~pw90common_kmesh_spacing proc~berry_get_kubo_k berry_get_kubo_k proc~berry_get_kubo_k->interface~pw90common_kmesh_spacing proc~calctdfanddos calcTDFandDOS proc~calctdfanddos->proc~dos_get_levelspacing proc~dos_main dos_main proc~dos_main->proc~dos_get_levelspacing proc~k_slice k_slice proc~k_slice->proc~berry_get_shc_klist proc~k_path k_path proc~k_path->proc~berry_get_shc_klist proc~berry_main berry_main proc~berry_main->proc~berry_get_sc_klist proc~berry_main->proc~berry_get_shc_klist proc~berry_main->proc~berry_get_kubo_k proc~boltzwann_main boltzwann_main proc~boltzwann_main->proc~calctdfanddos

Contents


Source Code

  function kmesh_spacing_singleinteger(num_points)

    !! Set up the value of the interpolation mesh spacing, needed for
    !! adaptive smearing [see Eqs. (34-35) YWVS07]. Choose it as the largest of
    !! the three Delta_k's for each of the primitive translations b1, b2, and b3

    use w90_parameters, only: recip_lattice

    integer, intent(in) :: num_points
    real(kind=dp)       :: kmesh_spacing_singleinteger

    integer        :: i
    real(kind=dp) :: Delta_k_i(3)

    ! NOTE: The vectors b_i are stored as *rows* in recip_lattice (argh!).
    ! Hence I believe Jonathan's original code confused rows with columns
    ! when computing Delta_k, which he called 'rspace'
    ! (See my e-mail of 20Sept07)
    !
    do i = 1, 3
      Delta_k_i(i) = sqrt(dot_product(recip_lattice(i, :), recip_lattice(i, :))) &
                     /num_points
    end do
    kmesh_spacing_singleinteger = maxval(Delta_k_i)

  end function kmesh_spacing_singleinteger