bempp.api.operators.boundary.helmholtz

Interfaces to Helmholtz operators.

Module Contents

Classes

_OsrcDtN

Implementation of the OSRC DtN operator.

_OsrcNtD

Implementation of the OSRC NtD operator.

Functions

single_layer(domain, range_, dual_to_range, wavenumber)

Assemble the Helmholtz single-layer boundary operator.

double_layer(domain, range_, dual_to_range, wavenumber)

Assemble the Helmholtz double-layer boundary operator.

adjoint_double_layer(domain, range_, dual_to_range, ...)

Assemble the Helmholtz adj. double-layer boundary operator.

hypersingular(domain, range_, dual_to_range, wavenumber)

Assemble the Helmholtz hypersingular boundary operator.

multitrace_operator(grid, wavenumber[, target, ...])

Simplified version of multitrace operator assembly.

osrc_dtn(space, wavenumber[, npade, theta, ...])

Assemble the OSRC approximation to the DtN operator.

osrc_ntd(space, wavenumber[, npade, theta, ...])

Assemble the OSRC approximation to the NtD operator.

bempp.api.operators.boundary.helmholtz.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.

bempp.api.operators.boundary.helmholtz.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.

bempp.api.operators.boundary.helmholtz.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.

bempp.api.operators.boundary.helmholtz.hypersingular(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None)

Assemble the Helmholtz hypersingular boundary operator.

bempp.api.operators.boundary.helmholtz.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

gridGrid

Bempp grid object.

wavenumbercomplex

A real or complex wavenumber

targetGrid

The grid for the range spaces. If target is None then target is set to the input grid (that is the domain grid).

space_typestring

Currently only “p1” is supported, which means that the operator is discretised with all P1 basis functions.

parametersParameters

An optional parameters object.

assemblerstring

The assembler type.

device_interfaceDeviceInterface

The device interface object to be used.

precisionstring

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.

bempp.api.operators.boundary.helmholtz.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.

class bempp.api.operators.boundary.helmholtz._OsrcDtN(space, parameters, operator_options, device_interface=None, precision=None)

Bases: bempp.api.assembly.boundary_operator.BoundaryOperator

Implementation of the OSRC DtN operator.

property descriptor

Operator descriptor.

_assemble()

Assemble the operator.

bempp.api.operators.boundary.helmholtz.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.

class bempp.api.operators.boundary.helmholtz._OsrcNtD(space, parameters, operator_options, device_interface=None, precision=None)

Bases: bempp.api.assembly.boundary_operator.BoundaryOperator

Implementation of the OSRC NtD operator.

property descriptor

Operator descriptor.

_assemble()