bempp_cl.api.fmm.exafmm ======================= .. py:module:: bempp_cl.api.fmm.exafmm .. autoapi-nested-parse:: Main interface class to ExaFMM. Attributes ---------- .. autoapisummary:: bempp_cl.api.fmm.exafmm.FMM_TMP_DIR Classes ------- .. autoapisummary:: bempp_cl.api.fmm.exafmm.ExafmmInterface Functions --------- .. autoapisummary:: bempp_cl.api.fmm.exafmm.cleanup_fmm_tmp Module Contents --------------- .. py:data:: FMM_TMP_DIR :value: None .. py:function:: cleanup_fmm_tmp() Clean up the FMM tmp directory. .. py:class:: ExafmmInterface(source_points, target_points, mode, wavenumber=None, depth=4, expansion_order=5, ncrit=400, precision='double', singular_correction=None) Bases: :py:obj:`object` Interface to Exafmm. .. py:attribute:: _fname .. py:attribute:: _singular_correction :value: None .. py:attribute:: _source_points .. py:attribute:: _target_points .. py:attribute:: _mode .. py:property:: number_of_source_points Return number of source points. .. py:property:: number_of_target_points Return number of target points. .. py:method:: evaluate(vec, apply_singular_correction=True) Evalute the Fmm. .. py:method:: as_matrix() Return matrix representation of Fmm. .. py:method:: from_grid(source_grid, mode, wavenumber=None, target_grid=None, precision='double', parameters=None, device_interface=None) :classmethod: Initialise an Exafmm instance from a given source and target grid. Parameters ---------- source_grid : Grid object Grid for the source points. mode: string Fmm mode. One of 'laplace', 'helmholtz', or 'modified_helmholtz' wavenumber : real number For Helmholtz or modified Helmholtz the wavenumber. target_grid : Grid object An optional target grid. If not provided the source and target grid are assumed to be identical. precision : string Either 'single' or 'double'. Currently, the Fmm is always executed in double precision. parameters : object A bempp parameters object. If not provided, the GLOBAL_PARAMETERS will be used. device_interface : string Either 'numba' or 'opencl'. If not provided, the DEFAULT_DEVICE_INTERFACE will be used for the calculation of local interactions.