Skip to content

FmmParams

ferreus_rbf.config.FmmParams(interpolation_order, max_points_per_cell, compression_type, epsilon, eval_chunk_size)

Parameters controlling the Fast Multipole Method (FMM) evaluator.

These settings configure the ferreus_bbfmm backend, which performs fast evaluation of RBF interpolants by hierarchically partitioning space and approximating long-range interactions through low-rank interpolation and optional M2L operator compression.

Intended Usage

This configuration is primarily exposed for developers and advanced users who wish to experiment with or tune FMM performance. In general, the default values have been selected to provide a rubust balance between accuracy, memory usage, and computation time across a broad range of problems.

Increasing the interpolation order improves accuracy but also increases computational cost. Orders that are too low may stall solver convergence.

Default interpolation order:

  • Linear and Spheroidal kernels -> 7
  • ThinPlateSpline kernel -> 9
  • Cubic kernel -> 11

Default values when FmmParams isn't provided to RBFInterpolator:

  • interpolation_order: kernel dependent
  • max_points_per_cell: 256
  • compression_type: FmmCompressionType.ACA
  • epsilon: 10^(-interpolation_order)
  • eval_chunk_size: 1024

Parameters:

Name Type Description Default
interpolation_order int

Number of Chebyshev interpolation nodes per dimension.

required
max_points_per_cell int

Maximum number of points per cell before it is subdivided.

required
compression_type FmmCompressionType

What type of compression to apply to the M2L operators.

required
epsilon float

Tolerance threshold for M2L compression.

required
eval_chunk_size int

Number of target points to evaluate in each chunk.

required