21 #ifndef bempp_abstract_boundary_operator_superposition_base_hpp
22 #define bempp_abstract_boundary_operator_superposition_base_hpp
24 #include "../common/common.hpp"
26 #include "abstract_boundary_operator.hpp"
27 #include "boundary_operator.hpp"
33 template <
typename ResultType>
class LocalAssemblerForIntegralOperators;
47 template <
typename BasisFunctionType_,
typename ResultType_>
70 const std::string&
label,
74 virtual shared_ptr<DiscreteBoundaryOperator<ResultType_> >
79 shared_ptr<DiscreteBoundaryOperator<ResultType_> >
80 assembleJointOperatorWeakFormInDenseMode(
82 std::vector<ResultType>& opWeights,
84 shared_ptr<DiscreteBoundaryOperator<ResultType_> >
85 assembleJointOperatorWeakFormInAcaMode(
88 std::vector<ResultType>& opWeights)
const;
Fiber::LocalAssemblerForIntegralOperators< ResultType > LocalAssembler
Type of the appropriate instantiation of Fiber::LocalAssemblerForOperators.
Definition: abstract_boundary_operator_superposition_base.hpp:63
std::string label() const
Return the label of the operator.
Definition: abstract_boundary_operator.cpp:149
Base::ResultType ResultType
Type used to represent elements of the weak form of the operator.
Definition: abstract_boundary_operator_superposition_base.hpp:56
Base class for quadrature strategies.
Definition: quadrature_strategy.hpp:242
Base class for abstract boundary operator superpositions.
Definition: abstract_boundary_operator_superposition_base.hpp:48
Function space.
Definition: assembled_potential_operator.hpp:35
Assembly context.
Definition: context.hpp:30
BasisFunctionType_ BasisFunctionType
Type of the values of the (components of the) basis functions into which functions acted upon by the ...
Definition: abstract_boundary_operator.hpp:95
Base::BasisFunctionType BasisFunctionType
Type of the values of the (components of the) basis functions into which functions acted upon by the ...
Definition: abstract_boundary_operator_superposition_base.hpp:54
shared_ptr< const Space< BasisFunctionType > > range() const
Range.
Definition: abstract_boundary_operator.cpp:135
int symmetry() const
Return the symmetry properties of the operator.
Definition: abstract_boundary_operator.cpp:156
Operator acting on functions defined on a surface.
Definition: boundary_operator.hpp:63
Abstract (non-discretized) boundary operator.
Definition: abstract_boundary_operator.hpp:90
Abstract interface of a local assembler for integral operators.
Definition: local_assembler_for_integral_operators.hpp:48
ScalarTraits< ResultType >::RealType CoordinateType
Type used to represent coordinates.
Definition: abstract_boundary_operator.hpp:99
shared_ptr< const Space< BasisFunctionType > > dualToRange() const
Dual to range.
Definition: abstract_boundary_operator.cpp:142
shared_ptr< const Space< BasisFunctionType > > domain() const
Domain.
Definition: abstract_boundary_operator.cpp:128
ResultType_ ResultType
Type used to represent elements of the weak form of the operator.
Definition: abstract_boundary_operator.hpp:97
Base::QuadratureStrategy QuadratureStrategy
Type of the appropriate instantiation of Fiber::QuadratureStrategy.
Definition: abstract_boundary_operator_superposition_base.hpp:60
virtual shared_ptr< DiscreteBoundaryOperator< ResultType_ > > assembleWeakFormImpl(const Context< BasisFunctionType, ResultType > &context) const
Assemble and return the operator's weak form.
Definition: abstract_boundary_operator_superposition_base.cpp:160
Base::CoordinateType CoordinateType
Type used to represent coordinates.
Definition: abstract_boundary_operator_superposition_base.hpp:58
AbstractBoundaryOperatorSuperpositionBase(const shared_ptr< const Space< BasisFunctionType > > &domain, const shared_ptr< const Space< BasisFunctionType > > &range, const shared_ptr< const Space< BasisFunctionType > > &dualToRange, const std::string &label, int symmetry)
Constructor.
Definition: abstract_boundary_operator_superposition_base.cpp:147