bempp_cl.api.fmm.fmm_assembler ============================== .. py:module:: bempp_cl.api.fmm.fmm_assembler .. autoapi-nested-parse:: Implementation of an FMM Assembler. Attributes ---------- .. autoapisummary:: bempp_cl.api.fmm.fmm_assembler._FMM_CACHE bempp_cl.api.fmm.fmm_assembler._FMM_POTENTIAL_CACHE Classes ------- .. autoapisummary:: bempp_cl.api.fmm.fmm_assembler.FmmPotentialAssembler bempp_cl.api.fmm.fmm_assembler.FmmAssembler Functions --------- .. autoapisummary:: bempp_cl.api.fmm.fmm_assembler.get_mode_from_operator_identifier bempp_cl.api.fmm.fmm_assembler.get_fmm_interface bempp_cl.api.fmm.fmm_assembler.get_fmm_potential_interface bempp_cl.api.fmm.fmm_assembler.create_evaluator bempp_cl.api.fmm.fmm_assembler.create_potential_evaluator bempp_cl.api.fmm.fmm_assembler.make_scalar_hypersingular bempp_cl.api.fmm.fmm_assembler.make_default_scalar bempp_cl.api.fmm.fmm_assembler.get_normals bempp_cl.api.fmm.fmm_assembler.compute_p1_curl_transformation bempp_cl.api.fmm.fmm_assembler.compute_p1_curl_transformation_impl bempp_cl.api.fmm.fmm_assembler.compute_rwg_basis_transform bempp_cl.api.fmm.fmm_assembler.compute_rwg_basis_transform_impl bempp_cl.api.fmm.fmm_assembler.compute_rwg_div_transform bempp_cl.api.fmm.fmm_assembler.compute_rwg_div_transform_impl bempp_cl.api.fmm.fmm_assembler.make_default_scalar_potential bempp_cl.api.fmm.fmm_assembler.make_maxwell_electric_field_boundary bempp_cl.api.fmm.fmm_assembler.make_maxwell_magnetic_field_boundary bempp_cl.api.fmm.fmm_assembler.make_maxwell_electric_field_potential bempp_cl.api.fmm.fmm_assembler.make_maxwell_magnetic_field_potential bempp_cl.api.fmm.fmm_assembler.clear_fmm_cache Module Contents --------------- .. 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:attribute:: _evaluator .. py:method:: evaluate(x) Actually evaluate the potential. .. py:class:: FmmAssembler(domain, dual_to_range, parameters) Bases: :py:obj:`bempp_cl.api.assembly.assembler.AssemblerBase` Assembler for Fmm. .. py:attribute:: dtype :value: None .. py:attribute:: _evaluator :value: None .. py:attribute:: shape .. 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.