Commit 215a70b0 authored by giannozz's avatar giannozz

Variable "ftau" (fractional translations in FFT grid units) is a source

of dangerous confusion: the "true" fractional translations, in crystal
axis units, are in "ft". First batch of removals, notably from smallg_q
(where it was not used) and from code calling it. More will come soon.
Updated release checklist, fixed typo in README.md
parent e50ca5a0
......@@ -37,7 +37,7 @@
USE io_epw, ONLY : iuepb, iuqpeig
USE pwcom, ONLY : et, xk, nks, nbnd, nkstot
USE cell_base, ONLY : at, bg
USE symm_base, ONLY : irt, s, nsym, ftau, sname, invs, s_axis_to_cart, &
USE symm_base, ONLY : irt, s, nsym, ft, sname, invs, s_axis_to_cart, &
sr, nrot, copy_sym, set_sym_bl, find_sym, &
inverse_s, remove_sym, allfrac
USE start_k, ONLY : nk1, nk2, nk3
......@@ -398,7 +398,7 @@
minus_q = .true.
sym = .false.
sym(1:nsym) = .true.
CALL smallg_q(xq, 0, at, bg, nsym, s, ftau, sym, minus_q) ! s is intent(in)
CALL smallg_q(xq, 0, at, bg, nsym, s, sym, minus_q) ! s is intent(in)
!
! SP: Notice that the function copy_sym reshuffles the s matrix for each irr_q.
! This is why we then need to call gmap_sym for each irr_q [see below].
......@@ -429,7 +429,7 @@
! reshuffles the s matrix for each irr_q [putting the sym of the small group of q first].
!
! [I checked that gmapsym(gmapsym(ig,isym),invs(isym)) = ig]
CALL gmap_sym(nsym, s, ftau, gmapsym, eigv, invs)
CALL gmap_sym(nsym, s, ft, gmapsym, eigv, invs)
!
! Re-set the variables needed for the pattern representation
! and the symmetries of the small group of irr-q
......@@ -485,20 +485,17 @@
CALL s_axis_to_cart() ! give sr(:,:, isym)
DO isym = 1, nsym
WRITE( stdout, '(/6x,"isym = ",i2,5x,a45/)') isym, sname(isym)
IF (ftau(1,isym).ne.0 .OR. ftau(2,isym).ne.0 .OR. ftau(3,isym).ne.0) THEN
ft1 = at(1,1)*ftau(1,isym)/dfftp%nr1 + at(1,2)*ftau(2,isym)/dfftp%nr2 + &
at(1,3)*ftau(3,isym)/dfftp%nr3
ft2 = at(2,1)*ftau(1,isym)/dfftp%nr1 + at(2,2)*ftau(2,isym)/dfftp%nr2 + &
at(2,3)*ftau(3,isym)/dfftp%nr3
ft3 = at(3,1)*ftau(1,isym)/dfftp%nr1 + at(3,2)*ftau(2,isym)/dfftp%nr2 + &
at(3,3)*ftau(3,isym)/dfftp%nr3
IF ( ft(1,isym)**2 + ft(2,isym)**2 + ft(3,isym)**2 > 1.0d-8 ) THEN
ft1 = at(1,1)*ft(1,isym) + at(1,2)*ft(2,isym) + at(1,3)*ft(3,isym)
ft2 = at(2,1)*ft(1,isym) + at(2,2)*ft(2,isym) + at(2,3)*ft(3,isym)
ft3 = at(3,1)*ft(1,isym) + at(3,2)*ft(2,isym) + at(3,3)*ft(3,isym)
WRITE(stdout, '(1x,"cryst.",3x,"s(",i2,") = (",3(i6,5x), &
& " ) f =( ",f10.7," )")') &
isym, (s(1,ipol,isym),ipol=1,3), dble(ftau(1,isym))/dble(dfftp%nr1)
isym, (s(1,ipol,isym),ipol=1,3), ft(1,isym)
WRITE(stdout, '(17x," (",3(i6,5x), " ) ( ",f10.7," )")') &
(s(2,ipol,isym),ipol=1,3), dble(ftau(2,isym))/dble(dfftp%nr2)
(s(2,ipol,isym),ipol=1,3), ft(2,isym)
WRITE(stdout, '(17x," (",3(i6,5x), " ) ( ",f10.7," )"/)') &
(s(3,ipol,isym),ipol=1,3), dble(ftau(3,isym))/dble(dfftp%nr3)
(s(3,ipol,isym),ipol=1,3), ft(3,isym)
WRITE(stdout, '(1x,"cart. ",3x,"s(",i2,") = (",3f11.7, &
& " ) f =( ",f10.7," )")') &
isym, (sr(1,ipol,isym),ipol=1,3), ft1
......@@ -563,7 +560,7 @@
!
! check whether the symmetry belongs to a symmorphic group
!
symmo = (ftau(1,isym).eq.0 .AND. ftau(2,isym).eq.0 .AND. ftau(3,isym).eq.0)
symmo = ( ft(1,isym)**2 + ft(2,isym)**2 + ft(3,isym)**2 > 1.0d-8 )
!
WRITE(stdout,'(3i5,L3,L3)') iq, i, isym, nog, symmo
!
......
......@@ -26,7 +26,7 @@
USE gvect, ONLY : gcutm, ngm
USE gvecs, ONLY : dual, doublegrid, gcutms, ngms
USE gvecw, ONLY : ecutwfc
USE symm_base, ONLY : s, sname, ftau, s_axis_to_cart, sr, t_rev
USE symm_base, ONLY : s, sname, ft, s_axis_to_cart, sr, t_rev
USE noncollin_module, ONLY : noncolin
USE spin_orb, ONLY : lspinorb, domag
USE funct, ONLY : write_dft_name
......@@ -151,25 +151,19 @@
IF (noncolin.and.domag) &
WRITE(stdout,'(1x, "Time Reversal",i3)') t_rev(isym)
!
IF (ftau(1,isym).ne.0 .OR. ftau(2,isym).ne.0 .OR. ftau(3,isym).ne.0) THEN
ft1 = at(1,1) * ftau(1,isym) / dfftp%nr1 &
+ at(1,2) * ftau(2,isym) / dfftp%nr2 &
+ at(1,3) * ftau(3,isym) / dfftp%nr3
ft2 = at(2,1) * ftau(1,isym) / dfftp%nr1 &
+ at(2,2) * ftau(2,isym) / dfftp%nr2 &
+ at(2,3) * ftau(3,isym) / dfftp%nr3
ft3 = at(3,1) * ftau(1,isym) / dfftp%nr1 &
+ at(3,2) * ftau(2,isym) / dfftp%nr2 &
+ at(3,3) * ftau(3,isym) / dfftp%nr3
IF ( ft(1,isym)**2 + ft(2,isym)**2 + ft(3,isym)**2 > 1.0d-8 ) THEN
ft1 = at(1,1)*ft(1,isym) + at(1,2)*ft(2,isym) + at(1,3)*ft(3,isym)
ft2 = at(2,1)*ft(1,isym) + at(2,2)*ft(2,isym) + at(2,3)*ft(3,isym)
ft3 = at(3,1)*ft(1,isym) + at(3,2)*ft(2,isym) + at(3,3)*ft(3,isym)
WRITE(stdout, '(1x,"cryst.",3x,"s(",i2,") = (",3i6, &
& " ) f =( ",f10.7," )")') isymq, &
& (s(1,ipol,isym), ipol = 1, 3), DBLE(ftau(1,isym))/DBLE(dfftp%nr1)
& (s(1,ipol,isym), ipol = 1, 3), ft(1,isym)
WRITE(stdout, '(17x," (",3(i6,5x), &
& " ) ( ",f10.7," )")') &
& (s(2,ipol,isym), ipol = 1, 3), DBLE(ftau(2,isym))/DBLE(dfftp%nr2)
& (s(2,ipol,isym), ipol = 1, 3), ft(2,isym)
WRITE(stdout, '(17x," (",3(i6,5x), &
& " ) ( ",f10.7," )"/)') &
& (s(3,ipol,isym), ipol = 1, 3), DBLE(ftau(3,isym))/DBLE(dfftp%nr3)
& (s(3,ipol,isym), ipol = 1, 3), ft(3,isym)
WRITE(stdout, '(1x,"cart.",3x,"s(",i2,") = (",3f11.7, &
& " ) f =( ",f10.7," )")') isymq, &
& (sr(1,ipol,isym), ipol = 1, 3), ft1
......
......@@ -7,7 +7,7 @@
! present distribution, or http://www.gnu.org/copyleft.gpl.txt .
!
!-----------------------------------------------------------------------
SUBROUTINE gmap_sym( nsym, s, ftau, gmapsym, eigv, invs )
SUBROUTINE gmap_sym( nsym, s, ft, gmapsym, eigv, invs )
!-----------------------------------------------------------------------
!!
!! For every G vector, find S(G) for all the symmetry operations
......@@ -23,7 +23,6 @@
!----------------------------------------------------------------------
USE kinds, ONLY : DP
USE constants_epw, ONLY : twopi, ci, cone
USE fft_base, ONLY : dfftp
USE gvect, ONLY : mill, ngm
!
IMPLICIT NONE
......@@ -32,8 +31,8 @@
!! the number of symmetries of the crystal
INTEGER, INTENT(in) :: s(3,3,48)
!! the symmetry matrices
INTEGER, INTENT(in) :: ftau(3,48)
!! the fractional traslations
REAL(dp), INTENT(in) :: ft(3,48)
!! the fractional traslations in crystal axis
INTEGER, INTENT(in) :: invs(48)
!! inverse symmetry matrix
INTEGER, INTENT(out) :: gmapsym(ngm,48)
......@@ -99,14 +98,11 @@
!
! now the phase factors e^{iGv}
!
IF ( ftau(1,isym) .ne. 0 .OR. ftau(2,isym) .ne. 0 .OR. ftau(3,isym) .ne. 0 ) THEN
IF ( ft(1,isym)**2 + ft(2,isym)**2 + ft(3,isym)**2 > 1.0d-8 ) THEN
!
! fractional traslation in crystal coord is ftau/nr*
! for cart/crys transform of the G-vecctors have a look at the bottom
!
rdotk = dble( mill(1,ig) * ftau(1,isym) ) / dble(dfftp%nr1) &
+ dble( mill(2,ig) * ftau(2,isym) ) / dble(dfftp%nr2) &
+ dble( mill(3,ig) * ftau(3,isym) ) / dble(dfftp%nr3)
rdotk = dble( mill(1,ig) ) * ft(1,isym) &
+ dble( mill(2,ig) ) * ft(2,isym) &
+ dble( mill(3,ig) ) * ft(3,isym)
!
! the actual translation is -v (have a look at ruota_ijk.f90)
!
......
......@@ -18,7 +18,7 @@ SUBROUTINE set_small_group_of_q(nsymq, invsymq, minus_q)
USE kinds, ONLY : DP
USE cell_base, ONLY : at, bg
USE ions_base, ONLY : nat, tau
USE symm_base, ONLY : s, nsym, ftau, irt, time_reversal
USE symm_base, ONLY : s, nsym, irt, time_reversal
USE control_flags, ONLY : modenum
USE qpoint, ONLY : xq
USE symm_base, ONLY : copy_sym, d1, d2, d3, inverse_s, s_axis_to_cart
......@@ -35,7 +35,7 @@ SUBROUTINE set_small_group_of_q(nsymq, invsymq, minus_q)
!
sym(1:nsym)=.true.
!
CALL smallg_q (xq, modenum, at, bg, nsym, s, ftau, sym, minus_q)
CALL smallg_q (xq, modenum, at, bg, nsym, s, sym, minus_q)
!
IF ( .not. time_reversal ) minus_q = .false.
!
......@@ -72,7 +72,7 @@ SUBROUTINE set_small_group_of_q(nsymq, invsymq, minus_q)
END SUBROUTINE set_small_group_of_q
!
!-----------------------------------------------------------------------
SUBROUTINE smallg_q (xq, modenum, at, bg, nrot, s, ftau, sym, minus_q)
SUBROUTINE smallg_q (xq, modenum, at, bg, nrot, s, sym, minus_q)
!-----------------------------------------------------------------------
!
! This routine selects, among the symmetry matrices of the point group
......@@ -93,11 +93,9 @@ SUBROUTINE smallg_q (xq, modenum, at, bg, nrot, s, ftau, sym, minus_q)
! input: the direct lattice vectors
! input: the q point of the crystal
integer, intent(in) :: s (3, 3, 48), nrot, ftau (3, 48), modenum
integer, intent(in) :: s (3, 3, 48), nrot, modenum
! input: the symmetry matrices
! input: number of symmetry operations
! input: fft grid dimension (units for ftau)
! input: fractionary translation of each symmetr
! input: main switch of the program, used for
! q<>0 to restrict the small group of q
! to operation such that Sq=q (exactly,
......
......@@ -163,7 +163,7 @@ SUBROUTINE elphsum_wannier(q_index)
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ityp, tau,amass,tau, ntyp => nsp, atm
USE cell_base, ONLY : at, bg, ibrav, celldm
USE symm_base, ONLY : s, sr, irt, nsym, time_reversal, invs, ftau, copy_sym, inverse_s
USE symm_base, ONLY : s, sr, irt, nsym, time_reversal, invs, copy_sym, inverse_s
USE klist, ONLY : xk, nelec
USE wvfct, ONLY : nbnd, et
USE el_phon
......@@ -264,7 +264,7 @@ SUBROUTINE elphsum_wannier(q_index)
sym = .false.
sym(1:nsym) = .true.
call smallg_q (xq, 0, at, bg, nsym, s, ftau, sym, minus_qloc)
call smallg_q (xq, 0, at, bg, nsym, s, sym, minus_qloc)
nsymq = copy_sym(nsym, sym)
! recompute the inverses as the order of sym.ops. has changed
CALL inverse_s ( )
......
......@@ -19,7 +19,7 @@ subroutine init_representations()
USE ions_base, ONLY : tau, nat
USE cell_base, ONLY : at, bg
USE io_global, ONLY : stdout
USE symm_base, ONLY : nsym, sr, ftau, irt, time_reversal, t_rev, s
USE symm_base, ONLY : nsym, sr, irt, time_reversal, t_rev, s
USE control_ph, ONLY : search_sym, current_iq, u_from_file, &
search_sym_save
USE modes, ONLY : u, npert, nirr, nmodes, name_rap_mode, &
......
......@@ -2553,7 +2553,7 @@ SUBROUTINE find_representations_mode_q ( nat, ntyp, xq, w2, u, tau, ityp, &
IF (.NOT.time_reversal) minus_q=.FALSE.
sym(1:nsym)=.true.
call smallg_q (xq, 0, at, bg, nsym, s, ftau, sym, minus_q)
call smallg_q (xq, 0, at, bg, nsym, s, sym, minus_q)
nsymq=copy_sym(nsym,sym )
call s_axis_to_cart ()
CALL set_giq (xq,s,nsymq,nsym,irotmq,minus_q,gi,gimq)
......
......@@ -60,7 +60,7 @@ subroutine phq_setup
USE fft_base, ONLY : dfftp
USE gvect, ONLY : ngm
USE gvecs, ONLY : doublegrid
USE symm_base, ONLY : nrot, nsym, s, ftau, irt, t_rev, time_reversal, &
USE symm_base, ONLY : nrot, nsym, s, irt, t_rev, time_reversal, &
sr, invs, inverse_s, d1, d2, d3
USE uspp_param, ONLY : upf
USE uspp, ONLY : nlcc_any
......
......@@ -29,7 +29,7 @@ PROGRAM Q2QSTAR
USE io_global, ONLY : ionode_id, ionode, stdout
USE environment, ONLY : environment_start, environment_end
! symmetry
USE symm_base, ONLY : s, invs, nsym, find_sym, set_sym_bl, irt, ftau, copy_sym, nrot, inverse_s
USE symm_base, ONLY : s, invs, nsym, find_sym, set_sym_bl, irt, copy_sym, nrot, inverse_s
! for reading the dyn.mat.
USE cell_base, ONLY : at, bg, celldm, ibrav, omega
USE ions_base, ONLY : nat, ityp, ntyp => nsp, atm, tau, amass
......@@ -157,7 +157,7 @@ PROGRAM Q2QSTAR
minus_q = .true.
sym = .false.
sym(1:nsym) = .true.
CALL smallg_q(xq, 0, at, bg, nsym, s, ftau, sym, minus_q)
CALL smallg_q(xq, 0, at, bg, nsym, s, sym, minus_q)
nsymq = copy_sym(nsym, sym)
! recompute the inverses as the order of sym.ops. has changed
CALL inverse_s ( )
......
......@@ -25,7 +25,7 @@ subroutine set_irr_new (xq, u, npert, nirr, eigen)
USE kinds, only : DP
USE ions_base, ONLY : nat, tau, ntyp => nsp, ityp, amass
USE cell_base, ONLY : at, bg
USE symm_base, ONLY : s, sr, ftau, invs, nsym, irt, t_rev
USE symm_base, ONLY : s, sr, invs, nsym, irt, t_rev
USE modes, ONLY : num_rap_mode, name_rap_mode
USE noncollin_module, ONLY : noncolin, nspin_mag
USE spin_orb, ONLY : domag
......
......@@ -130,7 +130,7 @@ SUBROUTINE projection (first_band, last_band, min_energy, max_energy, sigma, iop
USE wvfct, ONLY : nbnd, npwx, et
USE ldaU, ONLY : is_Hubbard, Hubbard_lmax, Hubbard_l, &
oatwfc, offsetU, nwfcU, wfcU, copy_U_wfc
USE symm_base, ONLY : nrot, nsym, nsym_ns, nsym_na, ftau, irt, s, sname, d1, d2, d3, ft, sr
USE symm_base, ONLY : nrot, nsym, nsym_ns, nsym_na, irt, s, sname, d1, d2, d3, ft, sr
USE mp_pools, ONLY : me_pool, root_pool, my_pool_id, kunit, npool
USE control_flags, ONLY: gamma_only
USE uspp, ONLY: nkb, vkb
......@@ -403,7 +403,7 @@ SUBROUTINE projection (first_band, last_band, min_energy, max_energy, sigma, iop
WRITE(iun_pp,'("# nrot,nsym,nsym_ns,nsym_na",4I4)') nrot, nsym, nsym_ns, nsym_na
DO i = 1,nsym
WRITE(iun_pp,'("#symm",I3," : ",A)') i, trim(sname(i))
WRITE(iun_pp,'(3I3,I7,5x,3F7.2,F9.2)') ( s(j,:,i), ftau(j,i), sr(j,:,i), ft(j,i), j=1,3 )
WRITE(iun_pp,'(3I3,5x,3F7.2,F9.2)') ( s(j,:,i), sr(j,:,i), ft(j,i), j=1,3 )
WRITE(iun_pp,'(99I3)') irt(i,1:nat)
ENDDO
CLOSE(iun_pp)
......
......@@ -426,7 +426,7 @@ SUBROUTINE write_wfng ( output_file_name, real_or_complex, symm_type, &
USE mp_world, ONLY : mpime, nproc, world_comm
USE mp_bands, ONLY : intra_bgrp_comm, nbgrp
USE start_k, ONLY : nk1, nk2, nk3, k1, k2, k3
USE symm_base, ONLY : s, ftau, nsym
USE symm_base, ONLY : s, ft, nsym
USE wavefunctions, ONLY : evc
USE wvfct, ONLY : npwx, nbnd, et, wg
USE gvecw, ONLY : ecutwfc
......@@ -602,9 +602,9 @@ SUBROUTINE write_wfng ( output_file_name, real_or_complex, symm_type, &
ENDDO
ENDDO
CALL invmat ( 3, r1, r2 )
t1 ( 1 ) = dble ( ftau ( 1, i ) ) / dble ( dfftp%nr1 )
t1 ( 2 ) = dble ( ftau ( 2, i ) ) / dble ( dfftp%nr2 )
t1 ( 3 ) = dble ( ftau ( 3, i ) ) / dble ( dfftp%nr3 )
t1 ( 1 ) = ft ( 1, i )
t1 ( 2 ) = ft ( 2, i )
t1 ( 3 ) = ft ( 3, i )
DO j = 1, nd
t2 ( j ) = 0.0D0
DO k = 1, nd
......@@ -1227,7 +1227,7 @@ SUBROUTINE write_rhog ( output_file_name, real_or_complex, symm_type, &
USE mp, ONLY : mp_sum
USE mp_bands, ONLY : intra_bgrp_comm
USE scf, ONLY : rho, rhoz_or_updw
USE symm_base, ONLY : s, ftau, nsym
USE symm_base, ONLY : s, ft, nsym
USE matrix_inversion
IMPLICIT NONE
......@@ -1296,9 +1296,9 @@ SUBROUTINE write_rhog ( output_file_name, real_or_complex, symm_type, &
ENDDO
ENDDO
CALL invmat ( 3, r1, r2 )
t1 ( 1 ) = dble ( ftau ( 1, i ) ) / dble ( dfftp%nr1 )
t1 ( 2 ) = dble ( ftau ( 2, i ) ) / dble ( dfftp%nr2 )
t1 ( 3 ) = dble ( ftau ( 3, i ) ) / dble ( dfftp%nr3 )
t1 ( 1 ) = ft ( 1, i )
t1 ( 2 ) = ft ( 2, i )
t1 ( 3 ) = ft ( 3, i )
DO j = 1, nd
t2 ( j ) = 0.0D0
DO k = 1, nd
......@@ -1513,7 +1513,7 @@ SUBROUTINE write_vxcg ( output_file_name, real_or_complex, symm_type, &
USE mp, ONLY : mp_sum
USE mp_bands, ONLY : intra_bgrp_comm
USE scf, ONLY : rho, rho_core, rhog_core
USE symm_base, ONLY : s, ftau, nsym
USE symm_base, ONLY : s, ft, nsym
USE wavefunctions, ONLY : psic
USE matrix_inversion
......@@ -1584,9 +1584,9 @@ SUBROUTINE write_vxcg ( output_file_name, real_or_complex, symm_type, &
ENDDO
ENDDO
CALL invmat ( 3, r1, r2 )
t1 ( 1 ) = dble ( ftau ( 1, i ) ) / dble ( dfftp%nr1 )
t1 ( 2 ) = dble ( ftau ( 2, i ) ) / dble ( dfftp%nr2 )
t1 ( 3 ) = dble ( ftau ( 3, i ) ) / dble ( dfftp%nr3 )
t1 ( 1 ) = ft ( 1, i )
t1 ( 2 ) = ft ( 2, i )
t1 ( 3 ) = ft ( 3, i )
DO j = 1, nd
t2 ( j ) = 0.0D0
DO k = 1, nd
......@@ -2218,7 +2218,7 @@ SUBROUTINE write_vscg ( output_file_name, real_or_complex, symm_type )
USE mp, ONLY : mp_sum
USE mp_bands, ONLY : intra_bgrp_comm
USE scf, ONLY : vltot, v
USE symm_base, ONLY : s, ftau, nsym
USE symm_base, ONLY : s, ft, nsym
USE wavefunctions, ONLY : psic
USE matrix_inversion
......@@ -2290,9 +2290,9 @@ SUBROUTINE write_vscg ( output_file_name, real_or_complex, symm_type )
ENDDO
ENDDO
CALL invmat ( 3, r1, r2 )
t1 ( 1 ) = dble ( ftau ( 1, i ) ) / dble ( dfftp%nr1 )
t1 ( 2 ) = dble ( ftau ( 2, i ) ) / dble ( dfftp%nr2 )
t1 ( 3 ) = dble ( ftau ( 3, i ) ) / dble ( dfftp%nr3 )
t1 ( 1 ) = ft ( 1, i )
t1 ( 2 ) = ft ( 2, i )
t1 ( 3 ) = ft ( 3, i )
DO j = 1, nd
t2 ( j ) = 0.0D0
DO k = 1, nd
......@@ -2432,7 +2432,7 @@ SUBROUTINE write_vkbg (output_file_name, symm_type, wfng_kgrid, &
intra_pool_comm, inter_pool_comm
USE mp_wave, ONLY : mergewf
USE start_k, ONLY : nk1, nk2, nk3, k1, k2, k3
USE symm_base, ONLY : s, ftau, nsym
USE symm_base, ONLY : s, ft, nsym
USE uspp, ONLY : nkb, vkb, deeq
USE uspp_param, ONLY : nhm, nh
USE wvfct, ONLY : npwx
......@@ -2516,9 +2516,9 @@ SUBROUTINE write_vkbg (output_file_name, symm_type, wfng_kgrid, &
ENDDO
ENDDO
CALL invmat ( 3, r1, r2 )
t1 ( 1 ) = dble ( ftau ( 1, i ) ) / dble ( dfftp%nr1 )
t1 ( 2 ) = dble ( ftau ( 2, i ) ) / dble ( dfftp%nr2 )
t1 ( 3 ) = dble ( ftau ( 3, i ) ) / dble ( dfftp%nr3 )
t1 ( 1 ) = ft ( 1, i )
t1 ( 2 ) = ft ( 2, i )
t1 ( 3 ) = ft ( 3, i )
DO j = 1, nd
t2 ( j ) = 0.0D0
DO k = 1, nd
......
......@@ -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
!-----------------------------------------------------------------------
......
......@@ -20,7 +20,7 @@ SUBROUTINE sym_band(filband, spin_component, firstk, lastk)
USE wvfct, ONLY : et, nbnd, npwx
USE klist, ONLY : xk, nks, nkstot, ngk, igk_k
USE io_files, ONLY : nwordwfc, iunwfc
USE symm_base, ONLY : s, ftau, nsym, t_rev, invs, sname
USE symm_base, ONLY : s, nsym, ft, t_rev, invs, sname
USE rap_point_group, ONLY : code_group, nclass, nelem, elem, which_irr, &
char_mat, name_rap, name_class, gname, ir_ram
USE rap_point_group_so, ONLY : nrap, nelem_so, elem_so, has_e, &
......@@ -42,7 +42,7 @@ SUBROUTINE sym_band(filband, spin_component, firstk, lastk)
INTEGER :: npw, spin_component, nks1, nks2, firstk, lastk
INTEGER :: nks1tot, nks2tot
INTEGER :: iunout, igroup, irap, dim_rap, ios
INTEGER :: sk(3,3,48), ftauk(3,48), gk(3,48), sk_is(3,3,48), &
INTEGER :: sk(3,3,48), ftau(3,48), ftauk(3,48), gk(3,48), sk_is(3,3,48), &
gk_is(3,48), invs_is(48), t_revk(48), invsk(48), nsymk, isym, ipol, jpol
LOGICAL :: is_complex, is_complex_so, is_symmorphic, search_sym
LOGICAL, ALLOCATABLE :: high_symmetry(:)
......@@ -95,6 +95,10 @@ SUBROUTINE sym_band(filband, spin_component, firstk, lastk)
CALL davcio (evc, 2*nwordwfc, iunwfc, ik, - 1)
!
! Find the small group of k
! TEMP: ftau are no longer global variables
ftau(1,:) = nint(ft(1,:)*dfftp%nr1)
ftau(2,:) = nint(ft(2,:)*dfftp%nr2)
ftau(3,:) = nint(ft(3,:)*dfftp%nr3)
!
CALL smallgk (xk(1,ik), at, bg, s, ftau, t_rev, sname, nsym, sk, &
ftauk, gk, t_revk, invsk, snamek, nsymk)
......
......@@ -40,7 +40,7 @@ The following libraries have been isolated and partially encapsulated in view of
- LRlib: performs a variety of tasks connected with (time-dependent) DFPT, to be used also in connection with Many-Body Perturbation Theory.
## Contributing
Before contributing please read the [Contribution Guidelines](CONTRIBUTING.MD).
Before contributing please read the [Contribution Guidelines](CONTRIBUTING.md).
......
## Release checklist for v.6.4
## Release checklist
1. run all examples; ideally also check for discrepancies, or at least for crashes
2. verify that all README, README.md, etc. files contain updated information on the content of the relative package and directory
3. verify that all documentation files, in particular Doc/developer-man.tex and all user_guide.tex files, contain updated information. In particular, verify that there are no reference to removed or obsolete software and no missing references to new or changed software.
4. update the release number in developer_man.tex and in all user_guide.tex and other documentation that contains reference to version number
3. verify that all documentation files, in particular Doc/developer-man.tex and all user_guide.tex files, contain updated information. In particular, verify that there are no references to removed or obsolete software and no missing references to new or changed software.
4. update the release number in developer_man.tex and in all user_guide.tex and other documentation that contains references to version number
5. verify that input documentation (files INPUT_*.def) is updated
6. update Doc/release-notes with the release number and with updated information on what is new, changed, removed, etc.
7. Re-generate new documentation with "make doc"
8. verify that install/configure is updated and aligned with install/configure.ac
9. update version number in Modules/version.f90
10. set a git branch "qe-x.y[.z]" for version x.y[.z]
10. set a git tag "qe-x.y[.z]" for version x.y[.z]
11. align master to develop, github to gitlab
12. make packages on gitlab and github
13. if there are changes to che schema, copy the new schema to
13. if there are changes to the schema, copy the new schema to
quantumespresso@qe.safevps.it:/storage/vhosts/quantum-espresso.org/ns/qes
14. update the web site: add a piece of news, update pages Downloads, Roadmap, and any other page that needs to be updated, copy the new documentation to directory quantumespresso@qe.safevps.it:/storage/vhosts/quantum-espresso.org/htdocs/Doc
15. send a message to the mailing list, post to twitter, facebook, and whatnot
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment