21 #ifndef bempp_general_elementary_singular_integral_operator_hpp
22 #define bempp_general_elementary_singular_integral_operator_hpp
24 #include "elementary_singular_integral_operator.hpp"
58 template <
typename BasisFunctionType_,
typename KernelType_,
typename ResultType_>
61 BasisFunctionType_, KernelType_, ResultType_>
64 BasisFunctionType_, KernelType_, ResultType_>
Base;
130 template <
typename KernelFunctor,
131 typename TestTransformationsFunctor,
132 typename TrialTransformationsFunctor,
133 typename IntegrandFunctor>
138 const std::string&
label,
140 const KernelFunctor& kernelFunctor,
141 const TestTransformationsFunctor& testTransformationsFunctor,
142 const TrialTransformationsFunctor& trialTransformationsFunctor,
143 const IntegrandFunctor& integrandFunctor);
151 template <
typename KernelFunctor,
152 typename TestTransformationsFunctor,
153 typename TrialTransformationsFunctor>
158 const std::string&
label,
160 const KernelFunctor& kernelFunctor,
161 const TestTransformationsFunctor& testTransformationsFunctor,
162 const TrialTransformationsFunctor& trialTransformationsFunctor,
164 BasisFunctionType_, KernelType_, ResultType_> >&
integral);
178 const std::string&
label,
186 BasisFunctionType_, KernelType_, ResultType_> >&
integral);
189 {
return *m_kernels; }
191 {
return *m_testTransformations; }
193 {
return *m_trialTransformations; }
195 {
return *m_integral; }
199 shared_ptr<CollectionOfKernels> m_kernels;
200 shared_ptr<CollectionOfShapesetTransformations> m_testTransformations;
201 shared_ptr<CollectionOfShapesetTransformations> m_trialTransformations;
202 shared_ptr<TestKernelTrialIntegral> m_integral;
GeneralElementarySingularIntegralOperator(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, const KernelFunctor &kernelFunctor, const TestTransformationsFunctor &testTransformationsFunctor, const TrialTransformationsFunctor &trialTransformationsFunctor, const IntegrandFunctor &integrandFunctor)
Constructor.
Definition: general_elementary_singular_integral_operator_imp.hpp:40
An integral representing the weak form of an integral operator.
Definition: test_kernel_trial_integral.hpp:70
std::string label() const
Return the label of the operator.
Definition: abstract_boundary_operator.cpp:149
Base::CoordinateType CoordinateType
Type used to represent coordinates.
Definition: general_elementary_singular_integral_operator.hpp:74
Collection of kernels.
Definition: collection_of_kernels.hpp:59
virtual const CollectionOfShapesetTransformations & testTransformations() const
Return the collection of test function transformations occurring in the weak form of this operator...
Definition: general_elementary_singular_integral_operator.hpp:190
Base::TestKernelTrialIntegral TestKernelTrialIntegral
Type of the appropriate instantiation of Fiber::TestKernelTrialIntegral.
Definition: general_elementary_singular_integral_operator.hpp:84
Elementary boundary integral operator with weak form whose integrand has a singularity at origin...
Definition: elementary_singular_integral_operator.hpp:35
Base::BasisFunctionType BasisFunctionType
Type of the values of the (components of the) basis functions into which functions acted upon by the ...
Definition: elementary_integral_operator_base.hpp:59
Base::ResultType ResultType
Type used to represent elements of the weak form of the operator.
Definition: elementary_integral_operator_base.hpp:61
Function space.
Definition: assembled_potential_operator.hpp:35
Base::CollectionOfKernels CollectionOfKernels
Type of the appropriate instantiation of Fiber::CollectionOfKernels.
Definition: elementary_singular_integral_operator.hpp:55
Standard implementation of an elementary singular integral operator.
Definition: general_elementary_singular_integral_operator.hpp:59
Base::ResultType ResultType
Type used to represent elements of the weak form of the operator.
Definition: general_elementary_singular_integral_operator.hpp:72
Base::KernelType KernelType
Type of the values of kernel functions.
Definition: general_elementary_singular_integral_operator.hpp:70
Base class of ElementaryIntegralOperator, containing functionality independent from KernelType...
Definition: elementary_integral_operator_base.hpp:53
shared_ptr< const Space< BasisFunctionType > > range() const
Range.
Definition: abstract_boundary_operator.cpp:135
Base::CollectionOfBasisTransformations CollectionOfBasisTransformations
Type of the appropriate instantiation of Fiber::CollectionOfBasisTransformations. ...
Definition: elementary_singular_integral_operator.hpp:50
int symmetry() const
Return the symmetry properties of the operator.
Definition: abstract_boundary_operator.cpp:156
Base::CollectionOfKernels CollectionOfKernels
Type of the appropriate instantiation of Fiber::CollectionOfKernels.
Definition: general_elementary_singular_integral_operator.hpp:82
Base::TestKernelTrialIntegral TestKernelTrialIntegral
Type of the appropriate instantiation of Fiber::TestKernelTrialIntegral.
Definition: elementary_singular_integral_operator.hpp:57
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
Base::CollectionOfShapesetTransformations CollectionOfShapesetTransformations
Type of the appropriate instantiation of Fiber::CollectionOfShapesetTransformations.
Definition: general_elementary_singular_integral_operator.hpp:77
Base::CollectionOfShapesetTransformations CollectionOfShapesetTransformations
Type of the appropriate instantiation of Fiber::CollectionOfShapesetTransformations.
Definition: elementary_singular_integral_operator.hpp:53
Base::BasisFunctionType BasisFunctionType
Type of the values of the basis functions into which functions acted upon by the operator are expande...
Definition: general_elementary_singular_integral_operator.hpp:68
Base::CollectionOfBasisTransformations CollectionOfBasisTransformations
Type of the appropriate instantiation of Fiber::CollectionOfBasisTransformations. ...
Definition: general_elementary_singular_integral_operator.hpp:80
Base::KernelType KernelType
Type of the values of the (components of the) kernel functions.
Definition: elementary_singular_integral_operator.hpp:43
virtual const CollectionOfKernels & kernels() const
Return the collection of kernel functions occurring in the weak form of this operator.
Definition: general_elementary_singular_integral_operator.hpp:188
virtual const TestKernelTrialIntegral & integral() const
Return an object representing the integral that is the weak form of this operator.
Definition: general_elementary_singular_integral_operator.hpp:194
virtual const CollectionOfShapesetTransformations & trialTransformations() const
Return the collection of trial function transformations occurring in the weak form of this operator...
Definition: general_elementary_singular_integral_operator.hpp:192
Base::CoordinateType CoordinateType
Type used to represent coordinates.
Definition: elementary_integral_operator_base.hpp:63