:py:mod:`bempp.api.operators.boundary.maxwell` ============================================== .. py:module:: bempp.api.operators.boundary.maxwell .. autoapi-nested-parse:: Interfaces to Maxwell operators. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: bempp.api.operators.boundary.maxwell._OsrcMtE Functions ~~~~~~~~~ .. autoapisummary:: bempp.api.operators.boundary.maxwell.electric_field bempp.api.operators.boundary.maxwell.magnetic_field bempp.api.operators.boundary.maxwell.multitrace_operator bempp.api.operators.boundary.maxwell._multitrace_operator_impl bempp.api.operators.boundary.maxwell.osrc_mte .. py:function:: electric_field(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None) Assemble the electric field boundary operator. .. py:function:: magnetic_field(domain, range_, dual_to_range, wavenumber, parameters=None, assembler='default_nonlocal', device_interface=None, precision=None) Assemble the magnetic field boundary operator. .. py:function:: 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 ---------- grid : Grid Bempp grid object. wavenumber : complex A real or complex wavenumber epsilon_r : float Relative permittivity with respect to vacuum. mu_r : float Relative permeability with respect to vacuum. 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 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) 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 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. .. py:function:: _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) .. py:class:: _OsrcMtE(type, domains, ranges, dual_to_ranges, parameters, operator_options, device_interface=None, precision=None) Implementation of the OSRC DtN operator. .. py:property:: descriptor Operator descriptor. .. py:method:: _matvec1(v) .. py:method:: _matvec2(v) .. py:method:: _assemble() Assemble the operator. .. py:function:: 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.