Creates the wavelet kernel for the wavelet based poisson solver.
source: ps_wavelet_base.F(Based on suitable modifications of S.Goedecker routines) Applies the local FFT space Kernel to the density in Real space. Calculates also the LDA exchange-correlation terms
INTEGER, |
INTENT(in) |
:: | n1 | logical dimension of the transform. | |
INTEGER, |
INTENT(in) |
:: | n2 | logical dimension of the transform. | |
INTEGER, |
INTENT(in) |
:: | n3 | logical dimension of the transform. | |
INTEGER, |
INTENT(in) |
:: | nd1 | Dimension of POT | |
INTEGER, |
INTENT(in) |
:: | nd2 | Dimension of POT | |
INTEGER, |
INTENT(in) |
:: | nd3 | Dimension of POT | |
INTEGER, |
INTENT(in) |
:: | md1 | Dimension of ZF | |
INTEGER, |
INTENT(in) |
:: | md2 | Dimension of ZF | |
INTEGER, |
INTENT(in) |
:: | md3 | Dimension of ZF | |
INTEGER, |
INTENT(in) |
:: | nproc | number of processors used as returned by MPI_COMM_SIZE | |
INTEGER, |
INTENT(in) |
:: | iproc | [0:nproc-1] number of processor as returned by MPI_COMM_RANK | |
REAL(dp), |
INTENT(in) |
:: | pot(nd1,nd2,nd3/nproc) | Kernel, only the distributed part (REAL) POT(i1,i2,i3) i1=1,nd1 , i2=1,nd2 , i3=1,nd3/nproc | |
REAL(dp), |
INTENT(inout) |
:: | zf(md1,md3,md2/nproc) | Density (input/output) ZF(i1,i3,i2) i1=1,md1 , i2=1,md2/nproc , i3=1,md3 | |
REAL(dp), |
INTENT(in) |
:: | scal | factor of renormalization of the FFT in order to acheve unitarity and the correct dimension | |
INTEGER, |
INTENT(in) |
:: | mpi_group | ... |
...
INTEGER, |
INTENT(in) |
:: | n1 | ... | |
INTEGER, |
INTENT(in) |
:: | n2 | ... | |
INTEGER, |
INTENT(in) |
:: | n3 | ... | |
INTEGER, |
INTENT(in) |
:: | nd1 | ... | |
INTEGER, |
INTENT(in) |
:: | nd2 | ... | |
INTEGER, |
INTENT(in) |
:: | nd3 | ... | |
INTEGER, |
INTENT(in) |
:: | md1 | ... | |
INTEGER, |
INTENT(in) |
:: | md2 | ... | |
INTEGER, |
INTENT(in) |
:: | md3 | ... | |
INTEGER, |
INTENT(in) |
:: | nproc | ... | |
INTEGER, |
INTENT(in) |
:: | iproc | ... | |
REAL(dp), |
INTENT(inout) |
:: | zf(md1,md3,md2/nproc) | ... | |
REAL(dp), |
INTENT(in) |
:: | scal | ... | |
REAL(dp), |
INTENT(in) |
:: | hx | ... | |
REAL(dp), |
INTENT(in) |
:: | hy | ... | |
REAL(dp), |
INTENT(in) |
:: | hz | ... | |
INTEGER, |
INTENT(in) |
:: | mpi_group | ... |
(Based on suitable modifications of S.Goedecker routines) Assign the correct planes to the work array zmpi2 in order to prepare for interprocessor data transposition. In the meanwhile, it unpacks the data of the HalFFT in order to prepare for multiplication with the kernel
INTEGER, |
INTENT(in) |
:: | i1 | Starting points of the plane and number of remaining lines | |
INTEGER, |
INTENT(in) |
:: | j2 | Starting points of the plane and number of remaining lines | |
INTEGER, |
INTENT(in) |
:: | lot | Starting points of the plane and number of remaining lines | |
INTEGER, |
INTENT(in) |
:: | nfft | Starting points of the plane and number of remaining lines | |
INTEGER, |
INTENT(in) |
:: | n1 | logical dimension of the FFT transform, reference for work arrays | |
INTEGER, |
INTENT(in) |
:: | n3 | logical dimension of the FFT transform, reference for work arrays | |
INTEGER, |
INTENT(in) |
:: | md2 | Dimensions of real grid | |
INTEGER, |
INTENT(in) |
:: | nproc | ... | |
INTEGER, |
INTENT(in) |
:: | nd3 | Dimensions of the kernel | |
REAL(dp), |
INTENT(in) |
:: | zw(2,lot,n3/2) | Work array (input) | |
REAL(dp), |
INTENT(inout) |
:: | zmpi2(2,n1,md2/nproc,nd3) | Work array for multiprocessor manipulation (output) | |
REAL(dp), |
INTENT(in) |
:: | cosinarr(2,n3/2) | Array of the phases needed for unpacking |
!HERE POT MUST BE THE KERNEL (BEWARE THE HALF DIMENSION) ****h* BigDFT/S_PoissonSolver (Based on suitable modifications of S.Goedecker routines) Applies the local FFT space Kernel to the density in Real space. Does NOT calculate the LDA exchange-correlation terms
INTEGER, |
INTENT(in) |
:: | n1 | logical dimension of the transform. | |
INTEGER, |
INTENT(in) |
:: | n2 | logical dimension of the transform. | |
INTEGER, |
INTENT(in) |
:: | n3 | logical dimension of the transform. | |
INTEGER, |
INTENT(in) |
:: | nd1 | Dimension of POT | |
INTEGER, |
INTENT(in) |
:: | nd2 | Dimension of POT | |
INTEGER, |
INTENT(in) |
:: | nd3 | Dimension of POT | |
INTEGER, |
INTENT(in) |
:: | md1 | Dimension of ZF | |
INTEGER, |
INTENT(in) |
:: | md2 | Dimension of ZF | |
INTEGER, |
INTENT(in) |
:: | md3 | Dimension of ZF | |
INTEGER, |
INTENT(in) |
:: | nproc | number of processors used as returned by MPI_COMM_SIZE | |
INTEGER, |
INTENT(in) |
:: | iproc | [0:nproc-1] number of processor as returned by MPI_COMM_RANK | |
REAL(dp), |
INTENT(in) |
:: | pot(nd1,nd2,nd3/nproc) | Kernel, only the distributed part (REAL) POT(i1,i2,i3) i1=1,nd1 , i2=1,nd2 , i3=1,nd3/nproc | |
REAL(dp), |
INTENT(inout) |
:: | zf(md1,md3,md2/nproc) | Density (input/output) ZF(i1,i3,i2) i1=1,md1 , i2=1,md2/nproc , i3=1,md3 | |
REAL(dp), |
INTENT(in) |
:: | scal | factor of renormalization of the FFT in order to acheve unitarity and the correct dimension | |
INTEGER, |
INTENT(in) |
:: | mpi_group | ... |