def _electric_field_impl(domain, range_, dual_to_range, wave_number, label, symmetry, parameters, assemble_only_singular_part): """ Return the actual electric field operator. """ from bempp.core.operators.boundary.maxwell import electric_field_ext from bempp.api.assembly import ElementaryBoundaryOperator from bempp.api.assembly.abstract_boundary_operator import \ ElementaryAbstractIntegralOperator #pylint: disable=protected-access return ElementaryBoundaryOperator( ElementaryAbstractIntegralOperator( electric_field_ext(parameters, domain._impl, range_._impl, dual_to_range._impl, wave_number, "", symmetry), domain, range_, dual_to_range), parameters=parameters, label=label, assemble_only_singular_part=assemble_only_singular_part)
def _hypersingular_impl(domain, range_, dual_to_range, label, symmetry, parameters, assemble_only_singular_part): """ Return the actual Laplace hypersingular operator. """ from bempp.core.operators.boundary.laplace import hypersingular_ext from bempp.api.assembly import ElementaryBoundaryOperator from bempp.api.assembly.abstract_boundary_operator import \ ElementaryAbstractIntegralOperator #pylint: disable=protected-access return ElementaryBoundaryOperator( ElementaryAbstractIntegralOperator( hypersingular_ext(parameters, domain._impl, range_._impl, dual_to_range._impl, "", symmetry), domain, range_, dual_to_range), parameters=parameters, label=label, assemble_only_singular_part=assemble_only_singular_part)
def _single_layer_impl(domain, range_, dual_to_range, wave_number, label, symmetry, parameters, assemble_only_singular_part): """ Return the actual modified Helmholtz single layer operator. """ from bempp.core.operators.boundary.modified_helmholtz import \ single_layer_ext from bempp.api.assembly import ElementaryBoundaryOperator from bempp.api.assembly.abstract_boundary_operator import \ ElementaryAbstractIntegralOperator #pylint: disable=protected-access return ElementaryBoundaryOperator( ElementaryAbstractIntegralOperator( single_layer_ext(parameters, domain._impl, range_._impl, dual_to_range._impl, wave_number, "", symmetry), domain, range_, dual_to_range), parameters=parameters, label=label, assemble_only_singular_part=assemble_only_singular_part)