(git:6a2e663)
ps_wavelet_base Module Reference

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)
 ... More...
 
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 More...
 
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 More...
 
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 More...
 

Detailed Description

Creates the wavelet kernel for the wavelet based poisson solver.

Author
Florian Schiffmann (09.2007,fschiff)

Function/Subroutine Documentation

◆ p_poissonsolver()

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 
)

...

Parameters
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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_poissonsolver()

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

Parameters
n1logical dimension of the transform.
n2logical dimension of the transform.
n3logical dimension of the transform.
nd1Dimension of POT
nd2Dimension of POT
nd3Dimension of POT
md1Dimension of ZF
md2Dimension of ZF
md3Dimension of ZF
nprocnumber of processors used as returned by MPI_COMM_SIZE
iproc[0:nproc-1] number of processor as returned by MPI_COMM_RANK
potKernel, only the distributed part (REAL) POT(i1,i2,i3) i1=1,nd1 , i2=1,nd2 , i3=1,nd3/nproc
zfDensity (input/output) ZF(i1,i3,i2) i1=1,md1 , i2=1,md2/nproc , i3=1,md3
scalfactor of renormalization of the FFT in order to acheve unitarity and the correct dimension
mpi_group...
Date
October 2006
Author
S. Goedecker, L. Genovese
Note
As transform lengths most products of the prime factors 2,3,5 are allowed. The detailed table with allowed transform lengths can be found in subroutine CTRIG
RESTRICTIONS on USAGE Copyright (C) Stefan Goedecker, Cornell University, Ithaca, USA, 1994 Copyright (C) Stefan Goedecker, MPI Stuttgart, Germany, 1999 Copyright (C) 2002 Stefan Goedecker, CEA Grenoble This file is distributed under the terms of the GNU General Public License, see http://www.gnu.org/copyleft/gpl.txt .

Definition at line 840 of file ps_wavelet_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scramble_unpack()

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

Parameters
i1Starting points of the plane and number of remaining lines
j2Starting points of the plane and number of remaining lines
lotStarting points of the plane and number of remaining lines
nfftStarting points of the plane and number of remaining lines
n1logical dimension of the FFT transform, reference for work arrays
n3logical dimension of the FFT transform, reference for work arrays
md2Dimensions of real grid
nproc...
nd3Dimensions of the kernel
zwWork array (input)
zmpi2Work array for multiprocessor manipulation (output)
cosinarrArray of the phases needed for unpacking
Date
February 2006
Author
S. Goedecker, L. Genovese
Note
RESTRICTIONS on USAGE Copyright (C) Stefan Goedecker, Cornell University, Ithaca, USA, 1994 Copyright (C) Stefan Goedecker, MPI Stuttgart, Germany, 1999 Copyright (C) 2002 Stefan Goedecker, CEA Grenoble This file is distributed under the terms of the GNU General Public License, see http://www.gnu.org/copyleft/gpl.txt .

Definition at line 1439 of file ps_wavelet_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ f_poissonsolver()

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

Parameters
n1logical dimension of the transform.
n2logical dimension of the transform.
n3logical dimension of the transform.
nd1Dimension of POT
nd2Dimension of POT
nd3Dimension of POT
md1Dimension of ZF
md2Dimension of ZF
md3Dimension of ZF
nprocnumber of processors used as returned by MPI_COMM_SIZE
iproc[0:nproc-1] number of processor as returned by MPI_COMM_RANK
potKernel, only the distributed part (REAL) POT(i1,i2,i3) i1=1,nd1 , i2=1,nd2 , i3=1,nd3/nproc
zfDensity (input/output) ZF(i1,i3,i2) i1=1,md1 , i2=1,md2/nproc , i3=1,md3
scalfactor of renormalization of the FFT in order to acheve unitarity and the correct dimension
mpi_group...
Date
February 2006
Author
S. Goedecker, L. Genovese
Note
As transform lengths most products of the prime factors 2,3,5 are allowed. The detailed table with allowed transform lengths can be found in subroutine CTRIG
RESTRICTIONS on USAGE Copyright (C) Stefan Goedecker, Cornell University, Ithaca, USA, 1994 Copyright (C) Stefan Goedecker, MPI Stuttgart, Germany, 1999 Copyright (C) 2002 Stefan Goedecker, CEA Grenoble This file is distributed under the terms of the GNU General Public License, see http://www.gnu.org/copyleft/gpl.txt .

Definition at line 1587 of file ps_wavelet_base.F.

Here is the call graph for this function:
Here is the caller graph for this function: