Creates the wavelet kernel for the wavelet based poisson solver.

source: ps_wavelet_kernel.FLoading...

SUBROUTINE

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.

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.

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