A minor fix in EPW v6.0

This commit is contained in:
Sabyasachi Tiwari 2025-07-28 16:26:30 +00:00
parent dc587e9903
commit ade097399b
4 changed files with 23 additions and 6 deletions

View File

@ -951,6 +951,8 @@
CALL errore('readin', 'phonon self-energy only works with full uniform k-mesh', 1)
IF ((elecselfen .OR. specfun_el) .AND. mp_mesh_q) &
CALL errore('readin', 'electron self-energy only works with full uniform q-mesh', 1)
IF (mp_mesh_k .AND. mp_mesh_q) &
CALL errore('readin', 'both mp_mesh_k and mp_mesh_q cannot be True, use either', 1)
IF (ephwrite) THEN
IF (.NOT. ep_coupling .AND. .NOT. elph) CALL errore('readin', &
'ephwrite requires ep_coupling=.TRUE., elph=.TRUE.', 1)

View File

@ -31,7 +31,8 @@
USE symm_base, ONLY : s, sname, ft, sr, t_rev
USE noncollin_module, ONLY : noncolin, domag, lspinorb
USE funct, ONLY : write_dft_name
USE input, ONLY : title, laniso, plrn, epbwrite, epwwrite
USE input, ONLY : title, laniso, plrn, epbwrite, epwwrite, &
ephwrite
USE lr_symm_base, ONLY : irotmq, minus_q, nsymq
USE control_flags, ONLY : iverbosity
USE fft_base, ONLY : dfftp, dffts
@ -78,22 +79,36 @@
WRITE(stdout, '(/5x, "scaling to achieve maximum speedup")')
WRITE(stdout, '(/5x, "---------------------------------------------------------------")')
ELSEIF ((nimage > 1) .AND. ((laniso) .OR. (plrn))) THEN
WRITE(stdout, '(/5x,"-------------------------------Error----------------------------")')
WRITE(stdout, '(/5x, "You have enabled image parallelization over q-grid ")')
WRITE(stdout, '(/5x, "Unfortunately, image parallelization does not work for ")')
WRITE(stdout, '(/5x, "anisotropic Eliashberg calculations and polaron calculation.")')
WRITE(stdout, '(/5x, "Restart the calculation with pool-parallelization only.")')
WRITE(stdout, '(/5x, "The calculation will stop now. "/)')
WRITE(stdout, '(/5x, "---------------------------------------------------------------")')
CALL stop_epw()
ENDIF
!
IF ((nimage > 1) .AND. (epwwrite)) THEN
WRITE(stdout, '(/5x,"-------------------------------Error----------------------------")')
WRITE(stdout, '(/5x, "You have enabled image parallelization over q-grid ")')
WRITE(stdout, '(/5x, "Unfortunately, image parallelization does not work for ")')
WRITE(stdout, '(/5x, "coarse grid calculations for Wannier representation.")')
WRITE(stdout, '(/5x, "Restart the calculation with pool-parallelization only.")')
WRITE(stdout, '(/5x, "The calculation will stop now. "/)')
WRITE(stdout, '(/5x, "---------------------------------------------------------------")')
CALL stop_epw()
ENDIF
IF ((nimage > 1) .AND. (ephwrite)) THEN
WRITE(stdout, '(/5x,"-------------------------------Error----------------------------")')
WRITE(stdout, '(/5x, "You have enabled image parallelization over q-grid ")')
WRITE(stdout, '(/5x, "Unfortunately, image parallelization does not work for ")')
WRITE(stdout, '(/5x, "ephwrite = .true..")')
WRITE(stdout, '(/5x, "Restart the calculation with pool-parallelization only.")')
WRITE(stdout, '(/5x, "The calculation will stop now. "/)')
WRITE(stdout, '(/5x, "---------------------------------------------------------------")')
CALL stop_epw()
ENDIF
!
WRITE(stdout, 100) title, ibrav, alat, omega, nat, ntyp, ecutwfc, ecutwfc * dual
100 FORMAT(/,5x,a75,/,/,5x, &

View File

@ -318,7 +318,7 @@
! lfast_kmesh is a special optimization level to deal with ultra dense fine homogeneous grids.
!
! Compute the Fermi energy as a function of temperature if required when using lfast_kmesh option
IF(lfast_kmesh) CALL fast_fermi(nrr_k, irvec_k, efcb)
IF (lfast_kmesh) CALL fast_fermi(nrr_k, irvec_k, efcb)
!
CALL load_mesh(nrr_k, irvec_k)
!

View File

@ -759,7 +759,7 @@
!! Coordinates of real space vector for electrons
REAL(KIND = DP), INTENT(inout) :: efcb(nstemp)
!! Second fermi level for the temperature itemp
!
! Local variables
INTEGER :: ik
!! Counter on coarse k-point grid
@ -788,7 +788,7 @@
CALL kpoints_time_reversal_init()
!
CALL loadkmesh_para()
!
nelec_aux = nelec
ALLOCATE(etf(nbndsub, nkqf), STAT = ierr)
IF (ierr /= 0) CALL errore('fast_fermi', 'Error allocating etf', 1)
@ -806,7 +806,7 @@
IF (ierr /= 0) CALL errore('fast_fermi', 'Error allocating fermi_energies_t',1)
ALLOCATE(partion(nstemp), STAT = ierr)
IF (ierr /= 0) CALL errore('fast_fermi', 'Error allocating partion', 1)
!
irvec_r = REAL(irvec_k, KIND = DP)
etf(:, :) = zero
cufkk(:, :) = czero
@ -814,7 +814,7 @@
rdotk(:) = zero
fermi_energies_t (:) = 0.d0
partion(:) = 1
!
xxq = 0.d0
!
! nkqf is the number of kpoints in the pool