1
0
2021-11-22 22:04:14 +00:00
committed by Git OBS Bridge
8 changed files with 100 additions and 579 deletions

View File

@@ -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>

View File

@@ -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
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5b2beab4cf3a863751a14eca8bfccc0cb4bf4bb36e7758ea57e8986064841240
size 5321512

View File

@@ -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
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f15cfa40332b6953cdc4c399847094f532185972b127e779c53adbb19040f43f
size 67865847

View 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) \

View File

@@ -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>

View File

@@ -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