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

"Identity operator" for Maxwell equations in 3D. More...

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

Inheritance diagram for Bempp::Maxwell3dIdentityOperator< BasisFunctionType_, ResultType_ >:
Bempp::ElementaryLocalOperator< BasisFunctionType_, ResultType_ > Bempp::AbstractBoundaryOperator< BasisFunctionType_, 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
Base::CollectionOfBasisTransformations 
CollectionOfBasisTransformations
 Type of the appropriate instantiation of Fiber::CollectionOfBasisTransformations. More...
 
typedef Base::TestTrialIntegral TestTrialIntegral
 Type of the appropriate instantiation of Fiber::TestTrialIntegral. More...
 
- Public Types inherited from Bempp::ElementaryLocalOperator< BasisFunctionType_, ResultType_ >
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::CollectionOfShapesetTransformations
< CoordinateType
CollectionOfShapesetTransformations
 Type of the appropriate instantiation of Fiber::CollectionOfShapesetTransformations.
 
typedef
Fiber::CollectionOfShapesetTransformations
< CoordinateType
CollectionOfBasisTransformations
 Type of the appropriate instantiation of Fiber::CollectionOfBasisTransformations. More...
 
typedef
Fiber::TestTrialIntegral
< BasisFunctionType,
ResultType
TestTrialIntegral
 Type of the appropriate instantiation of Fiber::TestTrialIntegral.
 
- 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

 Maxwell3dIdentityOperator (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=NO_SYMMETRY)
 Constructor. More...
 
- Public Member Functions inherited from Bempp::ElementaryLocalOperator< BasisFunctionType_, ResultType_ >
 ElementaryLocalOperator (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 bool isLocal () const
 Return true.
 
- 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...
 
shared_ptr
< DiscreteBoundaryOperator
< ResultType_ > > 
assembleWeakForm (const Context< BasisFunctionType_, ResultType_ > &context) const
 Assemble and return the operator's weak form. More...
 

Private Types

typedef
ElementaryLocalOperator
< BasisFunctionType_,
ResultType_ > 
Base
 

Private Member Functions

virtual const
CollectionOfBasisTransformations
testTransformations () const
 Return the collection of test function transformations occurring in the weak form of this operator.
 
virtual const
CollectionOfBasisTransformations
trialTransformations () const
 Return the collection of trial function transformations occurring in the weak form of this operator.
 
virtual const TestTrialIntegralintegral () const
 Return an object representing the integral that is the weak form of this operator. More...
 

Related Functions

(Note that these are not member functions.)

template<typename BasisFunctionType , typename ResultType >
BoundaryOperator
< BasisFunctionType,
ResultType
maxwell3dIdentityOperator (const shared_ptr< const Context< BasisFunctionType, ResultType > > &context, 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=NO_SYMMETRY)
 Construct a BoundaryOperator object wrapping a Maxwell3dIdentityOperator. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Bempp::AbstractBoundaryOperator< BasisFunctionType_, ResultType_ >
static std::string uniqueLabel ()
 Generate and return a new unique label "OpN", where N is a number.
 
- Protected Member Functions inherited from Bempp::ElementaryLocalOperator< BasisFunctionType_, ResultType_ >
virtual shared_ptr
< DiscreteBoundaryOperator
< ResultType_ > > 
assembleWeakFormImpl (const Context< BasisFunctionType, ResultType > &context) const
 Assemble and return the operator's weak form. More...
 
- Protected Member Functions inherited from Bempp::AbstractBoundaryOperator< BasisFunctionType_, ResultType_ >
void collectDataForAssemblerConstruction (const AssemblyOptions &options, shared_ptr< Fiber::RawGridGeometry< CoordinateType > > &testRawGeometry, shared_ptr< Fiber::RawGridGeometry< CoordinateType > > &trialRawGeometry, shared_ptr< GeometryFactory > &testGeometryFactory, shared_ptr< GeometryFactory > &trialGeometryFactory, shared_ptr< std::vector< const Fiber::Shapeset< BasisFunctionType_ > * > > &testShapesets, shared_ptr< std::vector< const Fiber::Shapeset< BasisFunctionType_ > * > > &trialShapesets, shared_ptr< Fiber::OpenClHandler > &openClHandler, bool &cacheSingularIntegrals) const
 Given an AssemblyOptions object, construct objects necessary for subsequent local assembler construction.
 
void collectOptionsIndependentDataForAssemblerConstruction (shared_ptr< Fiber::RawGridGeometry< CoordinateType > > &testRawGeometry, shared_ptr< Fiber::RawGridGeometry< CoordinateType > > &trialRawGeometry, shared_ptr< GeometryFactory > &testGeometryFactory, shared_ptr< GeometryFactory > &trialGeometryFactory, shared_ptr< std::vector< const Fiber::Shapeset< BasisFunctionType_ > * > > &testShapesets, shared_ptr< std::vector< const Fiber::Shapeset< BasisFunctionType_ > * > > &trialShapesets) const
 Construct those objects necessary for subsequent local assembler construction that are independent from assembly options.
 
void collectOptionsDependentDataForAssemblerConstruction (const AssemblyOptions &options, const shared_ptr< Fiber::RawGridGeometry< CoordinateType > > &testRawGeometry, const shared_ptr< Fiber::RawGridGeometry< CoordinateType > > &trialRawGeometry, shared_ptr< Fiber::OpenClHandler > &openClHandler, bool &cacheSingularIntegrals) const
 Construct those objects necessary for subsequent local assembler construction that depend on assembly options.
 

Detailed Description

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

"Identity operator" for Maxwell equations in 3D.

This class represents an operator $I_{\mathrm{M}}$ whose weak form (under the standard inner product) is

\[ \langle \boldsymbol u, I_{\mathrm{M}} \boldsymbol v \rangle = \int_\Gamma \boldsymbol u^*(\boldsymbol x) \cdot [\boldsymbol v(\boldsymbol x) \times \boldsymbol n(\boldsymbol x)] \, \mathrm{d}\Gamma(\boldsymbol x), \]

where $\boldsymbol n(\boldsymbol x)$ is the outward unit vector normal to the surface $\Gamma$ at the point $\boldsymbol x$. Thus, the weak form of this operator is identical to the weak form of the standard identity operator under the antisymmetric pseudo-inner product $\langle \cdot, \cdot\rangle_{\boldsymbol\tau, \Gamma}$ defined in Maxwell equations in 3D.

See AbstractBoundaryOperator for the documentation of the template parameters.

Use the maxwell3dIdentityOperator() function to create a BoundaryOperator object wrapping a Maxwell3dIdentityOperator object.

Member Typedef Documentation

template<typename BasisFunctionType_, typename ResultType_>
typedef Base::BasisFunctionType Bempp::Maxwell3dIdentityOperator< 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::CollectionOfBasisTransformations Bempp::Maxwell3dIdentityOperator< BasisFunctionType_, ResultType_ >::CollectionOfBasisTransformations

Type of the appropriate instantiation of Fiber::CollectionOfBasisTransformations.

Deprecated:
This type is deprecated; use CollectionOfShapesetTransformations instead.
template<typename BasisFunctionType_, typename ResultType_>
typedef Base::CoordinateType Bempp::Maxwell3dIdentityOperator< BasisFunctionType_, ResultType_ >::CoordinateType

Type used to represent coordinates.

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

Type of the appropriate instantiation of Fiber::QuadratureStrategy.

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

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

template<typename BasisFunctionType_, typename ResultType_>
typedef Base::TestTrialIntegral Bempp::Maxwell3dIdentityOperator< BasisFunctionType_, ResultType_ >::TestTrialIntegral

Type of the appropriate instantiation of Fiber::TestTrialIntegral.

Constructor & Destructor Documentation

template<typename BasisFunctionType , typename ResultType >
Bempp::Maxwell3dIdentityOperator< BasisFunctionType, ResultType >::Maxwell3dIdentityOperator ( 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 = NO_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.

All the three spaces must be defined on the same grid.

Member Function Documentation

template<typename BasisFunctionType , typename ResultType >
const Maxwell3dIdentityOperator< BasisFunctionType, ResultType >::TestTrialIntegral & Bempp::Maxwell3dIdentityOperator< BasisFunctionType, ResultType >::integral ( ) const
privatevirtual

Return an object representing the integral that is the weak form of this operator.

Subclasses of TestTrialIntegral implement functions that evaluate the integral using the data provided by a pair of CollectionOfShapesetTransformations objects representing the test and trial function transformations occurring in the integrand.

Implements Bempp::ElementaryLocalOperator< BasisFunctionType_, ResultType_ >.

Friends And Related Function Documentation

template<typename BasisFunctionType , typename ResultType >
BoundaryOperator< BasisFunctionType, ResultType > maxwell3dIdentityOperator ( const shared_ptr< const Context< BasisFunctionType, ResultType > > &  context,
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 = NO_SYMMETRY 
)
related

Construct a BoundaryOperator object wrapping a Maxwell3dIdentityOperator.

This convenience function constructs an abstract Maxwell identity operator and wraps it in a BoundaryOperator object.

Parameters
[in]contextA Context object that will be used to build the weak form of the identity operator when necessary.
[in]domainFunction space being the domain of the identity operator.
[in]rangeFunction space being the range of the identity operator.
[in]dualToRangeFunction space dual to the the range of the identity operator.
[in]labelTextual label of the identity operator (optional, used for debugging).
[in]symmetrySymmetry of the weak form of the operator. Can be any combination of the flags defined in the enumeration type Symmetry.

All the three spaces must be defined on the same grid.


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