mirror of https://gitlab.com/QEF/q-e.git
Some more smallbox cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7472 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
4de2134c36
commit
b9e599a2a9
|
@ -90,7 +90,6 @@
|
||||||
USE gvecw, ONLY: ecutwfc, gcutw
|
USE gvecw, ONLY: ecutwfc, gcutw
|
||||||
USE gvect, ONLY: ecutrho, gcutm
|
USE gvect, ONLY: ecutrho, gcutm
|
||||||
USE gvecs, ONLY: ecuts, gcutms
|
USE gvecs, ONLY: ecuts, gcutms
|
||||||
USE smallbox_gvec, ONLY: ecutb, gcutb
|
|
||||||
USE gvecw, ONLY: ekcut, gkcut
|
USE gvecw, ONLY: ekcut, gkcut
|
||||||
USE constants, ONLY: eps8, pi
|
USE constants, ONLY: eps8, pi
|
||||||
|
|
||||||
|
@ -153,7 +152,6 @@
|
||||||
USE gvecw, ONLY: ecfixed, qcutz, q2sigma
|
USE gvecw, ONLY: ecfixed, qcutz, q2sigma
|
||||||
USE gvecw, ONLY: ekcut, gkcut
|
USE gvecw, ONLY: ekcut, gkcut
|
||||||
USE gvecs, ONLY: ecuts, gcutms
|
USE gvecs, ONLY: ecuts, gcutms
|
||||||
USE smallbox_gvec, ONLY: ecutb, gcutb
|
|
||||||
use betax, only: mmx, refg
|
use betax, only: mmx, refg
|
||||||
USE io_global, ONLY: stdout
|
USE io_global, ONLY: stdout
|
||||||
|
|
||||||
|
|
25
CPV/init.f90
25
CPV/init.f90
|
@ -25,7 +25,7 @@
|
||||||
use control_flags, only: gamma_only, iprsta
|
use control_flags, only: gamma_only, iprsta
|
||||||
use grid_dimensions, only: nr1, nr2, nr3
|
use grid_dimensions, only: nr1, nr2, nr3
|
||||||
use cell_base, only: ainv, at, omega, alat
|
use cell_base, only: ainv, at, omega, alat
|
||||||
use small_box, only: tpibab, bgb, small_box_set
|
use small_box, only: small_box_set
|
||||||
use smallbox_grid_dim, only: nr1b, nr2b, nr3b, &
|
use smallbox_grid_dim, only: nr1b, nr2b, nr3b, &
|
||||||
smallbox_grid_init,smallbox_grid_info
|
smallbox_grid_init,smallbox_grid_info
|
||||||
USE grid_subroutines, ONLY: realspace_grids_init, realspace_grids_info
|
USE grid_subroutines, ONLY: realspace_grids_init, realspace_grids_info
|
||||||
|
@ -35,7 +35,6 @@
|
||||||
ecutrho, gcutm, gvect_init
|
ecutrho, gcutm, gvect_init
|
||||||
use gvecs, only: gcutms, gvecs_init
|
use gvecs, only: gcutms, gvecs_init
|
||||||
use gvecw, only: gkcut, gvecw_init, g2kin_init
|
use gvecw, only: gkcut, gvecw_init, g2kin_init
|
||||||
use smallbox_gvec, only: gcutb
|
|
||||||
USE smallbox_subs, ONLY: ggenb
|
USE smallbox_subs, ONLY: ggenb
|
||||||
USE fft_base, ONLY: dfftp, dffts
|
USE fft_base, ONLY: dfftp, dffts
|
||||||
USE fft_scalar, ONLY: cft_b_omp_init
|
USE fft_scalar, ONLY: cft_b_omp_init
|
||||||
|
@ -156,24 +155,22 @@
|
||||||
allocate( eigts2(-nr2:nr2,nat) )
|
allocate( eigts2(-nr2:nr2,nat) )
|
||||||
allocate( eigts3(-nr3:nr3,nat) )
|
allocate( eigts3(-nr3:nr3,nat) )
|
||||||
!
|
!
|
||||||
! generation of little box g-vectors
|
! small boxes
|
||||||
!
|
!
|
||||||
IF ( nr1b > 0 .AND. nr2b > 0 .AND. nr3b > 0 ) THEN
|
IF ( nr1b > 0 .AND. nr2b > 0 .AND. nr3b > 0 ) THEN
|
||||||
|
|
||||||
! sets the small box parameters
|
! set the small box parameters
|
||||||
|
|
||||||
rat1 = DBLE( nr1b ) / DBLE( nr1 )
|
rat1 = DBLE( nr1b ) / DBLE( nr1 )
|
||||||
rat2 = DBLE( nr2b ) / DBLE( nr2 )
|
rat2 = DBLE( nr2b ) / DBLE( nr2 )
|
||||||
rat3 = DBLE( nr3b ) / DBLE( nr3 )
|
rat3 = DBLE( nr3b ) / DBLE( nr3 )
|
||||||
CALL small_box_set( alat, omega, at, rat1, rat2, rat3 )
|
|
||||||
|
|
||||||
! now set gcutb
|
|
||||||
|
|
||||||
gcutb = ecutrho / tpibab / tpibab
|
|
||||||
!
|
!
|
||||||
CALL ggenb ( bgb, gcutb, iprsta )
|
CALL small_box_set( alat, omega, at, rat1, rat2, rat3 )
|
||||||
|
!
|
||||||
! initialize FFT table
|
! generate small-box G-vectors, initialize FFT tables
|
||||||
|
!
|
||||||
|
CALL ggenb ( ecutrho, iprsta )
|
||||||
|
!
|
||||||
#if defined __OPENMP && defined __FFTW
|
#if defined __OPENMP && defined __FFTW
|
||||||
CALL cft_b_omp_init( nr1b, nr2b, nr3b )
|
CALL cft_b_omp_init( nr1b, nr2b, nr3b )
|
||||||
#endif
|
#endif
|
||||||
|
@ -338,7 +335,7 @@
|
||||||
USE gvecw, ONLY : g2kin_init
|
USE gvecw, ONLY : g2kin_init
|
||||||
USE gvect, ONLY : g, gg, ngm, mill
|
USE gvect, ONLY : g, gg, ngm, mill
|
||||||
USE grid_dimensions, ONLY : nr1, nr2, nr3
|
USE grid_dimensions, ONLY : nr1, nr2, nr3
|
||||||
USE small_box, ONLY : bgb, small_box_set
|
USE small_box, ONLY : small_box_set
|
||||||
USE smallbox_subs, ONLY : gcalb
|
USE smallbox_subs, ONLY : gcalb
|
||||||
USE io_global, ONLY : stdout, ionode
|
USE io_global, ONLY : stdout, ionode
|
||||||
USE smallbox_grid_dim, ONLY : nr1b, nr2b, nr3b
|
USE smallbox_grid_dim, ONLY : nr1b, nr2b, nr3b
|
||||||
|
@ -380,7 +377,7 @@
|
||||||
rat3 = DBLE( nr3b ) / DBLE( nr3 )
|
rat3 = DBLE( nr3b ) / DBLE( nr3 )
|
||||||
CALL small_box_set( alat, omega, at, rat1, rat2, rat3 )
|
CALL small_box_set( alat, omega, at, rat1, rat2, rat3 )
|
||||||
!
|
!
|
||||||
call gcalb ( bgb )
|
call gcalb ( )
|
||||||
!
|
!
|
||||||
return
|
return
|
||||||
end subroutine newinit
|
end subroutine newinit
|
||||||
|
|
|
@ -13,30 +13,23 @@
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
SAVE
|
SAVE
|
||||||
|
|
||||||
! ... G vectors less than the box grid cut-off ( ? )
|
! ... Variables describing G-vectors for the small box grid
|
||||||
|
! ... Basically the same meaning as for the corresponding
|
||||||
|
! ... quantities for the true lattice
|
||||||
|
!
|
||||||
INTEGER :: ngb = 0 ! local number of G vectors
|
INTEGER :: ngb = 0 ! local number of G vectors
|
||||||
INTEGER :: ngbt = 0 ! in parallel execution global number of G vectors,
|
|
||||||
! in serial execution this is equal to ngw
|
|
||||||
INTEGER :: ngbl = 0 ! number of G-vector shells up to ngw
|
INTEGER :: ngbl = 0 ! number of G-vector shells up to ngw
|
||||||
INTEGER :: ngbx = 0 ! maximum local number of G vectors
|
|
||||||
|
|
||||||
REAL(DP), ALLOCATABLE :: gb(:), gxb(:,:), glb(:)
|
REAL(DP), ALLOCATABLE :: gb(:) ! G(i)^2 in (tpi/alatb)**2 units
|
||||||
INTEGER, ALLOCATABLE :: npb(:), nmb(:)
|
REAL(DP), ALLOCATABLE :: gxb(:,:) ! G(:,i) in tpi/alatb units
|
||||||
INTEGER, ALLOCATABLE :: mill_b(:,:)
|
REAL(DP), ALLOCATABLE :: glb(:) ! shells of G(i)^2
|
||||||
|
INTEGER, ALLOCATABLE :: npb(:), nmb(:) ! FFT indices
|
||||||
|
INTEGER, ALLOCATABLE :: mill_b(:,:) ! miller indices
|
||||||
|
|
||||||
REAL(DP) :: ecutb = 0.0_DP
|
REAL(DP) :: gcutb = 0.0_DP ! effective cut-off in (tpi/alatb)**2 units
|
||||||
REAL(DP) :: gcutb = 0.0_DP
|
|
||||||
|
|
||||||
CONTAINS
|
CONTAINS
|
||||||
|
|
||||||
SUBROUTINE smallbox_gvec_set( ecut, tpibab )
|
|
||||||
IMPLICIT NONE
|
|
||||||
REAL(DP), INTENT(IN) :: ecut, tpibab
|
|
||||||
ecutb = ecut
|
|
||||||
gcutb = ecut / tpibab / tpibab
|
|
||||||
RETURN
|
|
||||||
END SUBROUTINE smallbox_gvec_set
|
|
||||||
|
|
||||||
SUBROUTINE deallocate_smallbox_gvec()
|
SUBROUTINE deallocate_smallbox_gvec()
|
||||||
IF( ALLOCATED( gb ) ) DEALLOCATE( gb )
|
IF( ALLOCATED( gb ) ) DEALLOCATE( gb )
|
||||||
IF( ALLOCATED( gxb ) ) DEALLOCATE( gxb )
|
IF( ALLOCATED( gxb ) ) DEALLOCATE( gxb )
|
||||||
|
|
|
@ -14,8 +14,8 @@ MODULE smallbox_subs
|
||||||
! ... G-vector components onto the FFT grid(s) in reciprocal space
|
! ... G-vector components onto the FFT grid(s) in reciprocal space
|
||||||
! ... Small-Box grid
|
! ... Small-Box grid
|
||||||
|
|
||||||
USE smallbox_gvec, ONLY : ngb, ngbt, ngbl, ngbx, gb, gxb, glb, &
|
USE small_box, ONLY : bgb, tpibab
|
||||||
npb, nmb, mill_b
|
USE smallbox_gvec, ONLY : ngb, ngbl, gb, gxb, glb, npb, nmb, mill_b, gcutb
|
||||||
USE smallbox_grid_dim, ONLY : nr1b, nr2b, nr3b, nr1bx, nr2bx, nr3bx
|
USE smallbox_grid_dim, ONLY : nr1b, nr2b, nr3b, nr1bx, nr2bx, nr3bx
|
||||||
|
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
@ -27,7 +27,7 @@ MODULE smallbox_subs
|
||||||
CONTAINS
|
CONTAINS
|
||||||
!=----------------------------------------------------------------------=
|
!=----------------------------------------------------------------------=
|
||||||
!
|
!
|
||||||
SUBROUTINE ggenb ( bgb, gcutb, iprsta )
|
SUBROUTINE ggenb ( ecutrho, iprsta )
|
||||||
!-----------------------------------------------------------------------
|
!-----------------------------------------------------------------------
|
||||||
!
|
!
|
||||||
! As ggen, for the box grid. A "b" is appended to box variables.
|
! As ggen, for the box grid. A "b" is appended to box variables.
|
||||||
|
@ -38,7 +38,7 @@ CONTAINS
|
||||||
!
|
!
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
!
|
!
|
||||||
REAL(DP), INTENT(in) :: bgb(3,3), gcutb
|
REAL(DP), INTENT(in) :: ecutrho
|
||||||
INTEGER, INTENT (in) :: iprsta
|
INTEGER, INTENT (in) :: iprsta
|
||||||
!
|
!
|
||||||
INTEGER, ALLOCATABLE:: idx(:), iglb(:)
|
INTEGER, ALLOCATABLE:: idx(:), iglb(:)
|
||||||
|
@ -46,6 +46,10 @@ CONTAINS
|
||||||
INTEGER it, icurr, nr1m1, nr2m1, nr3m1, ir, ig, i,j,k, itv(3), ip
|
INTEGER it, icurr, nr1m1, nr2m1, nr3m1, ir, ig, i,j,k, itv(3), ip
|
||||||
REAL(DP) t(3), g2
|
REAL(DP) t(3), g2
|
||||||
!
|
!
|
||||||
|
! gcutb is the effective cut-off for G-vectors of the small box grid
|
||||||
|
!
|
||||||
|
gcutb = ecutrho / tpibab**2
|
||||||
|
!
|
||||||
nr1m1=nr1b-1
|
nr1m1=nr1b-1
|
||||||
nr2m1=nr2b-1
|
nr2m1=nr2b-1
|
||||||
nr3m1=nr3b-1
|
nr3m1=nr3b-1
|
||||||
|
@ -261,7 +265,7 @@ CONTAINS
|
||||||
END SUBROUTINE gshcount
|
END SUBROUTINE gshcount
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
SUBROUTINE gcalb ( bgb )
|
SUBROUTINE gcalb ( )
|
||||||
!
|
!
|
||||||
! re-generation of little box g-vectors
|
! re-generation of little box g-vectors
|
||||||
!
|
!
|
||||||
|
@ -269,7 +273,6 @@ CONTAINS
|
||||||
!
|
!
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
!
|
!
|
||||||
REAL(DP), INTENT(in) :: bgb(3,3)
|
|
||||||
INTEGER :: ig, i1,i2,i3
|
INTEGER :: ig, i1,i2,i3
|
||||||
|
|
||||||
IF ( nr1b == 0 .OR. nr2b == 0 .OR. nr3b == 0 ) return
|
IF ( nr1b == 0 .OR. nr2b == 0 .OR. nr3b == 0 ) return
|
||||||
|
|
Loading…
Reference in New Issue