![]() |
(git:b77b4be)
|
Creates the wavelet kernel for the wavelet based poisson solver. More...
Functions/Subroutines | |
subroutine, public | p_poissonsolver (n1, n2, n3, nd1, nd2, nd3, md1, md2, md3, nproc, iproc, zf, scal, hx, hy, hz, mpi_group) |
... | |
subroutine, public | s_poissonsolver (n1, n2, n3, nd1, nd2, nd3, md1, md2, md3, nproc, iproc, pot, zf, scal, mpi_group) |
!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 | |
subroutine, public | scramble_unpack (i1, j2, lot, nfft, n1, n3, md2, nproc, nd3, zw, zmpi2, cosinarr) |
(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 | |
subroutine, public | f_poissonsolver (n1, n2, n3, nd1, nd2, nd3, md1, md2, md3, nproc, iproc, pot, zf, scal, mpi_group) |
(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 | |
Creates the wavelet kernel for the wavelet based poisson solver.
subroutine, public ps_wavelet_base::p_poissonsolver | ( | 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(kind=dp), dimension(md1, md3, md2/nproc), intent(inout) | zf, | ||
real(kind=dp), intent(in) | scal, | ||
real(kind=dp), intent(in) | hx, | ||
real(kind=dp), intent(in) | hy, | ||
real(kind=dp), intent(in) | hz, | ||
class(mp_comm_type), intent(in) | mpi_group | ||
) |
...
n1 | ... |
n2 | ... |
n3 | ... |
nd1 | ... |
nd2 | ... |
nd3 | ... |
md1 | ... |
md2 | ... |
md3 | ... |
nproc | ... |
iproc | ... |
zf | ... |
scal | ... |
hx | ... |
hy | ... |
hz | ... |
mpi_group | ... |
Definition at line 51 of file ps_wavelet_base.F.
subroutine, public ps_wavelet_base::s_poissonsolver | ( | 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(kind=dp), dimension(nd1, nd2, nd3/nproc), intent(in) | pot, | ||
real(kind=dp), dimension(md1, md3, md2/nproc), intent(inout) | zf, | ||
real(kind=dp), intent(in) | scal, | ||
class(mp_comm_type), intent(in) | mpi_group | ||
) |
!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
n1 | logical dimension of the transform. |
n2 | logical dimension of the transform. |
n3 | logical dimension of the transform. |
nd1 | Dimension of POT |
nd2 | Dimension of POT |
nd3 | Dimension of POT |
md1 | Dimension of ZF |
md2 | Dimension of ZF |
md3 | Dimension of ZF |
nproc | number of processors used as returned by MPI_COMM_SIZE |
iproc | [0:nproc-1] number of processor as returned by MPI_COMM_RANK |
pot | Kernel, only the distributed part (REAL) POT(i1,i2,i3) i1=1,nd1 , i2=1,nd2 , i3=1,nd3/nproc |
zf | Density (input/output) ZF(i1,i3,i2) i1=1,md1 , i2=1,md2/nproc , i3=1,md3 |
scal | factor of renormalization of the FFT in order to acheve unitarity and the correct dimension |
mpi_group | ... |
Definition at line 840 of file ps_wavelet_base.F.
subroutine, public ps_wavelet_base::scramble_unpack | ( | integer, intent(in) | i1, |
integer, intent(in) | j2, | ||
integer, intent(in) | lot, | ||
integer, intent(in) | nfft, | ||
integer, intent(in) | n1, | ||
integer, intent(in) | n3, | ||
integer, intent(in) | md2, | ||
integer, intent(in) | nproc, | ||
integer, intent(in) | nd3, | ||
real(kind=dp), dimension(2, lot, n3/2), intent(in) | zw, | ||
real(kind=dp), dimension(2, n1, md2/nproc, nd3), intent(inout) | zmpi2, | ||
real(kind=dp), dimension(2, n3/2), intent(in) | cosinarr | ||
) |
(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
i1 | Starting points of the plane and number of remaining lines |
j2 | Starting points of the plane and number of remaining lines |
lot | Starting points of the plane and number of remaining lines |
nfft | Starting points of the plane and number of remaining lines |
n1 | logical dimension of the FFT transform, reference for work arrays |
n3 | logical dimension of the FFT transform, reference for work arrays |
md2 | Dimensions of real grid |
nproc | ... |
nd3 | Dimensions of the kernel |
zw | Work array (input) |
zmpi2 | Work array for multiprocessor manipulation (output) |
cosinarr | Array of the phases needed for unpacking |
Definition at line 1439 of file ps_wavelet_base.F.
subroutine, public ps_wavelet_base::f_poissonsolver | ( | 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(kind=dp), dimension(nd1, nd2, nd3/nproc), intent(in) | pot, | ||
real(kind=dp), dimension(md1, md3, md2/nproc), intent(inout) | zf, | ||
real(kind=dp), intent(in) | scal, | ||
class(mp_comm_type), intent(in) | mpi_group | ||
) |
(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
n1 | logical dimension of the transform. |
n2 | logical dimension of the transform. |
n3 | logical dimension of the transform. |
nd1 | Dimension of POT |
nd2 | Dimension of POT |
nd3 | Dimension of POT |
md1 | Dimension of ZF |
md2 | Dimension of ZF |
md3 | Dimension of ZF |
nproc | number of processors used as returned by MPI_COMM_SIZE |
iproc | [0:nproc-1] number of processor as returned by MPI_COMM_RANK |
pot | Kernel, only the distributed part (REAL) POT(i1,i2,i3) i1=1,nd1 , i2=1,nd2 , i3=1,nd3/nproc |
zf | Density (input/output) ZF(i1,i3,i2) i1=1,md1 , i2=1,md2/nproc , i3=1,md3 |
scal | factor of renormalization of the FFT in order to acheve unitarity and the correct dimension |
mpi_group | ... |
Definition at line 1587 of file ps_wavelet_base.F.