BEM++  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Fiber::SeparableNumericalTestKernelTrialIntegrator< BasisFunctionType, KernelType, ResultType, GeometryFactory > Class Template Reference

Integration over pairs of elements on tensor-product point grids. More...

#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/fiber/separable_numerical_test_kernel_trial_integrator.hpp>

Inheritance diagram for Fiber::SeparableNumericalTestKernelTrialIntegrator< BasisFunctionType, KernelType, ResultType, GeometryFactory >:
Fiber::TestKernelTrialIntegrator< BasisFunctionType, KernelType, ResultType >

Public Types

typedef
TestKernelTrialIntegrator
< BasisFunctionType,
KernelType, ResultType > 
Base
 
typedef Base::CoordinateType CoordinateType
 
typedef Base::ElementIndexPair ElementIndexPair
 
- Public Types inherited from Fiber::TestKernelTrialIntegrator< BasisFunctionType, KernelType, ResultType >
typedef ScalarTraits
< ResultType >::RealType 
CoordinateType
 
typedef std::pair< int, int > ElementIndexPair
 

Public Member Functions

 SeparableNumericalTestKernelTrialIntegrator (const arma::Mat< CoordinateType > &localTestQuadPoints, const arma::Mat< CoordinateType > &localTrialQuadPoints, const std::vector< CoordinateType > &testQuadWeights, const std::vector< CoordinateType > &trialQuadWeights, const GeometryFactory &testGeometryFactory, const GeometryFactory &trialGeometryFactory, const RawGridGeometry< CoordinateType > &testRawGeometry, const RawGridGeometry< CoordinateType > &trialRawGeometry, const CollectionOfShapesetTransformations< CoordinateType > &testTransformations, const CollectionOfKernels< KernelType > &kernels, const CollectionOfShapesetTransformations< CoordinateType > &trialTransformations, const TestKernelTrialIntegral< BasisFunctionType, KernelType, ResultType > &integral, const OpenClHandler &openClHandler, bool cacheGeometricalData=true)
 
virtual void integrate (CallVariant callVariant, const std::vector< int > &elementIndicesA, int elementIndexB, const Shapeset< BasisFunctionType > &basisA, const Shapeset< BasisFunctionType > &basisB, LocalDofIndex localDofIndexB, const std::vector< arma::Mat< ResultType > * > &result) const
 
virtual void integrate (const std::vector< ElementIndexPair > &elementIndexPairs, const Shapeset< BasisFunctionType > &testShapeset, const Shapeset< BasisFunctionType > &trialShapeset, const std::vector< arma::Mat< ResultType > * > &result) const
 

Private Member Functions

void integrateCpu (CallVariant callVariant, const std::vector< int > &elementIndicesA, int elementIndexB, const Shapeset< BasisFunctionType > &basisA, const Shapeset< BasisFunctionType > &basisB, LocalDofIndex localDofIndexB, const std::vector< arma::Mat< ResultType > * > &result) const
 
void integrateCl (CallVariant callVariant, const std::vector< int > &elementIndicesA, int elementIndexB, const Shapeset< BasisFunctionType > &basisA, const Shapeset< BasisFunctionType > &basisB, LocalDofIndex localDofIndexB, const std::vector< arma::Mat< ResultType > * > &result) const
 
void integrateCpu (const std::vector< ElementIndexPair > &elementIndexPairs, const Shapeset< BasisFunctionType > &testShapeset, const Shapeset< BasisFunctionType > &trialShapeset, const std::vector< arma::Mat< ResultType > * > &result) const
 
void integrateCl (const std::vector< ElementIndexPair > &elementIndexPairs, const Shapeset< BasisFunctionType > &testShapeset, const Shapeset< BasisFunctionType > &trialShapeset, const std::vector< arma::Mat< ResultType > * > &result) const
 
void precalculateGeometricalData ()
 
void precalculateGeometricalDataOnSingleGrid (const arma::Mat< CoordinateType > &localQuadPoints, const GeometryFactory &geometryFactory, const RawGridGeometry< CoordinateType > &rawGeometry, size_t geomDeps, std::vector< GeometricalData< CoordinateType > > &geomData)
 
const std::pair< const char
*, int > 
clStrIntegrateRowOrCol () const
 Returns an OpenCL code snippet containing the clIntegrate kernel function for integrating a single row or column.
 

Private Attributes

arma::Mat< CoordinateType > m_localTestQuadPoints
 
arma::Mat< CoordinateType > m_localTrialQuadPoints
 
std::vector< CoordinateType > m_testQuadWeights
 
std::vector< CoordinateType > m_trialQuadWeights
 
const GeometryFactory & m_testGeometryFactory
 
const GeometryFactory & m_trialGeometryFactory
 
const RawGridGeometry
< CoordinateType > & 
m_testRawGeometry
 
const RawGridGeometry
< CoordinateType > & 
m_trialRawGeometry
 
const
CollectionOfShapesetTransformations
< CoordinateType > & 
m_testTransformations
 
const CollectionOfKernels
< KernelType > & 
m_kernels
 
const
CollectionOfShapesetTransformations
< CoordinateType > & 
m_trialTransformations
 
const TestKernelTrialIntegral
< BasisFunctionType,
KernelType, ResultType > & 
m_integral
 
const OpenClHandlerm_openClHandler
 
bool m_cacheGeometricalData
 
std::vector< GeometricalData
< CoordinateType > > 
m_cachedTestGeomData
 
std::vector< GeometricalData
< CoordinateType > > 
m_cachedTrialGeomData
 
tbb::enumerable_thread_specific
< GeometricalData
< CoordinateType > > 
m_testGeomData
 
tbb::enumerable_thread_specific
< GeometricalData
< CoordinateType > > 
m_trialGeomData
 

Detailed Description

template<typename BasisFunctionType, typename KernelType, typename ResultType, typename GeometryFactory>
class Fiber::SeparableNumericalTestKernelTrialIntegrator< BasisFunctionType, KernelType, ResultType, GeometryFactory >

Integration over pairs of elements on tensor-product point grids.


The documentation for this class was generated from the following files: