forked from pool/quantum-espresso
Accepting request 932919 from science
OBS-URL: https://build.opensuse.org/request/show/932919 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/quantum-espresso?expand=0&rev=8
This commit is contained in:
@@ -3,5 +3,5 @@
|
|||||||
<package>openmpi1</package>
|
<package>openmpi1</package>
|
||||||
<package>openmpi2</package>
|
<package>openmpi2</package>
|
||||||
<package>openmpi3</package>
|
<package>openmpi3</package>
|
||||||
<package>mvapich2</package>
|
<package>openmpi4</package>
|
||||||
</multibuild>
|
</multibuild>
|
||||||
|
@@ -1,566 +0,0 @@
|
|||||||
diff --git a/FFTXlib/fft_types.f90 b/FFTXlib/fft_types.f90
|
|
||||||
index c0d56bf4e..8d66c2e8a 100644
|
|
||||||
--- a/FFTXlib/fft_types.f90
|
|
||||||
+++ b/FFTXlib/fft_types.f90
|
|
||||||
@@ -853,6 +853,7 @@ CONTAINS
|
|
||||||
SUBROUTINE realspace_grid_init( dfft, at, bg, gcutm, fft_fact )
|
|
||||||
!
|
|
||||||
! ... Sets optimal values for dfft%nr[123] and dfft%nr[123]x
|
|
||||||
+ ! ... If input dfft%nr[123] are non-zero, leaves them unchanged
|
|
||||||
! ... If fft_fact is present, force nr[123] to be multiple of fft_fac([123])
|
|
||||||
!
|
|
||||||
USE fft_support, only: good_fft_dimension, good_fft_order
|
|
||||||
@@ -876,28 +877,29 @@ CONTAINS
|
|
||||||
dfft%nr2 = int ( sqrt (gcutm) * sqrt (at(1, 2)**2 + at(2, 2)**2 + at(3, 2)**2) ) + 1
|
|
||||||
dfft%nr3 = int ( sqrt (gcutm) * sqrt (at(1, 3)**2 + at(2, 3)**2 + at(3, 3)**2) ) + 1
|
|
||||||
|
|
||||||
- !write (6,*) sqrt(gcutm)*sqrt(at(1,1)**2 + at(2,1)**2 + at(3,1)**2) , dfft%nr1
|
|
||||||
- !write (6,*) sqrt(gcutm)*sqrt(at(1,2)**2 + at(2,2)**2 + at(3,2)**2) , dfft%nr2
|
|
||||||
- !write (6,*) sqrt(gcutm)*sqrt(at(1,3)**2 + at(2,3)**2 + at(3,3)**2) , dfft%nr3
|
|
||||||
+#if defined (__DEBUG)
|
|
||||||
+ write (6,*) sqrt(gcutm)*sqrt(at(1,1)**2 + at(2,1)**2 + at(3,1)**2) , dfft%nr1
|
|
||||||
+ write (6,*) sqrt(gcutm)*sqrt(at(1,2)**2 + at(2,2)**2 + at(3,2)**2) , dfft%nr2
|
|
||||||
+ write (6,*) sqrt(gcutm)*sqrt(at(1,3)**2 + at(2,3)**2 + at(3,3)**2) , dfft%nr3
|
|
||||||
+#endif
|
|
||||||
!
|
|
||||||
CALL grid_set( dfft, bg, gcutm, dfft%nr1, dfft%nr2, dfft%nr3 )
|
|
||||||
!
|
|
||||||
+ IF ( PRESENT(fft_fact) ) THEN
|
|
||||||
+ dfft%nr1 = good_fft_order( dfft%nr1, fft_fact(1) )
|
|
||||||
+ dfft%nr2 = good_fft_order( dfft%nr2, fft_fact(2) )
|
|
||||||
+ dfft%nr3 = good_fft_order( dfft%nr3, fft_fact(3) )
|
|
||||||
+ ELSE
|
|
||||||
+ dfft%nr1 = good_fft_order( dfft%nr1 )
|
|
||||||
+ dfft%nr2 = good_fft_order( dfft%nr2 )
|
|
||||||
+ dfft%nr3 = good_fft_order( dfft%nr3 )
|
|
||||||
+ ENDIF
|
|
||||||
#if defined (__DEBUG)
|
|
||||||
ELSE
|
|
||||||
WRITE( stdout, '( /, 3X,"Info: using nr1, nr2, nr3 values from input" )' )
|
|
||||||
#endif
|
|
||||||
END IF
|
|
||||||
-
|
|
||||||
- IF (PRESENT(fft_fact)) THEN
|
|
||||||
- dfft%nr1 = good_fft_order( dfft%nr1, fft_fact(1) )
|
|
||||||
- dfft%nr2 = good_fft_order( dfft%nr2, fft_fact(2) )
|
|
||||||
- dfft%nr3 = good_fft_order( dfft%nr3, fft_fact(3) )
|
|
||||||
- ELSE
|
|
||||||
- dfft%nr1 = good_fft_order( dfft%nr1 )
|
|
||||||
- dfft%nr2 = good_fft_order( dfft%nr2 )
|
|
||||||
- dfft%nr3 = good_fft_order( dfft%nr3 )
|
|
||||||
- END IF
|
|
||||||
-
|
|
||||||
+ !
|
|
||||||
dfft%nr1x = good_fft_dimension( dfft%nr1 )
|
|
||||||
dfft%nr2x = dfft%nr2
|
|
||||||
dfft%nr3x = good_fft_dimension( dfft%nr3 )
|
|
||||||
diff --git a/PHonon/PH/bcast_ph_input.f90 b/PHonon/PH/bcast_ph_input.f90
|
|
||||||
index 6d8078c1b..4b454872a 100644
|
|
||||||
--- a/PHonon/PH/bcast_ph_input.f90
|
|
||||||
+++ b/PHonon/PH/bcast_ph_input.f90
|
|
||||||
@@ -42,6 +42,7 @@ subroutine bcast_ph_input ( )
|
|
||||||
USE YAMBO, ONLY : elph_yambo,dvscf_yambo
|
|
||||||
! YAMBO <
|
|
||||||
USE elph_tetra_mod, ONLY : lshift_q
|
|
||||||
+ USE ldaU_ph, ONLY : read_dns_bare, d2ns_type
|
|
||||||
|
|
||||||
implicit none
|
|
||||||
!
|
|
||||||
@@ -67,6 +68,7 @@ subroutine bcast_ph_input ( )
|
|
||||||
call mp_bcast (only_wfc, meta_ionode_id, world_comm )
|
|
||||||
call mp_bcast (only_init, meta_ionode_id, world_comm )
|
|
||||||
call mp_bcast (search_sym, meta_ionode_id, world_comm)
|
|
||||||
+ call mp_bcast (read_dns_bare, meta_ionode_id, world_comm)
|
|
||||||
! YAMBO >
|
|
||||||
call mp_bcast (elph_yambo, meta_ionode_id, world_comm)
|
|
||||||
call mp_bcast (dvscf_yambo, meta_ionode_id, world_comm)
|
|
||||||
@@ -119,6 +121,7 @@ subroutine bcast_ph_input ( )
|
|
||||||
call mp_bcast (tmp_dir, meta_ionode_id, world_comm )
|
|
||||||
call mp_bcast (prefix, meta_ionode_id, world_comm )
|
|
||||||
call mp_bcast (electron_phonon, meta_ionode_id, world_comm )
|
|
||||||
+ call mp_bcast (d2ns_type, meta_ionode_id, world_comm )
|
|
||||||
!
|
|
||||||
! derived type (one bit at a time)
|
|
||||||
!
|
|
||||||
diff --git a/PHonon/PH/dynmat_hub_bare.f90 b/PHonon/PH/dynmat_hub_bare.f90
|
|
||||||
index 0d57abcbc..22b932cb6 100644
|
|
||||||
--- a/PHonon/PH/dynmat_hub_bare.f90
|
|
||||||
+++ b/PHonon/PH/dynmat_hub_bare.f90
|
|
||||||
@@ -82,6 +82,8 @@ SUBROUTINE dynmat_hub_bare
|
|
||||||
!
|
|
||||||
CALL start_clock ( 'dynmat_hub_bare' )
|
|
||||||
!
|
|
||||||
+ ios = 0
|
|
||||||
+ !
|
|
||||||
ldim = 2*Hubbard_lmax + 1
|
|
||||||
!
|
|
||||||
ALLOCATE (dyn_hub_bare(3*nat,3*nat))
|
|
||||||
diff --git a/PHonon/PH/dynmat_hub_scf.f90 b/PHonon/PH/dynmat_hub_scf.f90
|
|
||||||
index 363327c2b..86c51f37c 100644
|
|
||||||
--- a/PHonon/PH/dynmat_hub_scf.f90
|
|
||||||
+++ b/PHonon/PH/dynmat_hub_scf.f90
|
|
||||||
@@ -118,7 +118,7 @@ SUBROUTINE dynmat_hub_scf (irr, nu_i0, nper)
|
|
||||||
! interrupted before the call of this routine)
|
|
||||||
!
|
|
||||||
IF (rec_code_read==10) THEN
|
|
||||||
- WRITE(stdout,*) 'rec_code_read', rec_code_read
|
|
||||||
+ !WRITE(stdout,*) 'rec_code_read', rec_code_read
|
|
||||||
CALL dnsq_scf (nper, lmetq0, nu_i0, irr, .true.)
|
|
||||||
ENDIF
|
|
||||||
!
|
|
||||||
diff --git a/PHonon/PH/phq_readin.f90 b/PHonon/PH/phq_readin.f90
|
|
||||||
index 57ed4dd3e..088044227 100644
|
|
||||||
--- a/PHonon/PH/phq_readin.f90
|
|
||||||
+++ b/PHonon/PH/phq_readin.f90
|
|
||||||
@@ -119,7 +119,7 @@ SUBROUTINE phq_readin()
|
|
||||||
elph_nbnd_min, elph_nbnd_max, el_ph_ngauss, &
|
|
||||||
el_ph_nsigma, el_ph_sigma, electron_phonon, &
|
|
||||||
q_in_band_form, q2d, qplot, low_directory_check, &
|
|
||||||
- lshift_q
|
|
||||||
+ lshift_q, read_dns_bare, d2ns_type
|
|
||||||
|
|
||||||
! tr2_ph : convergence threshold
|
|
||||||
! amass : atomic masses
|
|
||||||
diff --git a/PP/src/ppacf.f90 b/PP/src/ppacf.f90
|
|
||||||
index c7b5e9ef6..a55d6649f 100644
|
|
||||||
--- a/PP/src/ppacf.f90
|
|
||||||
+++ b/PP/src/ppacf.f90
|
|
||||||
@@ -58,6 +58,7 @@ PROGRAM do_ppacf
|
|
||||||
USE vdW_DF_scale, ONLY : xc_vdW_DF_ncc, xc_vdW_DF_spin_ncc, &
|
|
||||||
get_q0cc_on_grid, get_q0cc_on_grid_spin
|
|
||||||
USE vasp_xml, ONLY : readxmlfile_vasp
|
|
||||||
+ USE symm_base, ONLY : fft_fact
|
|
||||||
|
|
||||||
!
|
|
||||||
IMPLICIT NONE
|
|
||||||
@@ -217,9 +218,7 @@ PROGRAM do_ppacf
|
|
||||||
IF (code_num == 1) THEN
|
|
||||||
!
|
|
||||||
tmp_dir=TRIM(outdir)
|
|
||||||
-! CALL read_xml_file_internal(.TRUE.)
|
|
||||||
CALL read_file()
|
|
||||||
-
|
|
||||||
! Check exchange correlation functional
|
|
||||||
iexch = get_iexch()
|
|
||||||
icorr = get_icorr()
|
|
||||||
@@ -685,6 +684,7 @@ PROGRAM do_ppacf
|
|
||||||
DEALLOCATE ( igk_buf, gk )
|
|
||||||
!
|
|
||||||
! CALL setup()
|
|
||||||
+ fft_fact(:)=1
|
|
||||||
CALL exx_grid_init()
|
|
||||||
CALL exx_mp_init()
|
|
||||||
CALL exx_div_check()
|
|
||||||
diff --git a/PP/src/pw2wannier90.f90 b/PP/src/pw2wannier90.f90
|
|
||||||
index d9e2c870e..5d977a4f0 100644
|
|
||||||
--- a/PP/src/pw2wannier90.f90
|
|
||||||
+++ b/PP/src/pw2wannier90.f90
|
|
||||||
@@ -1162,7 +1162,7 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec)
|
|
||||||
!
|
|
||||||
! Uses nkqs and index_sym from module pw2wan, computes rir
|
|
||||||
!
|
|
||||||
- USE symm_base, ONLY : s, ftau, allfrac
|
|
||||||
+ USE symm_base, ONLY : s, ft, allfrac
|
|
||||||
USE fft_base, ONLY : dffts
|
|
||||||
USE cell_base, ONLY : at, bg
|
|
||||||
USE wannier, ONLY : rir, read_sym
|
|
||||||
@@ -1174,8 +1174,8 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec)
|
|
||||||
INTEGER , intent(in) :: nsym
|
|
||||||
REAL(DP) , intent(in) :: sr(3,3,nsym), tvec(3,nsym)
|
|
||||||
REAL(DP) :: st(3,3), v(3)
|
|
||||||
- INTEGER, allocatable :: s_in(:,:,:), ftau_in(:,:)
|
|
||||||
- !REAL(DP), allocatable:: ftau_in(:,:)
|
|
||||||
+ INTEGER, allocatable :: s_in(:,:,:)
|
|
||||||
+ REAL(DP), allocatable:: ft_in(:,:)
|
|
||||||
INTEGER :: nxxs, nr1,nr2,nr3, nr1x,nr2x,nr3x
|
|
||||||
INTEGER :: ikq, isym, i,j,k, ri,rj,rk, ir
|
|
||||||
LOGICAL :: ispresent(nsym)
|
|
||||||
@@ -1189,7 +1189,7 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec)
|
|
||||||
nxxs = nr1x*nr2x*nr3x
|
|
||||||
!
|
|
||||||
! sr -> s
|
|
||||||
- ALLOCATE(s_in(3,3,nsym), ftau_in(3,nsym))
|
|
||||||
+ ALLOCATE(s_in(3,3,nsym), ft_in(3,nsym))
|
|
||||||
IF(read_sym ) THEN
|
|
||||||
IF(allfrac) THEN
|
|
||||||
call errore("pw2wan_set_symm", "use_all_frac = .true. + read_sym = .true. not supported", 1)
|
|
||||||
@@ -1199,17 +1199,17 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec)
|
|
||||||
st = transpose( matmul(transpose(bg), transpose(sr(:,:,isym))) )
|
|
||||||
s_in(:,:,isym) = nint( matmul(transpose(at), st) )
|
|
||||||
v = matmul(transpose(bg), tvec(:,isym))
|
|
||||||
- ftau_in(1,isym) = nint(v(1)*nr1)
|
|
||||||
- ftau_in(2,isym) = nint(v(2)*nr2)
|
|
||||||
- ftau_in(3,isym) = nint(v(3)*nr3)
|
|
||||||
+ ft_in(1,isym) = v(1)
|
|
||||||
+ ft_in(2,isym) = v(2)
|
|
||||||
+ ft_in(3,isym) = v(3)
|
|
||||||
END DO
|
|
||||||
- IF( any(s(:,:,1:nsym) /= s_in(:,:,1:nsym)) .or. any(ftau_in(:,1:nsym) /= ftau(:,1:nsym)) ) THEN
|
|
||||||
+ IF( any(s(:,:,1:nsym) /= s_in(:,:,1:nsym)) .or. any(ft_in(:,1:nsym) /= ft(:,1:nsym)) ) THEN
|
|
||||||
write(stdout,*) " Input symmetry is different from crystal symmetry"
|
|
||||||
write(stdout,*)
|
|
||||||
END IF
|
|
||||||
ELSE
|
|
||||||
s_in = s(:,:,1:nsym)
|
|
||||||
- ftau_in = ftau(:,1:nsym)
|
|
||||||
+ ft_in = ft(:,1:nsym)
|
|
||||||
END IF
|
|
||||||
!
|
|
||||||
IF(.not. allocated(rir)) ALLOCATE(rir(nxxs,nsym))
|
|
||||||
@@ -1240,7 +1240,7 @@ SUBROUTINE pw2wan_set_symm (nsym, sr, tvec)
|
|
||||||
ENDDO
|
|
||||||
ENDDO
|
|
||||||
ENDDO
|
|
||||||
- DEALLOCATE(s_in, ftau_in)
|
|
||||||
+ DEALLOCATE(s_in, ft_in)
|
|
||||||
END SUBROUTINE pw2wan_set_symm
|
|
||||||
|
|
||||||
!-----------------------------------------------------------------------
|
|
||||||
@@ -4142,7 +4142,7 @@ SUBROUTINE write_parity
|
|
||||||
! 0-th Order
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! 1
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! 1
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
@@ -4150,21 +4150,21 @@ SUBROUTINE write_parity
|
|
||||||
! 1st Order
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! y
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! y
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! z
|
|
||||||
+ (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! z
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
@@ -4172,63 +4172,63 @@ SUBROUTINE write_parity
|
|
||||||
! 2nd Order
|
|
||||||
IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^2
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) + 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! xz
|
|
||||||
+ (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! xz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! xz
|
|
||||||
+ (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! xz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! y^2
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! y^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! yz
|
|
||||||
+ (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! yz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! yz
|
|
||||||
+ (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! yz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 2.d0 <= eps6) ) THEN ! z^2
|
|
||||||
+ (abs(g_abc(3,igv) - 2.d0) <= eps6) ) THEN ! z^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
@@ -4236,133 +4236,133 @@ SUBROUTINE write_parity
|
|
||||||
! 3rd Order
|
|
||||||
IF ( (abs(g_abc(1,igv) - 3.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^3
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^3
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^2y
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^2y
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) + 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! x^2y
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! x^2y
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! x^2z
|
|
||||||
+ (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! x^2z
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! x^2z
|
|
||||||
+ (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! x^2z
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy^2
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) + 2.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! xy^2
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! xy^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! xyz
|
|
||||||
+ (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! xyz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! xyz
|
|
||||||
+ (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! xyz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) + 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! xyz
|
|
||||||
+ (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! xyz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) + 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! xyz
|
|
||||||
+ (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! xyz
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 2.d0 <= eps6) ) THEN ! xz^2
|
|
||||||
+ (abs(g_abc(3,igv) - 2.d0) <= eps6) ) THEN ! xz^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 2.d0 <= eps6) ) THEN ! xz^2
|
|
||||||
+ (abs(g_abc(3,igv) + 2.d0) <= eps6) ) THEN ! xz^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 3.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 0.d0 <= eps6) ) THEN ! y^3
|
|
||||||
+ (abs(g_abc(3,igv) - 0.d0) <= eps6) ) THEN ! y^3
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 1.d0 <= eps6) ) THEN ! y^2z
|
|
||||||
+ (abs(g_abc(3,igv) - 1.d0) <= eps6) ) THEN ! y^2z
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 2.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 1.d0 <= eps6) ) THEN ! y^2z
|
|
||||||
+ (abs(g_abc(3,igv) + 1.d0) <= eps6) ) THEN ! y^2z
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 2.d0 <= eps6) ) THEN ! yz^2
|
|
||||||
+ (abs(g_abc(3,igv) - 2.d0) <= eps6) ) THEN ! yz^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and.&
|
|
||||||
(abs(g_abc(2,igv) - 1.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) + 2.d0 <= eps6) ) THEN ! yz^2
|
|
||||||
+ (abs(g_abc(3,igv) + 2.d0) <= eps6) ) THEN ! yz^2
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
ENDIF
|
|
||||||
IF ( (abs(g_abc(1,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
(abs(g_abc(2,igv) - 0.d0) <= eps6) .and. &
|
|
||||||
- (abs(g_abc(3,igv)) - 3.d0 <= eps6) ) THEN ! z^3
|
|
||||||
+ (abs(g_abc(3,igv) - 3.d0) <= eps6) ) THEN ! z^3
|
|
||||||
num_G(mpime+1) = num_G(mpime+1) + 1
|
|
||||||
ig_idx(num_G(mpime+1))=igv
|
|
||||||
CYCLE
|
|
||||||
diff --git a/PP/src/vasp_read_chgcar_mod.f90 b/PP/src/vasp_read_chgcar_mod.f90
|
|
||||||
index c5187e024..536f5344c 100644
|
|
||||||
--- a/PP/src/vasp_read_chgcar_mod.f90
|
|
||||||
+++ b/PP/src/vasp_read_chgcar_mod.f90
|
|
||||||
@@ -64,7 +64,6 @@ MODULE vasp_read_chgcar
|
|
||||||
INTEGER :: ngxf, ngyf, ngzf, nalloc
|
|
||||||
INTEGER :: ispin, iat, iz, ixy, nread
|
|
||||||
REAL(DP), ALLOCATABLE :: rho_r_(:,:), atomom(:)
|
|
||||||
- REAL(DP), ALLOCATABLE :: rho_r_up(:), rho_r_dn(:)
|
|
||||||
CHARACTER(LEN=80) :: errmsg
|
|
||||||
!
|
|
||||||
ierr = 0
|
|
||||||
@@ -102,15 +101,6 @@ MODULE vasp_read_chgcar
|
|
||||||
END DO
|
|
||||||
|
|
||||||
CLOSE(iunchg)
|
|
||||||
- IF(nspin==2) THEN
|
|
||||||
- ALLOCATE(rho_r_up(dfftp%nr1x*dfftp%nr2x*dfftp%nr3x))
|
|
||||||
- ALLOCATE(rho_r_dn(dfftp%nr1x*dfftp%nr2x*dfftp%nr3x))
|
|
||||||
- rho_r_up=0.5_DP*(rho_r_(:,1)+rho_r_(:,2))
|
|
||||||
- rho_r_dn=0.5_DP*(rho_r_(:,1)-rho_r_(:,2))
|
|
||||||
- rho_r_(:,1)=rho_r_up
|
|
||||||
- rho_r_(:,2)=rho_r_dn
|
|
||||||
- DEALLOCATE(rho_r_up, rho_r_dn)
|
|
||||||
- END IF
|
|
||||||
END IF
|
|
||||||
! CALL mp_bcast( atm, ionode_id, intra_image_comm )
|
|
||||||
DO ispin = 1, nspin
|
|
||||||
diff --git a/PW/src/setup.f90 b/PW/src/setup.f90
|
|
||||||
index 276588917..92543ddce 100644
|
|
||||||
--- a/PW/src/setup.f90
|
|
||||||
+++ b/PW/src/setup.f90
|
|
||||||
@@ -137,7 +137,7 @@ SUBROUTINE setup()
|
|
||||||
IF (ecutfock /= 4*ecutwfc) CALL infomsg &
|
|
||||||
('setup','Warning: US/PAW use ecutfock=4*ecutwfc, ecutfock ignored')
|
|
||||||
IF ( lmd .OR. lbfgs ) CALL errore &
|
|
||||||
- ('setup','forces for hybrid functionals + US/PAW not implemented')
|
|
||||||
+ ('setup','forces for hybrid functionals + US/PAW not implemented',1)
|
|
||||||
IF ( noncolin ) CALL errore &
|
|
||||||
('setup','Noncolinear hybrid XC for USPP not implemented',1)
|
|
||||||
END IF
|
|
||||||
@@ -519,7 +519,11 @@ SUBROUTINE setup()
|
|
||||||
!
|
|
||||||
! ... nosym: do not use any point-group symmetry (s(:,:,1) is the identity)
|
|
||||||
!
|
|
||||||
- IF ( nosym ) nsym = 1
|
|
||||||
+ IF ( nosym ) THEN
|
|
||||||
+ nsym = 1
|
|
||||||
+ invsym = .FALSE.
|
|
||||||
+ fft_fact(:) = 1
|
|
||||||
+ END IF
|
|
||||||
!
|
|
||||||
IF ( nsym > 1 .AND. ibrav == 0 ) CALL infomsg('setup', &
|
|
||||||
'DEPRECATED: symmetry with ibrav=0, use correct ibrav instead')
|
|
||||||
diff --git a/PW/src/symm_base.f90 b/PW/src/symm_base.f90
|
|
||||||
index 9d6cabf5c..4106be76a 100644
|
|
||||||
--- a/PW/src/symm_base.f90
|
|
||||||
+++ b/PW/src/symm_base.f90
|
|
||||||
@@ -515,11 +515,14 @@ SUBROUTINE sgam_at ( nat, tau, ityp, sym, no_z_inv)
|
|
||||||
!
|
|
||||||
! ft_ is in crystal axis and is a valid fractional translation
|
|
||||||
! only if ft_(i)=0 or ft_(i)=1/n, with n=2,3,4,6
|
|
||||||
- ! The check below is less strict: n must be integer
|
|
||||||
!
|
|
||||||
DO i=1,3
|
|
||||||
IF ( ABS (ft_(i)) > eps2 ) THEN
|
|
||||||
- ftaux(i) = ABS (1.0_dp/ft_(i) - NINT(1.0_dp/ft_(i)) )
|
|
||||||
+ ftaux(i) = ABS (1.0_dp/ft_(i) - NINT(1.0_dp/ft_(i)) )
|
|
||||||
+ nfrac = NINT(1.0_dp/ABS(ft_(i)))
|
|
||||||
+ IF ( ftaux(i) < eps2 .AND. nfrac /= 2 .AND. &
|
|
||||||
+ nfrac /= 3 .AND. nfrac /= 4 .AND. nfrac /= 6 ) &
|
|
||||||
+ ftaux(i) = 2*eps2
|
|
||||||
ELSE
|
|
||||||
ftaux(i) = 0.0_dp
|
|
||||||
END IF
|
|
||||||
diff --git a/PW/src/v_of_rho.f90 b/PW/src/v_of_rho.f90
|
|
||||||
index 7782924f1..295da64fe 100644
|
|
||||||
--- a/PW/src/v_of_rho.f90
|
|
||||||
+++ b/PW/src/v_of_rho.f90
|
|
||||||
@@ -221,7 +221,7 @@ SUBROUTINE v_xc_meta( rho, rho_core, rhog_core, etxc, vtxc, v, kedtaur )
|
|
||||||
! spin-polarised case
|
|
||||||
!
|
|
||||||
rhoup = ( rho%of_r(k, 1) + rho%of_r(k, 2) )*0.5d0
|
|
||||||
- rhodw = ( rho%of_r(k, 2) - rho%of_r(k, 2) )*0.5d0
|
|
||||||
+ rhodw = ( rho%of_r(k, 1) - rho%of_r(k, 2) )*0.5d0
|
|
||||||
|
|
||||||
rh = rhoup + rhodw
|
|
||||||
|
|
3
devicexlib-0.1.0.tar.gz
Normal file
3
devicexlib-0.1.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5b2beab4cf3a863751a14eca8bfccc0cb4bf4bb36e7758ea57e8986064841240
|
||||||
|
size 5321512
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:45cbf53aeace68d2f625a7014f56f055789cfca6620687a6d464f4684fe0c4a5
|
|
||||||
size 77778235
|
|
3
q-e-qe-6.8.tar.bz2
Normal file
3
q-e-qe-6.8.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f15cfa40332b6953cdc4c399847094f532185972b127e779c53adbb19040f43f
|
||||||
|
size 67865847
|
20
quantum-espresso-devxlib-no-download.patch
Normal file
20
quantum-espresso-devxlib-no-download.patch
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Index: q-e-qe-6.8/install/extlibs_makefile
|
||||||
|
===================================================================
|
||||||
|
--- q-e-qe-6.8.orig/install/extlibs_makefile
|
||||||
|
+++ q-e-qe-6.8/install/extlibs_makefile
|
||||||
|
@@ -93,14 +93,13 @@ CUDA_PATH := $(if $(GPU_ARCH),$(CUDA_PAT
|
||||||
|
libcuda_devxlib :
|
||||||
|
cd ../external/devxlib; \
|
||||||
|
if test ! -e configure; then \
|
||||||
|
- wget $(DEVXLIB_URL) -O devxlib.tar.gz || curl $(DEVXLIB_URL) -o devxlib.tar.gz ; \
|
||||||
|
tar xzf devxlib.tar.gz --strip-components=1 -C . ; \
|
||||||
|
rm devxlib.tar.gz ; \
|
||||||
|
fi; \
|
||||||
|
touch make.inc; \
|
||||||
|
$(MAKE) clean; \
|
||||||
|
export F90FLAGS="$(FOX_FLAGS)"; \
|
||||||
|
- ./configure FC=$(F90) CC=$(CC) \
|
||||||
|
+ ./configure FC=$(FC) CC=$(CC) \
|
||||||
|
--with-cuda=$(CUDA_PATH) \
|
||||||
|
--with-cuda-cc=$(GPU_ARCH) \
|
||||||
|
--with-cuda-runtime=$(CUDA_RUNTIME) \
|
@@ -1,3 +1,32 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Nov 21 13:31:34 UTC 2021 - Atri Bhattacharya <badshah400@gmail.com>
|
||||||
|
|
||||||
|
- Update to version 6.8:
|
||||||
|
* See release notes here:
|
||||||
|
<https://gitlab.com/QEF/q-e/-/tags/qe-6.8>.
|
||||||
|
- Drop backports-6.4.1.git-diff: incorporated upstream.
|
||||||
|
- Add quantum-espresso-devxlib-no-download.patch: Patch to avoid
|
||||||
|
downloading devxlib from the web; we supply it as an additional
|
||||||
|
source instead.
|
||||||
|
- Add devxlib as an additional source and copy it to dir where
|
||||||
|
quantum-espresso build expects.
|
||||||
|
- Add openmpi4 as multibuild flavor.
|
||||||
|
- Drop mvapich2 multibuild flavor, not well supported and builds
|
||||||
|
fail.
|
||||||
|
- Hack-ish work-arounds to prevent build failures all around
|
||||||
|
(locally checked that tests work; but they need further
|
||||||
|
downloads and hacks, and is best avoided within the build system
|
||||||
|
itself):
|
||||||
|
* Turn off errors on return-type warnings in %optflags.
|
||||||
|
* Allow compilation to proceed despite minor rank mis-matches by
|
||||||
|
passing -fallow-argument-mismatch as an additional flag to
|
||||||
|
fortran compiler (for GCC >= 10 only).
|
||||||
|
* Explicitly pass blas, lapack, and fftw3 library flags to
|
||||||
|
configure; otherwise the build tried to build each of these
|
||||||
|
internally; for fftw3 use parallel or serial library depending
|
||||||
|
on mulbuild flavor.
|
||||||
|
- Link against scalapack for parallel build flavors.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Feb 10 00:17:26 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
Mon Feb 10 00:17:26 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package quantum-espresso
|
# spec file
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020 SUSE LLC
|
# Copyright (c) 2021 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -58,6 +58,12 @@ ExclusiveArch: x86_64
|
|||||||
%{?DisOMPI3}
|
%{?DisOMPI3}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if "%{flavor}" == "openmpi4"
|
||||||
|
%global mpi_flavor openmpi
|
||||||
|
%define mpi_vers 4
|
||||||
|
%{?DisOMPI4}
|
||||||
|
%endif
|
||||||
|
|
||||||
%{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}}
|
%{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}}
|
||||||
%{?with_mpi:%{!?mpi_flavor:error "No MPI family specified!"}}
|
%{?with_mpi:%{!?mpi_flavor:error "No MPI family specified!"}}
|
||||||
|
|
||||||
@@ -76,6 +82,7 @@ ExclusiveArch: x86_64
|
|||||||
%else
|
%else
|
||||||
%define my_prefix %{_libdir}/mpi/gcc/%{mpi_flavor}%{?mpi_ext}
|
%define my_prefix %{_libdir}/mpi/gcc/%{mpi_flavor}%{?mpi_ext}
|
||||||
%define my_bindir %{my_prefix}/bin
|
%define my_bindir %{my_prefix}/bin
|
||||||
|
%define my_libdir %{my_prefix}/%{_lib}
|
||||||
%define my_suffix -%{mpi_flavor}%{?mpi_ext}
|
%define my_suffix -%{mpi_flavor}%{?mpi_ext}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@@ -83,23 +90,35 @@ ExclusiveArch: x86_64
|
|||||||
%define package_name %pname%{?my_suffix}
|
%define package_name %pname%{?my_suffix}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%global devlibx_version 0.1.0
|
||||||
|
# Unimportant rank mismatch issues that otherwise cause builds to fail for GCC >= 10
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
%global extra_gfortran_flags -fallow-argument-mismatch
|
||||||
|
%else
|
||||||
|
%global extra_gfortran_flags %{nil}
|
||||||
|
%endif
|
||||||
|
# We need to turn off "-Werror=return-type" in optflags to avoid build failures
|
||||||
|
%global optflags %(echo "%{optflags}" | sed "s/ -Werror=return-type//")
|
||||||
Name: %{package_name}
|
Name: %{package_name}
|
||||||
Version: 6.4.1
|
Version: 6.8
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A suite for electronic-structure calculations and materials modeling
|
Summary: A suite for electronic-structure calculations and materials modeling
|
||||||
License: GPL-2.0-only
|
License: GPL-2.0-only
|
||||||
Group: Productivity/Scientific/Physics
|
Group: Productivity/Scientific/Physics
|
||||||
URL: http://www.quantum-espresso.org
|
URL: http://www.quantum-espresso.org
|
||||||
Source0: https://gitlab.com/QEF/q-e/-/archive/qe-%{version}/q-e-qe-%{version}.tar.bz2
|
Source0: https://gitlab.com/QEF/q-e/-/archive/qe-%{version}/q-e-qe-%{version}.tar.bz2
|
||||||
# PATCH-FIX-UPSTREAM backports-6.4.1.git-diff badshah400@gmail.com -- Backported fixes for version 6.4.1 from upstream
|
Source1: https://gitlab.com/max-centre/components/devicexlib/-/archive/%{devlibx_version}/devicexlib-%{devlibx_version}.tar.gz
|
||||||
Patch0: https://gitlab.com/QEF/q-e/wikis/uploads/3e4b6d3844989c02d0ebb03a935e1976/backports-6.4.1.git-diff
|
# PATCH-FEATURE-OPENSUSE quantum-espresso-devxlib-no-download.patch badshah400@gmail.com -- Do not try to download devxlib, use SOURCE1 instead.
|
||||||
|
Patch1: quantum-espresso-devxlib-no-download.patch
|
||||||
|
BuildRequires: blas-devel
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-fortran
|
BuildRequires: gcc-fortran
|
||||||
BuildRequires: lapack-devel
|
BuildRequires: lapack-devel
|
||||||
%if %{with mpi}
|
%if %{with mpi}
|
||||||
BuildRequires: %{mpi_flavor}%{?mpi_ext}-devel
|
BuildRequires: %{mpi_flavor}%{?mpi_ext}-devel
|
||||||
BuildRequires: fftw3-mpi-devel
|
BuildRequires: fftw3-mpi-devel
|
||||||
%if 0%{?suse_version} >= 1550 && %{mpi_flavor} == "openmpi"
|
BuildRequires: libscalapack2-%{mpi_flavor}%{?mpi_ext}-devel
|
||||||
|
%if 0%{?suse_version} >= 1550 && "%{mpi_flavor}" == "openmpi"
|
||||||
# hackish workaround for multiple openmpiX-config all providing openmpi-runtime-config
|
# hackish workaround for multiple openmpiX-config all providing openmpi-runtime-config
|
||||||
BuildRequires: %{mpi_flavor}%{?mpi_ext}-config
|
BuildRequires: %{mpi_flavor}%{?mpi_ext}-config
|
||||||
%endif
|
%endif
|
||||||
@@ -129,18 +148,36 @@ It is based on density-functional theory, plane waves, and pseudopotentials.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n q-e-qe-%{version}
|
%autosetup -p1 -n q-e-qe-%{version}
|
||||||
|
cp %{SOURCE1} ./external/devxlib/devxlib.tar.gz
|
||||||
|
# Need to pass -D__FFTW, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=980677
|
||||||
|
# Error: Symbol 'cft_2xy' at (1) has no IMPLICIT type
|
||||||
|
sed -i 's|MANUAL_DFLAGS =|MANUAL_DFLAGS = -D__FFTW %{extra_gfortran_flags}|' install/make.inc.in
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# Note: optflags should not be passed to fortran flags as they cause build failures
|
||||||
%if %{with mpi}
|
%if %{with mpi}
|
||||||
export CC="%{my_bindir}/mpicc"
|
export CC="%{my_bindir}/mpicc"
|
||||||
|
export CFLAGS='%{extra_gfortran_flags} %{optflags}'
|
||||||
export FC="%{my_bindir}/mpif90"
|
export FC="%{my_bindir}/mpif90"
|
||||||
|
export FCFLAGS='%{extra_gfortran_flags}'
|
||||||
|
export FFLAGS='%{extra_gfortran_flags}'
|
||||||
|
export BLAS_LIBS="-L%{_libdir} -lblas"
|
||||||
|
export LAPACK_LIBS="-L%{_libdir} -llapack"
|
||||||
|
export FFT_LIBS="-L%{_libdir} -lfftw3_mpi"
|
||||||
|
export SCALAPACK_LIBS="-L%{my_libdir} -lscalapack"
|
||||||
%configure --enable-parallel
|
%configure --enable-parallel
|
||||||
%else
|
%else
|
||||||
export CC=gcc
|
export CC=gcc
|
||||||
|
export CFLAGS='%{extra_gfortran_flags} %{optflags}'
|
||||||
export FC=gfortran
|
export FC=gfortran
|
||||||
|
export FCFLAGS='%{extra_gfortran_flags}'
|
||||||
|
export FFLAGS='%{extra_gfortran_flags}'
|
||||||
|
export BLAS_LIBS="-L%{_libdir} -lblas"
|
||||||
|
export LAPACK_LIBS="-L%{_libdir} -llapack"
|
||||||
|
export FFT_LIBS="-lfftw3"
|
||||||
%configure --disable-parallel
|
%configure --disable-parallel
|
||||||
%endif
|
%endif
|
||||||
make %{?_smp_mflags} all
|
%make_build all
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p %{buildroot}%{my_bindir}
|
mkdir -p %{buildroot}%{my_bindir}
|
||||||
@@ -153,14 +190,12 @@ popd
|
|||||||
%fdupes -s Doc/
|
%fdupes -s Doc/
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
|
||||||
%doc README.md
|
%doc README.md
|
||||||
%license License
|
%license License
|
||||||
%{my_bindir}/*.x
|
%{my_bindir}/*.x
|
||||||
|
|
||||||
%if %{without mpi}
|
%if %{without mpi}
|
||||||
%files doc
|
%files doc
|
||||||
%defattr(-,root,root)
|
|
||||||
%doc Doc/*
|
%doc Doc/*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user