# The Python Radial Basis Function Toolbox

The Python Radial Basis Function Toolbox (RBFT) is software for implementing RBF interpolation methods and RBF methods for the numerical solution of PDEs on scattered centers located in complexly shaped domains. The PRBFT is under constant development as it is heavily used in RBF research projects.

The two earlier versions of the toolbox, versions 1.0 and 1.1, were programmed in Matlab.  For a multitude of reasons Matlab is no longer used.  The Matlab versions will remain available for download (see the bottom of this page) and may see minor bug fixes and improvements but will not be developed further. All future development will be in the Python version.

Comments, questions, bug reports, code requests, etc. can be sent to sarra@marshall.edu

### Functionality

The functionality of the toolbox is organized via object oriented programming into several classes.

Classes and modules:

• rbfX - basic RBF method functionality and defines methods that all RBF classes must implement
• gax - Gaussian RBF
• iqx - Inverse Quadratic RBF
• imqx - inverse multiquadric RBF class (new in version 1.1)
• rbfCenters - center locations
• rbfCentro - reduced flop count and storage algorithms for RBF methods in symmetric domains.
• Functions - test functions and derivatives.
• rbfRational - (new in version 1.1) a rational RBF method
• rbfMisc - (new in version 1.1) miscellaneous functions used in examples such as a 4th order Runge-Kutta method, eigenvalues of differentiation matrices, etc.
• rbfLocal - (new in version 2.0) - local RBF method
• rbfPU - (new in version 2.0) - two versions of partition of unity RBF methods
• AnimatePlot - module for animating the solutions of time-dependent PDEs
• rbfc - (new in version 2.0) parent class for compactly supported RBFs
• W32 - Wendland functions that are SPD in up to 3 space dimensions and in C4
• W33 - Wendland functions that are SPD in up to 3 space dimensions and in C6

Scripts: The toolbox comes with a collection of scripts that demonstrate its usage, benchmark its performance, and verify that its algorithms produce the correct results. The scripts are located in the following folders.

• \examples
• \tests
• \benchmarks
• \papers

• version 2.0: October 31, 2023, PRBFT_2.0.tar.gz
• version 2.01: February 5, 2024, PRBFT_2.01.tar.gz, minor bug fixes and replacement of deprecated scipy functions with numpy functions
new in version 2.0:
• artifical viscosity methods for the stabilization of time-dependent PDE problems
• local RBF method
• partition of unity (PU) RBF method
• a new partition of unity RBF method which is easier to implement than is the standard PU method
• new shape parameter selection method based on the RBF system matrix being numerical symmetric positive definite
• added a new quasi-random center algorithm which has a lower-discrepancy than methods such as Halton and Hammersly points that are currently commonly used
• added a module to assist in the animation of the solution of time-dependent PDEs

### Future plans

• add Mercer's method to the GA class
• expansion of the rbfCenters class
• improve documentation
• expand the number and variety of example scripts
• parallel implementation of local methods via openCL
• add option to augment the RBF interpolant with polynomials
• add extended precision to the Python version

### PRBFT References

version 2.0 is used in

Local Radial Basis Function methods: comparison, improvements, and implementation.  Journal of Applied Mathematics and Physics, 11, p. 3867-3886, 2023. DOI: 10.4236/jamp.2023.1112245.

# Older Matlab version

The Matlab version uses the Multiprecision Computing Toolbox to seamlessly implement extended precision floating point arithmetic in all RBFT routines.

### MRBFT References

The MRBFT is described in the manuscript

All the numerical results in the following manuscript were produced with the MRBFT (in particular the rbfCentro class was used)
The double and extended precision "standard basis" RBF results in the following used the MRBFT

The rbfRational class that is new in version 1.1 was used in

### Citing the MRBFT

The academic reference for the MRBFT is this paper. The BibTex entry for the paper is

@article{Sarra2017,
doi = {10.5334/jors.131},
year  = {2017},
month = {March},
volume = {5},
author = {S. A. Sarra},
title = {The {M}atlab Radial Basis Function Toolbox},
journal = {Journal of Open Research Software}
}

or in plain text:

S. A. Sarra.  The Matlab Radial Basis Function Toolbox.  Journal of Open Research Software, vol. 5, 2017.