BEM++
2.0
|
Base class for NumericalQuadratureStrategy. More...
#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/fiber/numerical_quadrature_strategy.hpp>
Public Types | |
typedef QuadratureStrategy < BasisFunctionType, ResultType, GeometryFactory, Enable > | Base |
typedef Base::CoordinateType | CoordinateType |
![]() | |
typedef Base::CoordinateType | CoordinateType |
![]() | |
typedef ScalarTraits < ResultType >::RealType | CoordinateType |
Public Member Functions | |
NumericalQuadratureStrategyBase (const shared_ptr< const QuadratureDescriptorSelectorFactory< BasisFunctionType > > &quadratureDescriptorSelectorFactory, const shared_ptr< const SingleQuadratureRuleFamily< CoordinateType > > &singleQuadratureRuleFamily, const shared_ptr< const DoubleQuadratureRuleFamily< CoordinateType > > &doubleQuadratureRuleFamily) | |
virtual std::auto_ptr < LocalAssemblerForLocalOperators < ResultType > > | makeAssemblerForIdentityOperators (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const OpenClHandler > &openClHandler) const |
virtual std::auto_ptr < LocalAssemblerForLocalOperators < ResultType > > | makeAssemblerForLocalOperators (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const TestTrialIntegral< BasisFunctionType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler) const |
![]() | |
std::auto_ptr < LocalAssemblerForIntegralOperators < ResultType > > | makeAssemblerForIntegralOperators (const shared_ptr< const GeometryFactory > &testGeometryFactory, const shared_ptr< const GeometryFactory > &trialGeometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &testRawGeometry, const shared_ptr< const RawGridGeometry< CoordinateType > > &trialRawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const CollectionOfKernels< ResultType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const TestKernelTrialIntegral< BasisFunctionType, ResultType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions, VerbosityLevel::Level verbosityLevel, bool cacheSingularIntegrals) const |
Allocate a Galerkin-mode local assembler for an integral operator with complex kernel. | |
std::auto_ptr < LocalAssemblerForGridFunctions < ResultType > > | makeAssemblerForGridFunctions (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const Function< ResultType > > &function, const shared_ptr< const OpenClHandler > &openClHandler) const |
Allocate a local assembler for calculations of the projections of complex-valued functions from a given space on a Fiber::Function. | |
std::auto_ptr < EvaluatorForIntegralOperators < ResultType > > | makeEvaluatorForIntegralOperators (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfKernels< ResultType > > &kernel, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const KernelTrialIntegral< BasisFunctionType, ResultType, ResultType > > &integral, const shared_ptr< const std::vector< std::vector< ResultType > > > &argumentLocalCoefficients, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions) const |
Allocate an evaluator for an integral operator with complex-valued kernel applied to a grid function. | |
std::auto_ptr < LocalAssemblerForPotentialOperators < ResultType > > | makeAssemblerForPotentialOperators (const arma::Mat< CoordinateType > &evaluationPoints, const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfKernels< ResultType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const KernelTrialIntegral< BasisFunctionType, ResultType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions, VerbosityLevel::Level verbosityLevel) const |
Allocate a local assembler for a potential operator with complex kernel. | |
![]() | |
std::auto_ptr < LocalAssemblerForIntegralOperators < ResultType > > | makeAssemblerForIntegralOperators (const shared_ptr< const GeometryFactory > &testGeometryFactory, const shared_ptr< const GeometryFactory > &trialGeometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &testRawGeometry, const shared_ptr< const RawGridGeometry< CoordinateType > > &trialRawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const CollectionOfKernels< CoordinateType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const TestKernelTrialIntegral< BasisFunctionType, CoordinateType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions, VerbosityLevel::Level verbosityLevel, bool cacheSingularIntegrals) const |
Allocate a Galerkin-mode local assembler for an integral operator with real kernel. | |
virtual std::auto_ptr < LocalAssemblerForLocalOperators < ResultType > > | makeAssemblerForIdentityOperators (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const OpenClHandler > &openClHandler) const =0 |
Allocate a Galerkin-mode local assembler for the identity operator. More... | |
virtual std::auto_ptr < LocalAssemblerForLocalOperators < ResultType > > | makeAssemblerForLocalOperators (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const TestTrialIntegral< BasisFunctionType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler) const =0 |
Allocate a Galerkin-mode local assembler for a local operator. | |
std::auto_ptr < LocalAssemblerForGridFunctions < ResultType > > | makeAssemblerForGridFunctions (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const Function< ResultType > > &function, const shared_ptr< const OpenClHandler > &openClHandler) const |
Allocate a local assembler for calculations of the projections of functions from a given space on a Fiber::Function. | |
std::auto_ptr < EvaluatorForIntegralOperators < ResultType > > | makeEvaluatorForIntegralOperators (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfKernels< CoordinateType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const KernelTrialIntegral< BasisFunctionType, CoordinateType, ResultType > > &integral, const shared_ptr< const std::vector< std::vector< ResultType > > > &argumentLocalCoefficients, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions) const |
Allocate an evaluator for an integral operator with real kernel applied to a grid function. | |
std::auto_ptr < LocalAssemblerForPotentialOperators < ResultType > > | makeAssemblerForPotentialOperators (const arma::Mat< CoordinateType > &evaluationPoints, const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfKernels< CoordinateType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const KernelTrialIntegral< BasisFunctionType, CoordinateType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions, VerbosityLevel::Level verbosityLevel) const |
Allocate a local assembler for a potential operator with real kernel. | |
Protected Member Functions | |
shared_ptr< const QuadratureDescriptorSelectorFactory < BasisFunctionType > > | quadratureDescriptorSelectorFactory () const |
shared_ptr< const SingleQuadratureRuleFamily < CoordinateType > > | singleQuadratureRuleFamily () const |
shared_ptr< const DoubleQuadratureRuleFamily < CoordinateType > > | doubleQuadratureRuleFamily () const |
Private Member Functions | |
virtual std::auto_ptr < LocalAssemblerForIntegralOperators < ResultType > > | makeAssemblerForIntegralOperatorsImplRealKernel (const shared_ptr< const GeometryFactory > &testGeometryFactory, const shared_ptr< const GeometryFactory > &trialGeometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &testRawGeometry, const shared_ptr< const RawGridGeometry< CoordinateType > > &trialRawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const CollectionOfKernels< CoordinateType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const TestKernelTrialIntegral< BasisFunctionType, CoordinateType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions, VerbosityLevel::Level verbosityLevel, bool cacheSingularIntegrals) const |
virtual std::auto_ptr < LocalAssemblerForGridFunctions < ResultType > > | makeAssemblerForGridFunctionsImplRealUserFunction (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &testTransformations, const shared_ptr< const Function< CoordinateType > > &function, const shared_ptr< const OpenClHandler > &openClHandler) const |
virtual std::auto_ptr < EvaluatorForIntegralOperators < ResultType > > | makeEvaluatorForIntegralOperatorsImplRealKernel (const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfKernels< CoordinateType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const KernelTrialIntegral< BasisFunctionType, CoordinateType, ResultType > > &integral, const shared_ptr< const std::vector< std::vector< ResultType > > > &argumentLocalCoefficients, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions) const |
virtual std::auto_ptr < LocalAssemblerForPotentialOperators < ResultType > > | makeAssemblerForPotentialOperatorsImplRealKernel (const arma::Mat< CoordinateType > &evaluationPoints, const shared_ptr< const GeometryFactory > &geometryFactory, const shared_ptr< const RawGridGeometry< CoordinateType > > &rawGeometry, const shared_ptr< const std::vector< const Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const CollectionOfKernels< CoordinateType > > &kernels, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const KernelTrialIntegral< BasisFunctionType, CoordinateType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions ¶llelizationOptions, VerbosityLevel::Level verbosityLevel) const |
Private Attributes | |
shared_ptr< const QuadratureDescriptorSelectorFactory < BasisFunctionType > > | m_quadratureDescriptorSelectorFactory |
shared_ptr< const SingleQuadratureRuleFamily < CoordinateType > > | m_singleQuadratureRuleFamily |
shared_ptr< const DoubleQuadratureRuleFamily < CoordinateType > > | m_doubleQuadratureRuleFamily |
Base class for NumericalQuadratureStrategy.
This is the base class of the default quadrature strategy available in BEM++. This quadrature strategy evaluates integrals by numerical quadrature.
The process of selecting a quadrature rule for the evaluation of a particular integral can be customized at different levels of generality. The choice of quadrature rule is done in two steps:
By default, NumericalQuadratureStrategy uses quadrature descriptor selectors being instances of the classes DefaultQuadratureDescriptorSelectorForIntegralOperators, DefaultQuadratureDescriptorSelectorForLocalOperators and DefaultQuadratureDescriptorSelectorForGridFunctions. You can make it use different selectors by passing a custom QuadratureDescriptorSelectorFactory object to the constructor of NumericalQuadratureStrategy.
The default quadrature descriptor selectors are customizable: you can control the choice of quadrature orders using an AccuracyOptionsEx options passed to another constructor of NumericalQuadratureStrategy.
By default, NumericalQuadratureStrategy uses the quadrature rule families being instances of DefaultDoubleQuadratureRuleFamily and DefaultSingleQuadratureRuleFamily. These use Gaussian quadrature for regular integrals and the Sauter-Schwab quadrature rules for singular integrals. If you wish, you can subclass DoubleQuadratureRuleFamily and/or SingleQuadratureRuleFamily and pass their instances to a NumericalQuadratureStrategy contructor.