BEM++
2.0
|
Identity operator. More...
#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/assembly/identity_operator.hpp>
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::CollectionOfShapesetTransformations | CollectionOfShapesetTransformations |
Type of the appropriate instantiation of Fiber::CollectionOfShapesetTransformations. 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... | |
![]() | |
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. | |
![]() | |
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 | |
IdentityOperator (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=AUTO_SYMMETRY) | |
Constructor. More... | |
virtual BEMPP_DEPRECATED shared_ptr< const AbstractBoundaryOperatorId > | id () const |
Return the identifier of this operator. More... | |
![]() | |
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. | |
![]() | |
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. | |
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 CollectionOfShapesetTransformations & | testTransformations () const |
Return the collection of test function transformations occurring in the weak form of this operator. | |
virtual const CollectionOfShapesetTransformations & | trialTransformations () const |
Return the collection of trial function transformations occurring in the weak form of this operator. | |
virtual const TestTrialIntegral & | integral () const |
Return an object representing the integral that is the weak form of this operator. More... | |
Private Attributes | |
shared_ptr< TestTrialIntegral > | m_integral |
shared_ptr< const AbstractBoundaryOperatorId > | m_id |
Related Functions | |
(Note that these are not member functions.) | |
template<typename BasisFunctionType , typename ResultType > | |
BoundaryOperator < BasisFunctionType, ResultType > | identityOperator (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=AUTO_SYMMETRY) |
Construct a BoundaryOperator object wrapping an IdentityOperator. More... | |
Additional Inherited Members | |
![]() | |
static std::string | uniqueLabel () |
Generate and return a new unique label "OpN", where N is a number. | |
![]() | |
virtual shared_ptr < DiscreteBoundaryOperator < ResultType_ > > | assembleWeakFormImpl (const Context< BasisFunctionType, ResultType > &context) const |
Assemble and return the operator's weak form. More... | |
![]() | |
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. | |
Identity operator.
Let and
be two function spaces defined on the same grid. If
, an instance of IdentityOperator with domain
and range
represents the orthogonal projection operator from
to
. If
, it represents the inclusion operator from
to
. In the special case of
, we have the standard identity operator. In BEM++ we (ab)use the term "identity
operator" to refer to all these three cases.
See AbstractBoundaryOperator for the documentation of the template parameters.
Use identityOperator() to create a BoundaryOperator object wrapping an identity operator.
typedef Base::BasisFunctionType Bempp::IdentityOperator< BasisFunctionType_, ResultType_ >::BasisFunctionType |
Type of the values of the (components of the) basis functions into which functions acted upon by the operator are expanded.
typedef Base::CollectionOfBasisTransformations Bempp::IdentityOperator< BasisFunctionType_, ResultType_ >::CollectionOfBasisTransformations |
Type of the appropriate instantiation of Fiber::CollectionOfBasisTransformations.
typedef Base::CollectionOfShapesetTransformations Bempp::IdentityOperator< BasisFunctionType_, ResultType_ >::CollectionOfShapesetTransformations |
Type of the appropriate instantiation of Fiber::CollectionOfShapesetTransformations.
typedef Base::CoordinateType Bempp::IdentityOperator< BasisFunctionType_, ResultType_ >::CoordinateType |
Type used to represent coordinates.
typedef Base::QuadratureStrategy Bempp::IdentityOperator< BasisFunctionType_, ResultType_ >::QuadratureStrategy |
Type of the appropriate instantiation of Fiber::QuadratureStrategy.
typedef Base::ResultType Bempp::IdentityOperator< BasisFunctionType_, ResultType_ >::ResultType |
Type used to represent elements of the weak form of the operator.
typedef Base::TestTrialIntegral Bempp::IdentityOperator< BasisFunctionType_, ResultType_ >::TestTrialIntegral |
Type of the appropriate instantiation of Fiber::TestTrialIntegral.
Bempp::IdentityOperator< BasisFunctionType, ResultType >::IdentityOperator | ( | 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 = AUTO_SYMMETRY |
||
) |
Constructor.
[in] | domain | Function space being the domain of the operator. |
[in] | range | Function space being the range of the operator. |
[in] | dualToRange | Function space dual to the the range of the operator. |
[in] | label | Textual label of the operator. If empty, a unique label is generated automatically. |
[in] | symmetry | Symmetry of the weak form of the operator. Can be any combination of the flags defined in the enumeration type Symmetry. If set to AUTO_SYMMETRY (default), the symmetry is determined automatically by checking whether its domain and space dual to its range are equal. If so, the operator is marked as Hermitian, and if the basis functions are real-valued, also as symmetric. |
All the three spaces must be defined on the same grid.
|
virtual |
Return the identifier of this operator.
Identity operators are treated as equivalent if they have the same domain, range and dual to range.
Reimplemented from Bempp::AbstractBoundaryOperator< BasisFunctionType_, ResultType_ >.
|
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_ >.
|
related |
Construct a BoundaryOperator object wrapping an IdentityOperator.
This convenience function constructs an abstract identity operator and wraps it in a BoundaryOperator object.
[in] | context | A Context object that will be used to build the weak form of the identity operator when necessary. |
[in] | domain | Function space being the domain of the identity operator. |
[in] | range | Function space being the range of the identity operator. |
[in] | dualToRange | Function space dual to the the range of the identity operator. |
[in] | label | Textual label of the identity operator (optional, used for debugging). |
[in] | symmetry | Symmetry of the weak form of the operator. Can be any combination of the flags defined in the enumeration type Symmetry. If set to AUTO_SYMMETRY (default), the symmetry is determined automatically by checking whether its domain and space dual to its range are equal. If so, the operator is marked as Hermitian, and if the basis functions are real-valued, also as symmetric. |
All the three spaces must be defined on the same grid.