:py:mod:`bempp.api.fmm.fmm_assembler` ===================================== .. py:module:: bempp.api.fmm.fmm_assembler .. autoapi-nested-parse:: Implementation of an FMM Assembler. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: bempp.api.fmm.fmm_assembler.FmmPotentialAssembler bempp.api.fmm.fmm_assembler.FmmAssembler Functions ~~~~~~~~~ .. autoapisummary:: bempp.api.fmm.fmm_assembler.get_mode_from_operator_identifier bempp.api.fmm.fmm_assembler.get_fmm_interface bempp.api.fmm.fmm_assembler.get_fmm_potential_interface bempp.api.fmm.fmm_assembler.create_evaluator bempp.api.fmm.fmm_assembler.create_potential_evaluator bempp.api.fmm.fmm_assembler.make_scalar_hypersingular bempp.api.fmm.fmm_assembler.make_default_scalar bempp.api.fmm.fmm_assembler.get_normals bempp.api.fmm.fmm_assembler.compute_p1_curl_transformation bempp.api.fmm.fmm_assembler.compute_p1_curl_transformation_impl bempp.api.fmm.fmm_assembler.compute_rwg_basis_transform bempp.api.fmm.fmm_assembler.compute_rwg_basis_transform_impl bempp.api.fmm.fmm_assembler.compute_rwg_div_transform bempp.api.fmm.fmm_assembler.compute_rwg_div_transform_impl bempp.api.fmm.fmm_assembler.make_default_scalar_potential bempp.api.fmm.fmm_assembler.make_maxwell_electric_field_boundary bempp.api.fmm.fmm_assembler.make_maxwell_magnetic_field_boundary bempp.api.fmm.fmm_assembler.make_maxwell_electric_field_potential bempp.api.fmm.fmm_assembler.make_maxwell_magnetic_field_potential bempp.api.fmm.fmm_assembler.clear_fmm_cache Attributes ~~~~~~~~~~ .. autoapisummary:: bempp.api.fmm.fmm_assembler._FMM_CACHE bempp.api.fmm.fmm_assembler._FMM_POTENTIAL_CACHE .. py:data:: _FMM_CACHE .. py:data:: _FMM_POTENTIAL_CACHE .. py:function:: get_mode_from_operator_identifier(identifier) Get the Fmm mode from the operator identifier. .. py:function:: get_fmm_interface(domain, dual_to_range, mode, wavenumber, parameters=None, device_interface=None) Get an Fmm instance. .. py:function:: get_fmm_potential_interface(space, points, mode, wavenumber) Get an Fmm potential instance. .. py:function:: create_evaluator(operator_descriptor, fmm_interface, domain, dual_to_range, parameters) Return an Fmm evaluator for the requested kernel. .. py:function:: create_potential_evaluator(operator_descriptor, fmm_interface, space, parameters) Select an Fmm Potential Evaluator. .. py:class:: FmmPotentialAssembler(space, operator_descriptor, points, device_interface, parameters) Bases: :py:obj:`object` Potential assembler for FMM. .. py:method:: evaluate(x) Actually evaluate the potential. .. py:class:: FmmAssembler(domain, dual_to_range, parameters) Bases: :py:obj:`bempp.api.assembly.assembler.AssemblerBase` Assembler for Fmm. .. py:method:: assemble(operator_descriptor, device_interface, precision, *args, **kwargs) Actually assemble. .. py:method:: matvec(x) Perform a matvec. .. py:function:: make_scalar_hypersingular(operator_descriptor, fmm_interface, domain, dual_to_range) Create an evaluator for scalar hypersingular operators. .. py:function:: make_default_scalar(operator_descriptor, fmm_interface, domain, dual_to_range) Create an evaluator for scalar operators. .. py:function:: get_normals(space, npoints) Get the normal vectors on the quadrature points. .. py:function:: compute_p1_curl_transformation(space, quadrature_order) Compute the transformation of P1 space coefficients to surface curl values. Returns two lists, curl_transforms and curl_transforms_transpose. The jth matrix in curl_transforms is the map from P1 function space coefficients (or extended space built upon P1 type spaces) to the jth component of the surface curl evaluated at the quadrature points, multiplied with the quadrature weights and integration element. The list curl_transforms_transpose contains the transpose of these matrices. .. py:function:: compute_p1_curl_transformation_impl(grid_data, support_elements, normal_multipliers, quad_points, weights) Implement the curl transformation. .. py:function:: compute_rwg_basis_transform(space, quadrature_order) Compute the transformation matrices for RWG basis functions. .. py:function:: compute_rwg_basis_transform_impl(grid_data, shapeset_evaluate, basis_evaluate, support_elements, local_multipliers, normal_multipliers, quad_points, weights) Implement the RWG basis transformation. .. py:function:: compute_rwg_div_transform(space, quadrature_order) Compute the div transformation matrices for RWG basis functions. .. py:function:: compute_rwg_div_transform_impl(grid_data, shapeset_evaluate, basis_evaluate, support_elements, local_multipliers, normal_multipliers, quad_points, weights) Implement the RWG basis div transformation. .. py:function:: make_default_scalar_potential(operator_descriptor, fmm_interface, space) Make a scalar potential operator. .. py:function:: make_maxwell_electric_field_boundary(operator_descriptor, fmm_interface, domain, dual_to_range) Make a Maxwell electric field boundary operator. .. py:function:: make_maxwell_magnetic_field_boundary(operator_descriptor, fmm_interface, domain, dual_to_range) Make a Maxwell magnetic field boundary operator. .. py:function:: make_maxwell_electric_field_potential(operator_descriptor, fmm_interface, space) Make a Maxwell electric field potential operator. .. py:function:: make_maxwell_magnetic_field_potential(operator_descriptor, fmm_interface, space) Make a Maxwell magnetic field potential operator. .. py:function:: clear_fmm_cache() Clean the FMM cache.