21 #ifndef bempp_synthetic_integral_operator_hpp
22 #define bempp_synthetic_integral_operator_hpp
24 #include "../common/common.hpp"
26 #include "abstract_boundary_operator.hpp"
27 #include "boundary_operator.hpp"
29 #include "../common/shared_ptr.hpp"
35 template <
typename ResultType>
class LocalAssemblerForOperators;
101 template <
typename BasisFunctionType_,
typename ResultType_>
115 typedef typename Fiber::LocalAssemblerForOperators<ResultType>
143 const std::string&
label =
"",
144 int syntheseSymmetry = NO_SYMMETRY);
156 virtual shared_ptr<DiscreteBoundaryOperator<ResultType_> >
162 void checkIntegralOperator()
const;
163 void checkTestLocalOperators()
const;
164 void checkTrialLocalOperators()
const;
168 std::vector<BoundaryOperator<BasisFunctionType, ResultType> > m_testLocalOps;
169 std::vector<BoundaryOperator<BasisFunctionType, ResultType> > m_trialLocalOps;
170 int m_syntheseSymmetry;
Base::CoordinateType CoordinateType
Type used to represent coordinates.
Definition: synthetic_integral_operator.hpp:112
std::string label() const
Return the label of the operator.
Definition: abstract_boundary_operator.cpp:149
Base::QuadratureStrategy QuadratureStrategy
Type of the appropriate instantiation of Fiber::QuadratureStrategy.
Definition: synthetic_integral_operator.hpp:114
Base class for quadrature strategies.
Definition: quadrature_strategy.hpp:242
Integral operator with weak form assembled from several pieces.
Definition: synthetic_integral_operator.hpp:102
SyntheticIntegralOperator(const std::vector< BoundaryOperator< BasisFunctionType, ResultType > > &testLocalOps, const BoundaryOperator< BasisFunctionType, ResultType > &integralOp, const std::vector< BoundaryOperator< BasisFunctionType, ResultType > > &trialLocalOps, const std::string &label="", int syntheseSymmetry=NO_SYMMETRY)
Constructor.
Definition: synthetic_integral_operator.cpp:217
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
Operator acting on functions defined on a surface.
Definition: boundary_operator.hpp:63
static void getContextsForInternalAndAuxiliaryOperators(const shared_ptr< const Context< BasisFunctionType, ResultType > > &context, shared_ptr< const Context< BasisFunctionType, ResultType > > &internalContext, shared_ptr< const Context< BasisFunctionType, ResultType > > &auxContext)
Get contexts appropriate for construction of internal integral operators and auxiliary local operator...
Definition: synthetic_integral_operator.cpp:481
Abstract (non-discretized) boundary operator.
Definition: abstract_boundary_operator.hpp:90
ScalarTraits< ResultType >::RealType CoordinateType
Type used to represent coordinates.
Definition: abstract_boundary_operator.hpp:99
virtual shared_ptr< DiscreteBoundaryOperator< ResultType_ > > assembleWeakFormImpl(const Context< BasisFunctionType, ResultType > &context) const
Assemble and return the operator's weak form.
Definition: synthetic_integral_operator.cpp:338
Base::ResultType ResultType
Type used to represent elements of the weak form of the operator.
Definition: synthetic_integral_operator.hpp:110
ResultType_ ResultType
Type used to represent elements of the weak form of the operator.
Definition: abstract_boundary_operator.hpp:97
Base::BasisFunctionType BasisFunctionType
Type of the values of the (components of the) basis functions into which functions acted upon by the ...
Definition: synthetic_integral_operator.hpp:108
virtual bool isLocal() const
Return whether this operator is local.
Definition: synthetic_integral_operator.cpp:260