BEM++
2.0
|
Public Types | |
typedef ScalarTraits < ResultType >::RealType | CoordinateType |
![]() | |
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 ¶llelizationOptions, 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... | |
|
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.
Implements Fiber::LocalAssemblerForIntegralOperators< ResultType >.
|
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:
callVariant
is TEST_TRIAL
, all pairs (elementA
, elementB
) for elementA
in elementsA
;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().
|
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().