21 #ifndef fiber_default_test_kernel_trial_integral_hpp
22 #define fiber_default_test_kernel_trial_integral_hpp
24 #include "test_kernel_trial_integral.hpp"
97 template <
typename IntegrandFunctor>
98 class DefaultTestKernelTrialIntegral :
99 public TestKernelTrialIntegral<
100 typename IntegrandFunctor::BasisFunctionType,
101 typename IntegrandFunctor::KernelType,
102 typename IntegrandFunctor::ResultType>
104 typedef TestKernelTrialIntegral<
105 typename IntegrandFunctor::BasisFunctionType,
106 typename IntegrandFunctor::KernelType,
107 typename IntegrandFunctor::ResultType>
110 typedef typename Base::CoordinateType CoordinateType;
111 typedef typename Base::BasisFunctionType BasisFunctionType;
112 typedef typename Base::KernelType KernelType;
113 typedef typename Base::ResultType ResultType;
115 explicit DefaultTestKernelTrialIntegral(
const IntegrandFunctor& functor) :
119 virtual void addGeometricalDependencies(
120 size_t& testGeomDeps,
size_t& trialGeomDeps)
const;
122 virtual void evaluateWithTensorQuadratureRule(
123 const GeometricalData<CoordinateType>& testGeomData,
124 const GeometricalData<CoordinateType>& trialGeomData,
125 const CollectionOf3dArrays<BasisFunctionType>& testValues,
126 const CollectionOf3dArrays<BasisFunctionType>& trialValues,
127 const CollectionOf4dArrays<KernelType>& kernelValues,
128 const std::vector<CoordinateType>& testQuadWeights,
129 const std::vector<CoordinateType>& trialQuadWeights,
130 arma::Mat<ResultType>& result)
const;
132 virtual void evaluateWithNontensorQuadratureRule(
133 const GeometricalData<CoordinateType>& testGeomData,
134 const GeometricalData<CoordinateType>& trialGeomData,
135 const CollectionOf3dArrays<BasisFunctionType>& testValues,
136 const CollectionOf3dArrays<BasisFunctionType>& trialValues,
137 const CollectionOf3dArrays<KernelType>& kernelValues,
138 const std::vector<CoordinateType>& quadWeights,
139 arma::Mat<ResultType>& result)
const;
142 IntegrandFunctor m_functor;
147 #include "default_test_kernel_trial_integral_imp.hpp"