berenger-eu / tbfmm

Task-based fast multipole method, parallelized using OpenMP and StarPU. With StarPU it supports multiple GPUs (CUDA).
Other
9 stars 3 forks source link

using FMM to solve RBF surface interpolation #11

Open michaelpolakatwork opened 7 months ago

michaelpolakatwork commented 7 months ago

Hi, and thanks for this library! I'm hoping to use it to help evaluate a radial basis function (biharmonic in my case): double biharmonicRBF(const Eigen::Vector3d& point, const Eigen::Vector3d& center) { double r = (point - center).norm(); if (r == 0.0) return 0.0; return r r log(r); }

The paper is here: https://www.cs.jhu.edu/~misha/Fall05/Papers/carr01.pdf

Since I cannot evaluate the weights for the RBF using a dense (or sparse) matrix with the Eigen library due to the number of centers (approximation points), I was hoping to use this FMM to help but I'm a bit lost in how to translate the use of this biharmonic function to the Kernal member function implementations required. Any help would be appreciated.

berenger-eu commented 7 months ago

Hello, it seems there are some papers on biharmonic function + FMM https://www.sciencedirect.com/science/article/pii/S0021999105004924 http://users.umiacs.umd.edu/~ramani/cmsc878R/11_29_11_Lecture24_Biharmonic.pdf but I is unclear to me if now it cannot be done in a more easy way using kernels like ufmm https://theses.hal.science/tel-01534930/document (called uniform kernel in scalfmm or tbfmm) Maybe you can ask Olivier Coulaud (Inria) who masters these kernels better than me.