:py:mod:`bempp.core.singular_assembler` ======================================= .. py:module:: bempp.core.singular_assembler .. autoapi-nested-parse:: Singular assembly. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: bempp.core.singular_assembler.SingularAssembler bempp.core.singular_assembler._SingularQuadratureRuleInterfaceGalerkin Functions ~~~~~~~~~ .. autoapisummary:: bempp.core.singular_assembler.assemble_singular_part Attributes ~~~~~~~~~~ .. autoapisummary:: bempp.core.singular_assembler._SingularQuadratureRule .. py:class:: SingularAssembler(domain, dual_to_range, parameters=None) Bases: :py:obj:`bempp.api.assembly.assembler.AssemblerBase` Assembler for the singular part of boundary integral operators. .. py:method:: assemble(operator_descriptor, device_interface, precision, *args, **kwargs) Assemble the singular part. .. py:function:: assemble_singular_part(domain, dual_to_range, parameters, operator_descriptor, device_interface) Actually assemble the Numba kernel. .. py:data:: _SingularQuadratureRule .. py:class:: _SingularQuadratureRuleInterfaceGalerkin(grid, order, test_support, trial_support) Bases: :py:obj:`object` Interface for a singular quadrature rule. .. py:property:: order Return the order. .. py:property:: coincident_rule Return coincident rule. .. py:property:: edge_adjacent_rule Return edge adjacent rule. .. py:property:: vertex_adjacent_rule Return vertex adjacent rule. .. py:property:: grid Return the grid. .. py:property:: edge_adjacency Return the grid edge adjacency information. .. py:property:: vertex_adjacency Return vertex adjacency. .. py:property:: number_of_elements Return the number of elements of the underlying grid. .. py:property:: index_count Return the index count. .. py:property:: test_indices Return the test indicies of all singular contributions. .. py:property:: trial_indices Return the trial indicies of all singular contributions. .. py:method:: number_of_points(adjacency) Return the number of quadrature points for given adjacency. .. py:method:: get_arrays() Return the arrays. .. py:method:: _collect_remapped_quad_points_for_edge_adjacent_rule(quad_points) Remap quad points for edge adjacent quadrature rules. Given a 2xN array of quadrature points, return all possible combinations of remapped rules, according to the following order 0: edge (index 0, 1) 1: edge (index 1, 0) 2: edge (index 1, 2) 3: edge (index 2, 1) 4: edge (index 0, 2) 5: edge (index 2, 0) .. py:method:: _collect_remapped_quad_points_for_vertex_adjacent_rule(quad_points) Remap quad points for vertex adjacent quadrature rules. Given a 2xN array of quadrature points, return all possible combinations of remapped rules, according to the following order 0: vertex (index 0) 1: vertex (index 1) 2: vertex (index 2) .. py:method:: _compute_edge_offsets() Compute offsets for the edge based rule. .. py:method:: _compute_vertex_offsets() Compute offsets for the vertex based rules. .. py:method:: _vectorize_indices() Return vector of test and trial indices for sing. integration. .. py:method:: _get_number_of_quad_points() Compute an array of local numbers of integration points. .. py:method:: _vectorize_points() Return an array of all quadrature points for all different rules. .. py:method:: _vectorize_weights() Vectorize the quadrature weights. .. py:method:: _vectorize_offsets() Vectorize the offsets.