bempp_cl.api.operators.boundary.maxwell

Interfaces to Maxwell operators.

Classes

_OsrcMtE

Implementation of the OSRC DtN operator.

Functions

electric_field(domain, range_, dual_to_range, wavenumber)

Assemble the electric field boundary operator.

magnetic_field(domain, range_, dual_to_range, wavenumber)

Assemble the magnetic field boundary operator.

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

Simplified version of multitrace operator assembly.

_multitrace_operator_impl(domain, range_, ...[, ...])

osrc_mte(domains, ranges, dual_to_ranges, wavenumber)

Assemble the OSRC approximation to the NtD operator.

Module Contents

bempp_cl.api.operators.boundary.maxwell.electric_field(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None)

Assemble the electric field boundary operator.

bempp_cl.api.operators.boundary.maxwell.magnetic_field(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None)

Assemble the magnetic field boundary operator.

bempp_cl.api.operators.boundary.maxwell.multitrace_operator(grid, wavenumber, epsilon_r=1, mu_r=1, target=None, space_type='magnetic_dual', 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

epsilon_rfloat

Relative permittivity with respect to vacuum.

mu_rfloat

Relative permeability with respect to vacuum.

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

One of “all_rwg”, “all_bc”, “magnetic_dual” (default), “electric_dual”. These lead to the following choices of space, range, and dual_to_range: default - (RWG, RWG), (BC, BC), (SNC, SNC) all_dual - (BC, BC), (RWG, RWG), (RBC, RBC) magnetic_dual - (RWG, BC), (RWG, BC), (RBC, SNC) electric_dual - (BC, RWG), (BC, RWG), (SNC, RBC)

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 Maxwell multitrace operator of the form [[M, E], [-E, M]], where M represens the magnetic and E the electric field boundary operators in the respective spaces defined through space_type. Note that the operators in the first and second row have different discretisations depending on the type of spaces used.

bempp_cl.api.operators.boundary.maxwell._multitrace_operator_impl(domain, range_, dual_to_range, wavenumber, epsilon_r=1, mu_r=1, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None)
class bempp_cl.api.operators.boundary.maxwell._OsrcMtE(type, domains, ranges, dual_to_ranges, parameters, operator_options, device_interface=None, precision=None)

Implementation of the OSRC DtN operator.

_device_interface = None
type
_operator_descriptor
domains_
ranges_
dual_to_ranges_
coeff = 0
property descriptor

Operator descriptor.

_matvec1(v)
_matvec2(v)
_assemble()

Assemble the operator.

bempp_cl.api.operators.boundary.maxwell.osrc_mte(domains, ranges, dual_to_ranges, wavenumber, npade=2, theta=_np.pi / 2.0, type=1, damped_wavenumber=None, parameters=None, device_interface=None, precision=None)

Assemble the OSRC approximation to the NtD operator.