bempp.api.fmm.exafmm

Main interface class to ExaFMM.

Module Contents

Classes

ExafmmInterface

Interface to Exafmm.

Functions

cleanup_fmm_tmp()

Clean up the FMM tmp directory.

Attributes

FMM_TMP_DIR

bempp.api.fmm.exafmm.FMM_TMP_DIR
bempp.api.fmm.exafmm.cleanup_fmm_tmp()

Clean up the FMM tmp directory.

class bempp.api.fmm.exafmm.ExafmmInterface(source_points, target_points, mode, wavenumber=None, depth=4, expansion_order=5, ncrit=400, precision='double', singular_correction=None)

Bases: object

Interface to Exafmm.

property number_of_source_points

Return number of source points.

property number_of_target_points

Return number of target points.

evaluate(vec, apply_singular_correction=True)

Evalute the Fmm.

as_matrix()

Return matrix representation of Fmm.

classmethod from_grid(source_grid, mode, wavenumber=None, target_grid=None, precision='double', parameters=None, device_interface=None)

Initialise an Exafmm instance from a given source and target grid.

Parameters

source_gridGrid object

Grid for the source points.

mode: string

Fmm mode. One of ‘laplace’, ‘helmholtz’, or ‘modified_helmholtz’

wavenumberreal number

For Helmholtz or modified Helmholtz the wavenumber.

target_gridGrid object

An optional target grid. If not provided the source and target grid are assumed to be identical.

precisionstring

Either ‘single’ or ‘double’. Currently, the Fmm is always executed in double precision.

parametersobject

A bempp parameters object. If not provided, the GLOBAL_PARAMETERS will be used.

device_interfacestring

Either ‘numba’ or ‘opencl’. If not provided, the DEFAULT_DEVICE_INTERFACE will be used for the calculation of local interactions.