def multitrace_operator(grid, parameters=None, spaces='linear', target=None): """Return the Laplace multitrace operator. Parameters ---------- grid : bempp.api.grid.Grid The underlying grid for the multitrace operator parameters : bempp.api.common.ParameterList Parameters for the operator. If none given the default global parameter object `bempp.api.global_parameters` is used. spaces: string Choose 'linear' to assemble the operator with continuous linear function spaces for the Dirichlet and Neumann component (default). For a dual pairing of a linear space for the Dirichlet data and piecewise constant space for the Neumann data choose 'dual'. target: bempp.api.grid.Grid Specifies a target grid. If it is different from 'grid' then the operator maps from 'grid' to 'target'. """ from bempp.api.operators.boundary import _common return _common.multitrace_operator_impl(grid, single_layer, double_layer, hypersingular, parameters, spaces, laplace=True, target=target)
def multitrace_operator(grid, wave_number, parameters=None): """Return the modified Helmholtz multitrace operator. Parameters ---------- grid : bempp.api.grid.Grid The underlying grid for the multitrace operator wave_number : complex Wavenumber of the operator. parameters : bempp.api.common.ParameterList Parameters for the operator. If none given the default global parameter object `bempp.api.global_parameters` is used. """ def op(operator): if operator==hypersingular: def op_impl(domain, range_, dual_to_range, label="HYP", symmetry="no_symmetry", parameters=None, use_slp=False): return hypersingular(domain, range_, dual_to_range, wave_number, label, symmetry, parameters, use_slp) return op_impl else: import inspect defaults = inspect.getargspec(operator).defaults def op_impl(domain, range_, dual_to_range, label=defaults[0], symmetry=defaults[1], parameters=None): return operator(domain, range_, dual_to_range, wave_number, label, symmetry, parameters) return op_impl from bempp.api.operators.boundary import _common return _common.multitrace_operator_impl(grid, op(single_layer), op(double_layer), op(hypersingular), parameters)
def multitrace_operator(grid, parameters=None): """Return the Laplace multitrace operator. Parameters ---------- grid : bempp.api.grid.Grid The underlying grid for the multitrace operator parameters : bempp.api.common.ParameterList Parameters for the operator. If none given the default global parameter object `bempp.api.global_parameters` is used. """ from bempp.api.operators.boundary import _common return _common.multitrace_operator_impl(grid, single_layer, double_layer, hypersingular, parameters)
def multitrace_operator(grid, wave_number, parameters=None, spaces="linear"): """Return the modified Helmholtz multitrace operator. Parameters ---------- grid : bempp.api.grid.Grid The underlying grid for the multitrace operator wave_number : complex Wavenumber of the operator. parameters : bempp.api.common.ParameterList Parameters for the operator. If none given the default global parameter object `bempp.api.global_parameters` is used. spaces: string Choose 'linear' to assemble the operator with continuous linear function spaces for the Dirichlet and Neumann component (default). For a dual pairing of a linear space for the Dirichlet data and piecewise constant space for the Neumann data choose 'dual'. """ def op(operator): if operator == hypersingular: def op_impl( domain, range_, dual_to_range, label="HYP", symmetry="no_symmetry", parameters=None, use_slp=False ): return hypersingular(domain, range_, dual_to_range, wave_number, label, symmetry, parameters, use_slp) return op_impl else: import inspect defaults = inspect.getargspec(operator).defaults def op_impl(domain, range_, dual_to_range, label=defaults[0], symmetry=defaults[1], parameters=None): return operator(domain, range_, dual_to_range, wave_number, label, symmetry, parameters) return op_impl from bempp.api.operators.boundary import _common return _common.multitrace_operator_impl( grid, op(single_layer), op(double_layer), op(hypersingular), parameters, spaces )
def multitrace_operator(grid, parameters=None, spaces='linear'): """Return the Laplace multitrace operator. Parameters ---------- grid : bempp.api.grid.Grid The underlying grid for the multitrace operator parameters : bempp.api.common.ParameterList Parameters for the operator. If none given the default global parameter object `bempp.api.global_parameters` is used. spaces: string Choose 'linear' to assemble the operator with continuous linear function spaces for the Dirichlet and Neumann component (default). For a dual pairing of a linear space for the Dirichlet data and piecewise constant space for the Neumann data choose 'dual'. """ from bempp.api.operators.boundary import _common return _common.multitrace_operator_impl( grid, single_layer, double_layer, hypersingular, parameters, spaces, laplace=True)
def multitrace_operator(grid, wave_number, parameters=None, spaces='linear', target=None): """Return the modified Helmholtz multitrace operator. Parameters ---------- grid : bempp.api.grid.Grid The underlying grid for the multitrace operator wave_number : complex Wavenumber of the operator. parameters : bempp.api.common.ParameterList Parameters for the operator. If none given the default global parameter object `bempp.api.global_parameters` is used. spaces: string Choose 'linear' to assemble the operator with continuous linear function spaces for the Dirichlet and Neumann component (default). For a dual pairing of a linear space for the Dirichlet data and piecewise constant space for the Neumann data choose 'dual'. target: bempp.api.grid.Grid Specifies a target grid. If it is different from 'grid' then the operator maps from 'grid' to 'target'. """ #pylint: disable=invalid-name def op(operator): """Partial lambda that removes the wavenumber.""" if operator == hypersingular: def op_impl(domain, range_, dual_to_range, label="HYP", symmetry="no_symmetry", parameters=None, use_slp=False): """Implementation of operator without wavenumber param.""" return hypersingular(domain, range_, dual_to_range, wave_number, label, symmetry, parameters, use_slp) return op_impl else: import inspect #pylint: disable=deprecated-method defaults = inspect.getargspec(operator).defaults def op_impl(domain, range_, dual_to_range, label=defaults[0], symmetry=defaults[1], parameters=None): """Implementation of operator without wavenumber param.""" return operator(domain, range_, dual_to_range, wave_number, label, symmetry, parameters) return op_impl from bempp.api.operators.boundary import _common return _common.multitrace_operator_impl(grid, op(single_layer), op(double_layer), op(hypersingular), parameters, spaces, target=target)