21 #ifndef fiber_nonseparable_numerical_test_kernel_trial_integrator_hpp
22 #define fiber_nonseparable_numerical_test_kernel_trial_integrator_hpp
24 #include "../common/common.hpp"
26 #include "test_kernel_trial_integrator.hpp"
28 #include <tbb/concurrent_unordered_map.h>
29 #include <tbb/enumerable_thread_specific.h>
36 template <
typename CoordinateType>
class CollectionOfShapesetTransformations;
37 template <
typename ValueType>
class CollectionOfKernels;
38 template <
typename CoordinateType>
class RawGridGeometry;
39 template <
typename BasisFunctionType,
typename KernelType,
typename ResultType>
40 class TestKernelTrialIntegral;
44 template <
typename BasisFunctionType,
typename KernelType,
45 typename ResultType,
typename GeometryFactory>
51 typedef typename Base::CoordinateType CoordinateType;
52 typedef typename Base::ElementIndexPair ElementIndexPair;
55 const arma::Mat<CoordinateType>& localTestQuadPoints,
56 const arma::Mat<CoordinateType>& localTrialQuadPoints,
57 const std::vector<CoordinateType> quadWeights,
58 const GeometryFactory& testGeometryFactory,
59 const GeometryFactory& trialGgeometryFactory,
69 virtual void integrate(
70 CallVariant callVariant,
71 const std::vector<int>& elementIndicesA,
75 LocalDofIndex localDofIndexB,
76 const std::vector<arma::Mat<ResultType>*>& result)
const;
78 virtual void integrate(
79 const std::vector<ElementIndexPair>& elementIndexPairs,
82 const std::vector<arma::Mat<ResultType>*>& result)
const;
85 enum ElementType {TEST, TRIAL};
90 arma::Mat<CoordinateType> m_localTestQuadPoints;
91 arma::Mat<CoordinateType> m_localTrialQuadPoints;
92 std::vector<CoordinateType> m_quadWeights;
94 const GeometryFactory& m_testGeometryFactory;
95 const GeometryFactory& m_trialGeometryFactory;
104 typedef tbb::concurrent_unordered_map<const Shapeset<BasisFunctionType>*,
106 mutable BasisDataCache m_cachedTestBasisData;
107 mutable BasisDataCache m_cachedTrialBasisData;
112 mutable tbb::enumerable_thread_specific<GeometricalData<CoordinateType> >
113 m_testGeomData, m_trialGeomData;
118 #include "nonseparable_numerical_test_kernel_trial_integrator_imp.hpp"
Integration over pairs of elements.
Definition: test_kernel_trial_integrator.hpp:42
Integration over pairs of elements on non-tensor-product point grids.
Definition: nonseparable_numerical_test_kernel_trial_integrator.hpp:46
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
Storage of values and/or derivatives of shape functions.
Definition: basis_data.hpp:44
Definition: opencl_handler.hpp:208