[Q-e-developers] Variable Cell of EXX w/ Custom-FFT

Satomichi Nishihara nisihara225 at gmail.com
Thu Aug 31 16:01:25 CEST 2017


Dear developers of QE,

when variable cell calculation is performed with exact exchange,
it would be required to scale G-vectors of Custom-FFT in “scale_h.f90”.
However, that is not implemented in the current code.
I think it is useful to modify the subroutine “exx_grid_reinit” of exx.f90 as:

  SUBROUTINE exx_grid_reinit(at_old)
    IMPLICIT NONE
    REAL(DP), INTENT(IN) :: at_old(:,:)
    !
    INTEGER  :: ig
    REAL(DP) :: gx, gy, gz
    !
    DEALLOCATE(xkq_collect,index_xk,index_sym)
    exx_grid_initialized = .false.
    nkqs = 0
    CALL exx_grid_init()
    !
    DEALLOCATE(working_pool)
    CALL exx_mp_init()
    !
    ! … scale g-vectors
    CALL cryst_to_cart(exx_fft%ngmt, exx_fft%gt, at_old, -1)
    CALL cryst_to_cart(exx_fft%ngmt, exx_fft%gt, bg,     +1)
    !
    DO ig = 1, exx_fft%ngmt
      gx = exx_fft%gt(1, ig)
      gy = exx_fft%gt(2, ig)
      gz = exx_fft%gt(3, ig)
      exx_fft%ggt(ig) = gx * gx + gy * gy + gz * gz
    END DO
    !
  END SUBROUTINE exx_grid_reinit

Best,
Satomichi Nishihara

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20170831/c21638cb/attachment.html>


More information about the developers mailing list