:py:mod:`bempp.api.operators.boundary.helmholtz` ================================================ .. py:module:: bempp.api.operators.boundary.helmholtz .. autoapi-nested-parse:: Interfaces to Helmholtz operators. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: bempp.api.operators.boundary.helmholtz._OsrcDtN bempp.api.operators.boundary.helmholtz._OsrcNtD Functions ~~~~~~~~~ .. autoapisummary:: bempp.api.operators.boundary.helmholtz.single_layer bempp.api.operators.boundary.helmholtz.double_layer bempp.api.operators.boundary.helmholtz.adjoint_double_layer bempp.api.operators.boundary.helmholtz.hypersingular bempp.api.operators.boundary.helmholtz.multitrace_operator bempp.api.operators.boundary.helmholtz.osrc_dtn bempp.api.operators.boundary.helmholtz.osrc_ntd .. py:function:: single_layer(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None) Assemble the Helmholtz single-layer boundary operator. .. py:function:: double_layer(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None) Assemble the Helmholtz double-layer boundary operator. .. py:function:: adjoint_double_layer(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None) Assemble the Helmholtz adj. double-layer boundary operator. .. py:function:: hypersingular(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None) Assemble the Helmholtz hypersingular boundary operator. .. py:function:: multitrace_operator(grid, wavenumber, target=None, space_type='p1', parameters=None, assembler='default_nonlocal', device_interface=None, precision=None) Simplified version of multitrace operator assembly. Parameters ---------- grid : Grid Bempp grid object. wavenumber : complex A real or complex wavenumber target : Grid The grid for the range spaces. If target is None then target is set to the input grid (that is the domain grid). space_type : string Currently only "p1" is supported, which means that the operator is discretised with all P1 basis functions. parameters : Parameters An optional parameters object. assembler : string The assembler type. device_interface : DeviceInterface The device interface object to be used. precision : string Either "single" or "double" for single or double precision mode. Output ------ The Helmholtz multitrace operator of the form [[-dlp, slp], [hyp, adj_dlp]], where dlp : double layer boundary operator slp : single layer boundary operator hyp : hypersingular boundary operator adj_dlp : adjoint double layer boundary operator. .. py:function:: osrc_dtn(space, wavenumber, npade=2, theta=_np.pi / 3.0, damped_wavenumber=None, parameters=None, device_interface=None, precision=None) Assemble the OSRC approximation to the DtN operator. .. py:class:: _OsrcDtN(space, parameters, operator_options, device_interface=None, precision=None) Bases: :py:obj:`bempp.api.assembly.boundary_operator.BoundaryOperator` Implementation of the OSRC DtN operator. .. py:property:: descriptor Operator descriptor. .. py:method:: _assemble() Assemble the operator. .. py:function:: osrc_ntd(space, wavenumber, npade=2, theta=_np.pi / 3.0, damped_wavenumber=None, parameters=None, device_interface=None, precision=None) Assemble the OSRC approximation to the NtD operator. .. py:class:: _OsrcNtD(space, parameters, operator_options, device_interface=None, precision=None) Bases: :py:obj:`bempp.api.assembly.boundary_operator.BoundaryOperator` Implementation of the OSRC NtD operator. .. py:property:: descriptor Operator descriptor. .. py:method:: _assemble()