BEM++  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Public Member Functions | Private Types | Private Member Functions | List of all members
Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ > Class Template Referenceabstract

Base class of ElementaryIntegralOperator, containing functionality independent from KernelType. More...

#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/assembly/elementary_integral_operator_base.hpp>

Inheritance diagram for Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >:
Bempp::AbstractBoundaryOperator< BasisFunctionType_, ResultType_ > Bempp::ElementaryIntegralOperator< BasisFunctionType_, KernelType_, ResultType_ > Bempp::ElementarySingularIntegralOperator< BasisFunctionType_, KernelType_, ResultType_ > Bempp::GeneralElementarySingularIntegralOperator< BasisFunctionType_, KernelType_, ResultType_ >

Public Types

typedef Base::BasisFunctionType BasisFunctionType
 Type of the values of the (components of the) basis functions into which functions acted upon by the operator are expanded. More...
 
typedef Base::ResultType ResultType
 Type used to represent elements of the weak form of the operator. More...
 
typedef Base::CoordinateType CoordinateType
 Type used to represent coordinates. More...
 
typedef Base::QuadratureStrategy QuadratureStrategy
 Type of the appropriate instantiation of Fiber::QuadratureStrategy. More...
 
typedef
Fiber::LocalAssemblerForIntegralOperators
< ResultType
LocalAssembler
 Type of the appropriate instantiation of Fiber::LocalAssemblerForOperators.
 
- Public Types inherited from Bempp::AbstractBoundaryOperator< BasisFunctionType_, ResultType_ >
typedef BasisFunctionType_ BasisFunctionType
 Type of the values of the (components of the) basis functions into which functions acted upon by the operator are expanded.
 
typedef ResultType_ ResultType
 Type used to represent elements of the weak form of the operator.
 
typedef ScalarTraits
< ResultType >::RealType 
CoordinateType
 Type used to represent coordinates.
 
typedef
Fiber::QuadratureStrategy
< BasisFunctionType,
ResultType, GeometryFactory
QuadratureStrategy
 Type of the appropriate instantiation of Fiber::QuadratureStrategy.
 

Public Member Functions

 ElementaryIntegralOperatorBase (const shared_ptr< const Space< BasisFunctionType > > &domain, const shared_ptr< const Space< BasisFunctionType > > &range, const shared_ptr< const Space< BasisFunctionType > > &dualToRange, const std::string &label, int symmetry)
 Constructor. More...
 
 ~ElementaryIntegralOperatorBase ()
 Destructor.
 
std::auto_ptr< LocalAssemblermakeAssembler (const QuadratureStrategy &quadStrategy, const shared_ptr< const GeometryFactory > &testGeometryFactory, const shared_ptr< const GeometryFactory > &trialGeometryFactory, const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &testRawGeometry, const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &trialRawGeometry, const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const Fiber::OpenClHandler > &openClHandler, const ParallelizationOptions &parallelizationOptions, VerbosityLevel::Level verbosityLevel, bool cacheSingularIntegrals) const
 Construct a local assembler suitable for this operator. More...
 
std::auto_ptr< LocalAssemblermakeAssembler (const QuadratureStrategy &quadStrategy, const AssemblyOptions &options) const
 Construct a local assembler suitable for this operator using a specified quadrature strategy. More...
 
shared_ptr
< DiscreteBoundaryOperator
< ResultType_ > > 
assembleWeakFormInternal (LocalAssembler &assembler, const Context< BasisFunctionType, ResultType > &context) const
 Assemble the operator's weak form using a specified local assembler. More...
 
- Public Member Functions inherited from Bempp::AbstractBoundaryOperator< BasisFunctionType_, ResultType_ >
 AbstractBoundaryOperator (const shared_ptr< const Space< BasisFunctionType > > &domain, const shared_ptr< const Space< BasisFunctionType > > &range, const shared_ptr< const Space< BasisFunctionType > > &dualToRange, const std::string &label, int symmetry)
 Constructor. More...
 
virtual ~AbstractBoundaryOperator ()
 Destructor.
 
virtual BEMPP_DEPRECATED
shared_ptr< const
AbstractBoundaryOperatorId
id () const
 Return the identifier of this operator. More...
 
shared_ptr< const Space
< BasisFunctionType > > 
domain () const
 Domain. More...
 
shared_ptr< const Space
< BasisFunctionType > > 
range () const
 Range. More...
 
shared_ptr< const Space
< BasisFunctionType > > 
dualToRange () const
 Dual to range. More...
 
std::string label () const
 Return the label of the operator.
 
int symmetry () const
 Return the symmetry properties of the operator. More...
 
virtual bool isLocal () const =0
 Return whether this operator is local. More...
 
shared_ptr
< DiscreteBoundaryOperator
< ResultType_ > > 
assembleWeakForm (const Context< BasisFunctionType_, ResultType_ > &context) const
 Assemble and return the operator's weak form. More...
 

Private Types

typedef
AbstractBoundaryOperator
< BasisFunctionType_,
ResultType_ > 
Base
 

Private Member Functions

virtual std::auto_ptr
< LocalAssembler
makeAssemblerImpl (const QuadratureStrategy &quadStrategy, const shared_ptr< const GeometryFactory > &testGeometryFactory, const shared_ptr< const GeometryFactory > &trialGeometryFactory, const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &testRawGeometry, const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &trialRawGeometry, const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &testShapesets, const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &trialShapesets, const shared_ptr< const Fiber::OpenClHandler > &openClHandler, const ParallelizationOptions &parallelizationOptions, VerbosityLevel::Level verbosityLevel, bool cacheSingularIntegrals) const =0
 Construct a local assembler suitable for this operator. More...
 
virtual shared_ptr
< DiscreteBoundaryOperator
< ResultType_ > > 
assembleWeakFormInternalImpl2 (LocalAssembler &assembler, const Context< BasisFunctionType_, ResultType_ > &options) const =0
 Assemble the operator's weak form using a specified local assembler. More...
 

Detailed Description

template<typename BasisFunctionType_, typename ResultType_>
class Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >

Base class of ElementaryIntegralOperator, containing functionality independent from KernelType.

Member Typedef Documentation

template<typename BasisFunctionType_, typename ResultType_>
typedef Base::BasisFunctionType Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >::BasisFunctionType

Type of the values of the (components of the) basis functions into which functions acted upon by the operator are expanded.

template<typename BasisFunctionType_, typename ResultType_>
typedef Base::CoordinateType Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >::CoordinateType

Type used to represent coordinates.

template<typename BasisFunctionType_, typename ResultType_>
typedef Base::QuadratureStrategy Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >::QuadratureStrategy

Type of the appropriate instantiation of Fiber::QuadratureStrategy.

template<typename BasisFunctionType_, typename ResultType_>
typedef Base::ResultType Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >::ResultType

Type used to represent elements of the weak form of the operator.

Constructor & Destructor Documentation

template<typename BasisFunctionType , typename ResultType >
Bempp::ElementaryIntegralOperatorBase< BasisFunctionType, ResultType >::ElementaryIntegralOperatorBase ( const shared_ptr< const Space< BasisFunctionType > > &  domain,
const shared_ptr< const Space< BasisFunctionType > > &  range,
const shared_ptr< const Space< BasisFunctionType > > &  dualToRange,
const std::string &  label,
int  symmetry 
)

Constructor.

Parameters
[in]domainFunction space being the domain of the operator.
[in]rangeFunction space being the range of the operator.
[in]dualToRangeFunction space dual to the the range of the operator.
[in]labelTextual label of the operator. If empty, a unique label is generated automatically.
[in]symmetrySymmetry of the weak form of the operator. Can be any combination of the flags defined in the enumeration type Symmetry.

None of the shared pointers may be null and the spaces range and dualToRange must be defined on the same grid, otherwise an exception is thrown.

Member Function Documentation

template<typename BasisFunctionType , typename ResultType >
shared_ptr< DiscreteBoundaryOperator< ResultType > > Bempp::ElementaryIntegralOperatorBase< BasisFunctionType, ResultType >::assembleWeakFormInternal ( LocalAssembler assembler,
const Context< BasisFunctionType, ResultType > &  context 
) const

Assemble the operator's weak form using a specified local assembler.

This function is intended for internal use of the library. End users should not need to call it directly. They should use AbstractBoundaryOperator::assembleWeakForm() instead.

template<typename BasisFunctionType_, typename ResultType_>
virtual shared_ptr<DiscreteBoundaryOperator<ResultType_> > Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >::assembleWeakFormInternalImpl2 ( LocalAssembler assembler,
const Context< BasisFunctionType_, ResultType_ > &  options 
) const
privatepure virtual

Assemble the operator's weak form using a specified local assembler.

This virtual function is invoked by assembleWeakFormInternal() to do the actual work.

Implemented in Bempp::ElementaryIntegralOperator< BasisFunctionType_, KernelType_, ResultType_ >, and Bempp::ElementaryIntegralOperator< BasisFunctionType, KernelType, ResultType >.

template<typename BasisFunctionType , typename ResultType >
std::auto_ptr< typename ElementaryIntegralOperatorBase< BasisFunctionType, ResultType >::LocalAssembler > Bempp::ElementaryIntegralOperatorBase< BasisFunctionType, ResultType >::makeAssembler ( const QuadratureStrategy quadStrategy,
const shared_ptr< const GeometryFactory > &  testGeometryFactory,
const shared_ptr< const GeometryFactory > &  trialGeometryFactory,
const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &  testRawGeometry,
const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &  trialRawGeometry,
const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &  testShapesets,
const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &  trialShapesets,
const shared_ptr< const Fiber::OpenClHandler > &  openClHandler,
const ParallelizationOptions parallelizationOptions,
VerbosityLevel::Level  verbosityLevel,
bool  cacheSingularIntegrals 
) const

Construct a local assembler suitable for this operator.

Parameters
[in]quadStrategyQuadrature strategy to be used to construct the assembler.

(TODO: finish description of the other parameters.)

template<typename BasisFunctionType , typename ResultType >
std::auto_ptr< typename ElementaryIntegralOperatorBase< BasisFunctionType, ResultType >::LocalAssembler > Bempp::ElementaryIntegralOperatorBase< BasisFunctionType, ResultType >::makeAssembler ( const QuadratureStrategy quadStrategy,
const AssemblyOptions options 
) const

Construct a local assembler suitable for this operator using a specified quadrature strategy.

Parameters
[in]quadStrategyQuadrature strategy to be used to construct the assembler.
[in]optionsAssembly options.

This is an overloaded function, provided for convenience. It automatically constructs most of the arguments required by the other overload.

References Bempp::AssemblyOptions::parallelizationOptions(), and Bempp::AssemblyOptions::verbosityLevel().

template<typename BasisFunctionType_, typename ResultType_>
virtual std::auto_ptr<LocalAssembler> Bempp::ElementaryIntegralOperatorBase< BasisFunctionType_, ResultType_ >::makeAssemblerImpl ( const QuadratureStrategy quadStrategy,
const shared_ptr< const GeometryFactory > &  testGeometryFactory,
const shared_ptr< const GeometryFactory > &  trialGeometryFactory,
const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &  testRawGeometry,
const shared_ptr< const Fiber::RawGridGeometry< CoordinateType > > &  trialRawGeometry,
const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &  testShapesets,
const shared_ptr< const std::vector< const Fiber::Shapeset< BasisFunctionType > * > > &  trialShapesets,
const shared_ptr< const Fiber::OpenClHandler > &  openClHandler,
const ParallelizationOptions parallelizationOptions,
VerbosityLevel::Level  verbosityLevel,
bool  cacheSingularIntegrals 
) const
privatepure virtual

Construct a local assembler suitable for this operator.

This function is invoked by both overloads of makeAssembler() to do the actual work.

Implemented in Bempp::ElementaryIntegralOperator< BasisFunctionType_, KernelType_, ResultType_ >, and Bempp::ElementaryIntegralOperator< BasisFunctionType, KernelType, ResultType >.


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