示例#1
0
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)
示例#2
0
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)
示例#3
0
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)