(git:6a2e663)
ps_wavelet_kernel Module Reference

Creates the wavelet kernel for the wavelet based poisson solver. More...

Functions/Subroutines

subroutine, public createkernel (geocode, n01, n02, n03, hx, hy, hz, itype_scf, iproc, nproc, kernel, mpi_group)
 Allocate a pointer which corresponds to the zero-padded FFT slice needed for calculating the convolution with the kernel expressed in the interpolating scaling function basis. The kernel pointer is unallocated on input, allocated on output. More...
 

Detailed Description

Creates the wavelet kernel for the wavelet based poisson solver.

Author
Florian Schiffmann (09.2007,fschiff)

Function/Subroutine Documentation

◆ createkernel()

subroutine, public ps_wavelet_kernel::createkernel ( character(len=1), intent(in)  geocode,
integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
real(kind=dp), intent(in)  hx,
real(kind=dp), intent(in)  hy,
real(kind=dp), intent(in)  hz,
integer, intent(in)  itype_scf,
integer, intent(in)  iproc,
integer, intent(in)  nproc,
real(kind=dp), dimension(:), pointer  kernel,
class(mp_comm_type), intent(in)  mpi_group 
)

Allocate a pointer which corresponds to the zero-padded FFT slice needed for calculating the convolution with the kernel expressed in the interpolating scaling function basis. The kernel pointer is unallocated on input, allocated on output.

Parameters
geocodeIndicates the boundary conditions (BC) of the problem: 'F' free BC, isolated systems. The program calculates the solution as if the given density is "alone" in R^3 space. 'S' surface BC, isolated in y direction, periodic in xz plane The given density is supposed to be periodic in the xz plane, so the dimensions in these direction mus be compatible with the FFT Beware of the fact that the isolated direction is y! 'P' periodic BC. The density is supposed to be periodic in all the three directions, then all the dimensions must be compatible with the FFT. No need for setting up the kernel.
n01dimensions of the real space grid to be hit with the Poisson Solver
n02dimensions of the real space grid to be hit with the Poisson Solver
n03dimensions of the real space grid to be hit with the Poisson Solver
hxgrid spacings. For the isolated BC case for the moment they are supposed to be equal in the three directions
hygrid spacings. For the isolated BC case for the moment they are supposed to be equal in the three directions
hzgrid spacings. For the isolated BC case for the moment they are supposed to be equal in the three directions
itype_scforder of the interpolating scaling functions used in the decomposition
iproc,nprocnumber of process, number of processes
nproc...
kernelpointer for the kernel FFT. Unallocated on input, allocated on output. Its dimensions are equivalent to the region of the FFT space for which the kernel is injective. This will divide by two each direction, since the kernel for the zero-padded convolution is real and symmetric.
mpi_group...
Date
February 2007
Author
Luigi Genovese
Note
Due to the fact that the kernel dimensions are unknown before the calling, the kernel must be declared as pointer in input of this routine. To avoid that, one can properly define the kernel dimensions by adding the nd1,nd2,nd3 arguments to the PS_dim4allocation routine, then eliminating the pointer declaration.

Definition at line 79 of file ps_wavelet_kernel.F.

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