21 #ifndef fiber_numerical_quadrature_strategy_hpp
22 #define fiber_numerical_quadrature_strategy_hpp
24 #include "../common/common.hpp"
26 #include "quadrature_strategy.hpp"
28 #include "accuracy_options.hpp"
82 template <
typename BasisFunctionType,
typename ResultType,
83 typename GeometryFactory,
typename Enable>
86 GeometryFactory, Enable>
90 GeometryFactory, Enable>
Base;
91 typedef typename Base::CoordinateType CoordinateType;
95 quadratureDescriptorSelectorFactory,
97 singleQuadratureRuleFamily,
99 doubleQuadratureRuleFamily);
102 virtual std::auto_ptr<LocalAssemblerForLocalOperators<ResultType> >
103 makeAssemblerForIdentityOperators(
104 const shared_ptr<const GeometryFactory>& geometryFactory,
110 const shared_ptr<const OpenClHandler>& openClHandler)
const;
112 virtual std::auto_ptr<LocalAssemblerForLocalOperators<ResultType> >
113 makeAssemblerForLocalOperators(
114 const shared_ptr<const GeometryFactory>& geometryFactory,
121 const shared_ptr<const OpenClHandler>& openClHandler)
const;
124 virtual std::auto_ptr<LocalAssemblerForIntegralOperators<ResultType> >
125 makeAssemblerForIntegralOperatorsImplRealKernel(
126 const shared_ptr<const GeometryFactory>& testGeometryFactory,
127 const shared_ptr<const GeometryFactory>& trialGeometryFactory,
136 const shared_ptr<const OpenClHandler>& openClHandler,
138 VerbosityLevel::Level verbosityLevel,
139 bool cacheSingularIntegrals)
const;
141 virtual std::auto_ptr<LocalAssemblerForGridFunctions<ResultType> >
142 makeAssemblerForGridFunctionsImplRealUserFunction(
143 const shared_ptr<const GeometryFactory>& geometryFactory,
148 const shared_ptr<const OpenClHandler>& openClHandler)
const;
150 virtual std::auto_ptr<EvaluatorForIntegralOperators<ResultType> >
151 makeEvaluatorForIntegralOperatorsImplRealKernel(
152 const shared_ptr<const GeometryFactory>& geometryFactory,
158 const shared_ptr<
const std::vector<std::vector<ResultType> > >& argumentLocalCoefficients,
159 const shared_ptr<const OpenClHandler>& openClHandler,
162 virtual std::auto_ptr<LocalAssemblerForPotentialOperators<ResultType> >
163 makeAssemblerForPotentialOperatorsImplRealKernel(
164 const arma::Mat<CoordinateType>& evaluationPoints,
165 const shared_ptr<const GeometryFactory>& geometryFactory,
171 const shared_ptr<const OpenClHandler>& openClHandler,
173 VerbosityLevel::Level verbosityLevel)
const;
176 shared_ptr<const QuadratureDescriptorSelectorFactory<BasisFunctionType> >
177 quadratureDescriptorSelectorFactory()
const;
178 shared_ptr<const SingleQuadratureRuleFamily<CoordinateType> >
179 singleQuadratureRuleFamily()
const;
180 shared_ptr<const DoubleQuadratureRuleFamily<CoordinateType> >
181 doubleQuadratureRuleFamily()
const;
184 shared_ptr<const QuadratureDescriptorSelectorFactory<BasisFunctionType> >
185 m_quadratureDescriptorSelectorFactory;
186 shared_ptr<const SingleQuadratureRuleFamily<CoordinateType> >
187 m_singleQuadratureRuleFamily;
188 shared_ptr<const DoubleQuadratureRuleFamily<CoordinateType> >
189 m_doubleQuadratureRuleFamily;
246 template <
typename BasisFunctionType,
typename ResultType,
247 typename GeometryFactory,
typename Enable =
void>
250 BasisFunctionType, ResultType, GeometryFactory, Enable>
253 BasisFunctionType, ResultType, GeometryFactory, Enable>
Base;
255 typedef typename Base::CoordinateType CoordinateType;
280 singleQuadratureRuleFamily,
282 doubleQuadratureRuleFamily);
291 quadratureDescriptorSelectorFactory,
293 singleQuadratureRuleFamily,
295 doubleQuadratureRuleFamily);
298 virtual std::auto_ptr<LocalAssemblerForIntegralOperators<ResultType> >
299 makeAssemblerForIntegralOperatorsImplComplexKernel(
300 const shared_ptr<const GeometryFactory>& testGeometryFactory,
301 const shared_ptr<const GeometryFactory>& trialGeometryFactory,
310 const shared_ptr<const OpenClHandler>& openClHandler,
312 VerbosityLevel::Level verbosityLevel,
313 bool cacheSingularIntegrals)
const;
315 virtual std::auto_ptr<LocalAssemblerForGridFunctions<ResultType> >
316 makeAssemblerForGridFunctionsImplComplexUserFunction(
317 const shared_ptr<const GeometryFactory>& geometryFactory,
322 const shared_ptr<const OpenClHandler>& openClHandler)
const;
324 virtual std::auto_ptr<EvaluatorForIntegralOperators<ResultType> >
325 makeEvaluatorForIntegralOperatorsImplComplexKernel(
326 const shared_ptr<const GeometryFactory>& geometryFactory,
332 const shared_ptr<
const std::vector<std::vector<ResultType> > >& argumentLocalCoefficients,
333 const shared_ptr<const OpenClHandler>& openClHandler,
336 virtual std::auto_ptr<LocalAssemblerForPotentialOperators<ResultType> >
337 makeAssemblerForPotentialOperatorsImplComplexKernel(
338 const arma::Mat<CoordinateType>& evaluationPoints,
339 const shared_ptr<const GeometryFactory>& geometryFactory,
345 const shared_ptr<const OpenClHandler>& openClHandler,
347 VerbosityLevel::Level verbosityLevel)
const;
352 template <
typename BasisFunctionType,
typename ResultType,
typename GeometryFactory>
354 BasisFunctionType, ResultType, GeometryFactory,
355 typename boost::enable_if<boost::is_same<ResultType, typename ScalarTraits<ResultType>::RealType> >::type> :
357 BasisFunctionType, ResultType, GeometryFactory,
358 typename boost::enable_if<boost::is_same<ResultType, typename ScalarTraits<ResultType>::RealType> >::type>
360 typedef typename boost::enable_if<boost::is_same<ResultType, typename ScalarTraits<ResultType>::RealType> >::type Enable;
362 BasisFunctionType, ResultType, GeometryFactory, Enable> Base;
364 typedef typename Base::CoordinateType CoordinateType;
388 quadratureDescriptorSelectorFactory,
390 singleQuadratureRuleFamily,
392 doubleQuadratureRuleFamily);
402 singleQuadratureRuleFamily,
404 doubleQuadratureRuleFamily);
An integral representing the weak form of an integral operator.
Definition: test_kernel_trial_integral.hpp:70
Collection of kernels.
Definition: collection_of_kernels.hpp:59
Base class for quadrature strategies.
Definition: quadrature_strategy.hpp:242
Parallel operation settings.
Definition: parallelization_options.hpp:32
Base class for NumericalQuadratureStrategy.
Definition: numerical_quadrature_strategy.hpp:84
Collection of shape functions defined on a reference element.
Definition: default_local_assembler_for_operators_on_surfaces_utilities.hpp:34
Function to be used as a source term.
Definition: function.hpp:39
Builder of quadrature descriptor selectors.
Definition: numerical_quadrature_strategy.hpp:33
Quadrature strategy according to which integrals are evaluated by numerical quadrature.
Definition: numerical_quadrature_strategy.hpp:248
New-style options controlling quadrature accuracy.
Definition: accuracy_options.hpp:53
Definition: default_local_assembler_for_operators_on_surfaces_utilities.hpp:35
Family of quadrature rules over single elements.
Definition: numerical_quadrature_strategy.hpp:35
Family of quadrature rules over pairs of elements.
Definition: double_quadrature_rule_family.hpp:52
Definition: kernel_trial_integral.hpp:42
NumericalQuadratureStrategy()
Construct a numerical quadrature strategy.
Definition: numerical_quadrature_strategy_imp.hpp:298