BEM++  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Public Member Functions | Private Types | List of all members
Fiber::TypicalTestScalarKernelTrialIntegralBase< BasisFunctionType_, KernelType_, ResultType_ > Class Template Reference
Inheritance diagram for Fiber::TypicalTestScalarKernelTrialIntegralBase< BasisFunctionType_, KernelType_, ResultType_ >:
Fiber::TestKernelTrialIntegral< BasisFunctionType_, KernelType_, ResultType_ > Fiber::TypicalTestScalarKernelTrialIntegral< BasisFunctionType_, KernelType_, ResultType_ >

Public Types

typedef Base::CoordinateType CoordinateType
 
typedef Base::BasisFunctionType BasisFunctionType
 
typedef Base::KernelType KernelType
 
typedef Base::ResultType ResultType
 
- Public Types inherited from Fiber::TestKernelTrialIntegral< BasisFunctionType_, KernelType_, ResultType_ >
typedef BasisFunctionType_ BasisFunctionType
 
typedef KernelType_ KernelType
 
typedef ResultType_ ResultType
 
typedef ScalarTraits
< ResultType >::RealType 
CoordinateType
 

Public Member Functions

virtual void addGeometricalDependencies (size_t &testGeomDeps, size_t &trialGeomDeps) const
 Retrieve types of geometrical data on which the integrand of this integral depends explicitly. More...
 
- Public Member Functions inherited from Fiber::TestKernelTrialIntegral< BasisFunctionType_, KernelType_, ResultType_ >
virtual ~TestKernelTrialIntegral ()
 Destructor.
 
virtual void evaluateWithTensorQuadratureRule (const GeometricalData< CoordinateType > &testGeomData, const GeometricalData< CoordinateType > &trialGeomData, const CollectionOf3dArrays< BasisFunctionType > &testTransformations, const CollectionOf3dArrays< BasisFunctionType > &trialTransformations, const CollectionOf4dArrays< KernelType > &kernels, const std::vector< CoordinateType > &testQuadWeights, const std::vector< CoordinateType > &trialQuadWeights, arma::Mat< ResultType > &result) const =0
 Evaluate the integral using a tensor-product quadrature rule. More...
 
virtual void evaluateWithNontensorQuadratureRule (const GeometricalData< CoordinateType > &testGeomData, const GeometricalData< CoordinateType > &trialGeomData, const CollectionOf3dArrays< BasisFunctionType > &testTransformations, const CollectionOf3dArrays< BasisFunctionType > &trialTransformations, const CollectionOf3dArrays< KernelType > &kernels, const std::vector< CoordinateType > &quadWeights, arma::Mat< ResultType > &result) const =0
 Evaluate the integral using a non-tensor-product quadrature rule. More...
 

Private Types

typedef
TestKernelTrialIntegral
< BasisFunctionType_,
KernelType_, ResultType_ > 
Base
 

Member Function Documentation

template<typename BasisFunctionType , typename KernelType , typename ResultType >
void Fiber::TypicalTestScalarKernelTrialIntegralBase< BasisFunctionType, KernelType, ResultType >::addGeometricalDependencies ( size_t &  testGeomDeps,
size_t &  trialGeomDeps 
) const
virtual

Retrieve types of geometrical data on which the integrand of this integral depends explicitly.

An implementation of this function for a particular integral should modify the testGeomDeps and trialGeomDeps bitfields by adding to them, using the bitwise OR operation, an appropriate combination of the flags defined in the enum GeometricalDataType.

For example, an integral whose integrand depends explicitly on the global coordinates of test and trial points and on the orientation of the vector normal to the trial element at trial points should modify the arguments as follows:

testGeomDeps |= GLOBALS;
trialGeomDeps |= GLOBALS | NORMALS;
Note
It is only necessary to modify testGeomDeps and trialGeomDeps if the geometric quantities occur in the integral outside any kernels or shape function transformations. For example, it is not necessary to add NORMALS to trialGeomDeps just because a weak form contains the double-layer-potential boundary operator, which requires the normal to the trial element. It is not necessary, either, to ever add the flag INTEGRATION_ELEMENTS as integration elements (see Bempp::Geometry::getIntegrationElements() for their definition) are automatically included in the list of geometrical data required by integrals.

Implements Fiber::TestKernelTrialIntegral< BasisFunctionType_, KernelType_, ResultType_ >.


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