BEM++
2.0
|
Public Types | |
typedef Base::CoordinateType | CoordinateType |
typedef Base::BasisFunctionType | BasisFunctionType |
typedef Base::KernelType | KernelType |
typedef Base::ResultType | 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... | |
![]() | |
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 |
|
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
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_ >.