Documentation for module ps_wavelet_kernel

Creates the wavelet kernel for the wavelet based poisson solver.

source: ps_wavelet_kernel.F
Loading...

public Subroutines/Functions:

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.

SUBROUTINEcreatekernel(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.

Arguments:
CHARACTER(1),
INTENT(in)
:: geocode Indicates 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.
INTEGER,
INTENT(in)
:: n01 dimensions of the real space grid to be hit with the Poisson Solver
INTEGER,
INTENT(in)
:: n02 dimensions of the real space grid to be hit with the Poisson Solver
INTEGER,
INTENT(in)
:: n03 dimensions of the real space grid to be hit with the Poisson Solver
REAL(dp),
INTENT(in)
:: hx grid spacings. For the isolated BC case for the moment they are supposed to be equal in the three directions
REAL(dp),
INTENT(in)
:: hy grid spacings. For the isolated BC case for the moment they are supposed to be equal in the three directions
REAL(dp),
INTENT(in)
:: hz grid spacings. For the isolated BC case for the moment they are supposed to be equal in the three directions
INTEGER,
INTENT(in)
:: itype_scf order of the interpolating scaling functions used in the decomposition
INTEGER,
INTENT(in)
:: iproc number of process, number of processes
INTEGER,
INTENT(in)
:: nproc number of process, number of processes
REAL(dp),
POINTER
:: kernel(:) pointer 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.
INTEGER,
INTENT(in)
:: mpi_group ...