21 #ifndef fiber_default_evaluator_for_integral_operators_hpp
22 #define fiber_default_evaluator_for_integral_operators_hpp
24 #include "../common/common.hpp"
26 #include "evaluator_for_integral_operators.hpp"
28 #include "collection_of_2d_arrays.hpp"
29 #include "parallelization_options.hpp"
30 #include "quadrature_options.hpp"
32 #include "../common/armadillo_fwd.hpp"
39 struct QuadratureOptions;
40 template <
typename ValueType>
class Shapeset;
41 template <
typename CoordinateType>
class CollectionOfShapesetTransformations;
42 template <
typename ValueType>
class CollectionOfKernels;
43 template <
typename BasisFunctionType,
typename KernelType,
typename ResultType>
44 class KernelTrialIntegral;
45 template <
typename CoordinateType>
class RawGridGeometry;
47 template <
typename BasisFunctionType>
48 class QuadratureDescriptorSelectorForPotentialOperators;
49 template <
typename CoordinateType>
class SingleQuadratureRuleFamily;
52 template <
typename BasisFunctionType,
typename KernelType,
53 typename ResultType,
typename GeometryFactory>
59 typedef typename Base::CoordinateType CoordinateType;
60 typedef typename Base::Region Region;
63 const shared_ptr<const GeometryFactory >& geometryFactory,
69 const shared_ptr<
const std::vector<std::vector<ResultType> > >& argumentLocalCoefficients,
70 const shared_ptr<const OpenClHandler>& openClHandler,
73 BasisFunctionType> >& quadDescSelector,
75 CoordinateType> >& quadRuleFamily);
77 virtual void evaluate(Region region,
78 const arma::Mat<CoordinateType>& points,
79 arma::Mat<ResultType>& result)
const;
82 void cacheTrialData();
85 int kernelTrialGeomDeps,
88 std::vector<CoordinateType>& weights)
const;
91 const shared_ptr<const GeometryFactory> m_geometryFactory;
92 const shared_ptr<const RawGridGeometry<CoordinateType> > m_rawGeometry;
93 const shared_ptr<const std::vector<const Shapeset<BasisFunctionType>*> > m_trialShapesets;
94 const shared_ptr<const CollectionOfKernels<KernelType> > m_kernels;
95 const shared_ptr<const CollectionOfShapesetTransformations<CoordinateType> > m_trialTransformations;
96 const shared_ptr<const KernelTrialIntegral<BasisFunctionType, KernelType, ResultType> > m_integral;
97 const shared_ptr<const std::vector<std::vector<ResultType> > > m_argumentLocalCoefficients;
98 const shared_ptr<const OpenClHandler> m_openClHandler;
101 BasisFunctionType> > m_quadDescSelector;
102 const shared_ptr<const SingleQuadratureRuleFamily<CoordinateType> > m_quadRuleFamily;
108 std::vector<CoordinateType> m_nearFieldWeights;
109 std::vector<CoordinateType> m_farFieldWeights;
114 #include "default_evaluator_for_integral_operators_imp.hpp"
Definition: default_evaluator_for_integral_operators.hpp:54
Parallel operation settings.
Definition: parallelization_options.hpp:32
Storage of geometrical data.
Definition: geometrical_data.hpp:54
Collection of shape functions defined on a reference element.
Definition: default_local_assembler_for_operators_on_surfaces_utilities.hpp:34
Definition: default_local_assembler_for_operators_on_surfaces_utilities.hpp:35
Family of quadrature rules over single elements.
Definition: numerical_quadrature_strategy.hpp:35
Definition: kernel_trial_integral.hpp:42
Definition: evaluator_for_integral_operators.hpp:33
Quadrature descriptor selector used during the evaluation on potentials.
Definition: quadrature_descriptor_selector_factory.hpp:39