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

Public Types

typedef ScalarTraits
< ResultType >::RealType 
CoordinateType
 
- Public Types inherited from Fiber::LocalAssemblerForIntegralOperators< ResultType >
typedef ScalarTraits
< ResultType >::RealType 
CoordinateType
 

Public Member Functions

 DefaultLocalAssemblerForIntegralOperatorsOnSurfaces (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< KernelType > > &kernel, const shared_ptr< const CollectionOfShapesetTransformations< CoordinateType > > &trialTransformations, const shared_ptr< const TestKernelTrialIntegral< BasisFunctionType, KernelType, ResultType > > &integral, const shared_ptr< const OpenClHandler > &openClHandler, const ParallelizationOptions &parallelizationOptions, VerbosityLevel::Level verbosityLevel, bool cacheSingularIntegrals, const shared_ptr< const QuadratureDescriptorSelectorForIntegralOperators< CoordinateType > > &quadDescSelector, const shared_ptr< const DoubleQuadratureRuleFamily< CoordinateType > > &quadRuleFamily)
 
virtual void evaluateLocalWeakForms (CallVariant callVariant, const std::vector< int > &elementIndicesA, int elementIndexB, LocalDofIndex localDofIndexB, std::vector< arma::Mat< ResultType > > &result, CoordinateType nominalDistance=-1.)
 Assemble local weak forms. More...
 
virtual void evaluateLocalWeakForms (const std::vector< int > &testElementIndices, const std::vector< int > &trialElementIndices, Fiber::_2dArray< arma::Mat< ResultType > > &result, CoordinateType nominalDistance=-1.)
 Assemble local weak forms. More...
 
virtual CoordinateType estimateRelativeScale (CoordinateType minDist) const
 Estimate how fast the entries in the matrix of this operator decay with interelement distance. More...
 

Member Function Documentation

template<typename BasisFunctionType , typename KernelType , typename ResultType , typename GeometryFactory >
DefaultLocalAssemblerForIntegralOperatorsOnSurfaces< BasisFunctionType, KernelType, ResultType, GeometryFactory >::CoordinateType Fiber::DefaultLocalAssemblerForIntegralOperatorsOnSurfaces< BasisFunctionType, KernelType, ResultType, GeometryFactory >::estimateRelativeScale ( CoordinateType  minDist) const
virtual

Estimate how fast the entries in the matrix of this operator decay with interelement distance.

This function should return a rough (!) estimate of the magnitude of the entries in the matrix of this operator associated with a pair of test and trial elements lying a distance minDist from each other, relative to the estimated magnitude of entries associated with coincident elements. If no good estimate can be given, the function can return 1.

Note
This function is called during ACA to detect block clusters on which the operator becomes very small and so can be safely approximated with 0.

Implements Fiber::LocalAssemblerForIntegralOperators< ResultType >.

template<typename BasisFunctionType , typename KernelType , typename ResultType, typename GeometryFactory >
void Fiber::DefaultLocalAssemblerForIntegralOperatorsOnSurfaces< BasisFunctionType, KernelType, ResultType, GeometryFactory >::evaluateLocalWeakForms ( CallVariant  callVariant,
const std::vector< int > &  elementIndicesA,
int  elementIndexB,
LocalDofIndex  localDofIndexB,
std::vector< arma::Mat< ResultType > > &  result,
CoordinateType  nominalDistance = -1. 
)
virtual

Assemble local weak forms.

In this overload, a "column" of local weak forms is assembled. More specifically, on exit result is a vector of local weak forms corresponding to the following pairs of elements:

  • if callVariant is TEST_TRIAL, all pairs (elementA, elementB) for elementA in elementsA;
  • if callVariant is TRIAL_TEST, all pairs (elementB, elementA) for elementA in elementsA.

Unless localDofIndexB is set to ALL_DOFS, only entries corresponding to the (localDofIndexB)th local DOF on elementB are calculated.

If nominalDistance is nonnegative, it is taken as the distance between all element pairs for the purposes of selecting the quadrature method. Otherwise the interelement distance is calculated separately for each element pair.

Implements Fiber::LocalAssemblerForIntegralOperators< ResultType >.

References Fiber::Shapeset< BasisFunctionType >::size().

template<typename BasisFunctionType , typename KernelType , typename ResultType, typename GeometryFactory >
void Fiber::DefaultLocalAssemblerForIntegralOperatorsOnSurfaces< BasisFunctionType, KernelType, ResultType, GeometryFactory >::evaluateLocalWeakForms ( const std::vector< int > &  testElementIndices,
const std::vector< int > &  trialElementIndices,
Fiber::_2dArray< arma::Mat< ResultType > > &  result,
CoordinateType  nominalDistance = -1. 
)
virtual

Assemble local weak forms.

This overload constructs and assigns to the output parameter result the 2D array of local weak forms corresponding to all pairs (testElement, trialElement) with testElement in testElementIndices and trialElement in trialElementIndices.

This function should be used primarily for small blocks of elements lying close to each other.

If nominalDistance is nonnegative, it is taken as the distance between all element pairs for the purposes of selecting the quadrature method. Otherwise the interelement distance is calculated separately for each element pair.

Implements Fiber::LocalAssemblerForIntegralOperators< ResultType >.

References Fiber::Shapeset< BasisFunctionType >::size().


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