The definitions of "backward" and "forward" FFT in on-line comments was

not consistent with what FFTs actually do in the code
This commit is contained in:
Paolo Giannozzi 2021-03-27 10:29:08 +01:00
parent 0993320ece
commit 5c444d5a1d
7 changed files with 19 additions and 19 deletions

View File

@ -11,15 +11,15 @@ SUBROUTINE invfft_y( fft_kind, f, dfft, howmany )
!! Compute G-space to R-space for a specific grid type
!!
!! **fft_kind = 'Rho'** :
!! inverse fourier transform of potentials and charge density f
!! inverse (backward) fourier transform of potentials and charge density f
!! On output, f is overwritten
!!
!! **fft_kind = 'Wave'** :
!! inverse fourier transform of wave functions f
!! inverse (backward) fourier transform of wave functions f
!! On output, f is overwritten
!!
!! **fft_kind = 'tgWave'** :
!! inverse fourier transform of wave functions f with task group
!! inverse (backward) fourier transform of wave functions f with task group
!! On output, f is overwritten
!!
!! **dfft = FFT grid descriptor**, IMPORTANT NOTICE: grid is specified only by dfft.
@ -311,15 +311,15 @@ SUBROUTINE invfft_y_gpu( fft_kind, f_d, dfft, howmany, stream )
!! Compute G-space to R-space for a specific grid type
!!
!! **fft_kind = 'Rho'** :
!! inverse fourier transform of potentials and charge density f
!! inverse (backward) fourier transform of potentials and charge density f
!! On output, f is overwritten
!!
!! **fft_kind = 'Wave'** :
!! inverse fourier transform of wave functions f
!! inverse (backward) fourier transform of wave functions f
!! On output, f is overwritten
!!
!! **fft_kind = 'tgWave'** :
!! inverse fourier transform of wave functions f with task group
!! inverse (backward) fourier transform of wave functions f with task group
!! On output, f is overwritten
!!
!! **dfft = FFT grid descriptor**, IMPORTANT NOTICE: grid is specified only by dfft.

View File

@ -56,7 +56,7 @@
! (ldz>nz is used on some architectures to reduce memory conflicts)
! input : c(ldz*nsl) (complex)
! output : cout(ldz*nsl) (complex - NOTA BENE: transform is not in-place!)
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nz, nsl, ldz) are stored and re-used if available
@ -248,7 +248,7 @@
! 2d array: r2d(ldx, ldy) (x first dimension, y second dimension)
! (ldx>nx, ldy>ny used on some architectures to reduce memory conflicts)
! pl2ix(nx) (optional) is 1 for columns along y to be transformed
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nx,ny,nzl,ldx) are stored and re-used if available

View File

@ -61,7 +61,7 @@
! (ldz>nz is used on some architectures to reduce memory conflicts)
! input : c(ldz*nsl) (complex)
! output : cout(ldz*nsl) (complex - NOTA BENE: transform is not in-place!)
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nz, nsl, ldz) are stored and re-used if available
@ -192,7 +192,7 @@
! 2d array: r2d(ldx, ldy) (x first dimension, y second dimension)
! (ldx>nx, ldy>ny used on some architectures to reduce memory conflicts)
! pl2ix(nx) (optional) is 1 for columns along y to be transformed
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nx,ny,nzl,ldx) are stored and re-used if available

View File

@ -49,7 +49,7 @@
! (ldz>nz is used on some architectures to reduce memory conflicts)
! input : c(ldz*nsl) (complex)
! output : cout(ldz*nsl) (complex - NOTA BENE: transform is not in-place!)
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nz, nsl, ldz) are stored and re-used if available
@ -194,7 +194,7 @@
! 2d array: r2d(ldx, ldy) (x first dimension, y second dimension)
! (ldx>nx, ldy>ny used on some architectures to reduce memory conflicts)
! pl2ix(nx) (optional) is 1 for columns along y to be transformed
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nx,ny,nzl,ldx) are stored and re-used if available

View File

@ -65,7 +65,7 @@
! (ldz>nz is used on some architectures to reduce memory conflicts)
! input : c(ldz*nsl) (complex)
! output : cout(ldz*nsl) (complex - NOTA BENE: transform is not in-place!)
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nz, nsl, ldz) are stored and re-used if available
@ -185,7 +185,7 @@
! 2d array: r2d(ldx, ldy) (x first dimension, y second dimension)
! (ldx>nx, ldy>ny used on some architectures to reduce memory conflicts)
! pl2ix(nx) (optional) is 1 for columns along y to be transformed
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nx,ny,nzl,ldx) are stored and re-used if available

View File

@ -47,7 +47,7 @@
! (ldz>nz is used on some architectures to reduce memory conflicts)
! input : c(ldz*nsl) (complex)
! output : cout(ldz*nsl) (complex - NOTA BENE: transform is not in-place!)
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nz, nsl, ldz) are stored and re-used if available
@ -166,7 +166,7 @@
! 2d array: r2d(ldx, ldy) (x first dimension, y second dimension)
! (ldx>nx, ldy>ny used on some architectures to reduce memory conflicts)
! pl2ix(nx) (optional) is 1 for columns along y to be transformed
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nx,ny,nzl,ldx) are stored and re-used if available

View File

@ -33,8 +33,8 @@
! ldz >= nz is the distance between sequences to be transformed
! (ldz>nz is used on some architectures to reduce memory conflicts)
! input : c_d(ldz*nsl) (complex)
! ### GPU VERION IN PLACE!!! #### output : cout_d(ldz*nsl) (complex - NOTA BENE: transform is not in-place!)
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! ### GPU VERSION IN PLACE!!! #### output : cout_d(ldz*nsl) (complex - NOTA BENE: transform is not in-place!)
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nz, nsl, ldz) are stored and re-used if available
#ifdef TRACK_FLOPS
@ -178,7 +178,7 @@
! 2d array: r2d(ldx, ldy) (x first dimension, y second dimension)
! (ldx>nx, ldy>ny used on some architectures to reduce memory conflicts)
! pl2ix(nx) (optional) is 1 for columns along y to be transformed
! isign > 0 : forward (f(G)=>f(R)), isign <0 backward (f(R) => f(G))
! isign > 0 : backward (f(G)=>f(R)), isign < 0 : forward (f(R) => f(G))
! Up to "ndims" initializations (for different combinations of input
! parameters nx,ny,nzl,ldx) are stored and re-used if available
!#ifdef TRACK_FLOPS