|
BEM++
2.0
|
Transposed and/or conjugated discrete boundary operator. More...
#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/assembly/transposed_discrete_boundary_operator.hpp>
Public Types | |
|
typedef DiscreteBoundaryOperator < ValueType > | Base |
Public Member Functions | |
| TransposedDiscreteBoundaryOperator (TranspositionMode trans, const shared_ptr< const Base > &op) | |
| Constructor. More... | |
| virtual arma::Mat< ValueType > | asMatrix () const |
| Matrix representation of the operator. More... | |
| virtual unsigned int | rowCount () const |
| Number of rows of the operator. | |
| virtual unsigned int | columnCount () const |
| Number of columns of the operator. | |
| virtual void | addBlock (const std::vector< int > &rows, const std::vector< int > &cols, const ValueType alpha, arma::Mat< ValueType > &block) const |
| Add a subblock of this operator to a matrix. More... | |
|
virtual Teuchos::RCP< const Thyra::VectorSpaceBase < ValueType > > | domain () const |
|
virtual Teuchos::RCP< const Thyra::VectorSpaceBase < ValueType > > | range () const |
Public Member Functions inherited from Bempp::DiscreteBoundaryOperator< ValueType > | |
| virtual | ~DiscreteBoundaryOperator () |
| Destructor. | |
| void | apply (const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< ValueType > &x_in, const Thyra::Ptr< Thyra::MultiVectorBase< ValueType > > &y_inout, const ValueType alpha, const ValueType beta) const |
| Apply the linear operator to a multivector. More... | |
| void | apply (const TranspositionMode trans, const arma::Mat< ValueType > &x_in, arma::Mat< ValueType > &y_inout, const ValueType alpha, const ValueType beta) const |
| Apply the operator to a vector. More... | |
| virtual shared_ptr< const DiscreteBoundaryOperator > | asDiscreteAcaBoundaryOperator (double eps=-1, int maximumRank=-1, bool interleave=false) const |
| Return a representation that can be cast to a DiscreteAcaBoundaryOperator. More... | |
| virtual void | dump () const |
| Write a textual representation of the operator to standard output. More... | |
Protected Member Functions | |
| virtual bool | opSupportedImpl (Thyra::EOpTransp M_trans) const |
Protected Member Functions inherited from Bempp::DiscreteBoundaryOperator< ValueType > | |
| virtual void | applyImpl (const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< ValueType > &X_in, const Teuchos::Ptr< Thyra::MultiVectorBase< ValueType > > &Y_inout, const ValueType alpha, const ValueType beta) const |
Private Member Functions | |
| bool | isTransposed () const |
| virtual void | applyBuiltInImpl (const TranspositionMode trans, const arma::Col< ValueType > &x_in, arma::Col< ValueType > &y_inout, const ValueType alpha, const ValueType beta) const |
Private Attributes | |
| TranspositionMode | m_trans |
| shared_ptr< const Base > | m_operator |
Additional Inherited Members | |
Related Functions inherited from Bempp::DiscreteBoundaryOperator< ValueType > | |
| template<typename ValueType > | |
| shared_ptr< const DiscreteBoundaryOperator < ValueType > > | operator+ (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op) |
| Unary plus: return a copy of the argument. | |
| template<typename ValueType > | |
| shared_ptr< const DiscreteBoundaryOperator < ValueType > > | operator- (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op) |
| Return a shared pointer to a DiscreteBoundaryOperator representing the operand multiplied by -1. More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | operator+ (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op1, const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op2) |
| Return a shared pointer to a DiscreteBoundaryOperator representing the sum of the operands. More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | operator- (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op1, const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op2) |
| Return a shared pointer to a DiscreteBoundaryOperator representing the difference of the operands. More... | |
| template<typename ValueType , typename ScalarType > | |
| boost::enable_if< typename boost::mpl::has_key < boost::mpl::set< float, double, std::complex< float > , std::complex< double > >, ScalarType >, shared_ptr < DiscreteBoundaryOperator < ValueType > > >::type | operator* (ScalarType scalar, const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op) |
Return a shared pointer to a DiscreteBoundaryOperator representing the operator *op multiplied by scalar. More... | |
| template<typename ValueType , typename ScalarType > | |
| boost::enable_if< typename boost::mpl::has_key < boost::mpl::set< float, double, std::complex< float > , std::complex< double > >, ScalarType >, shared_ptr < DiscreteBoundaryOperator < ValueType > > >::type | operator* (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op, ScalarType scalar) |
Return a shared pointer to a DiscreteBoundaryOperator representing the operator *op multiplied by scalar. More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | operator* (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op1, const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op2) |
Return a shared pointer to a DiscreteBoundaryOperator representing a composition of operators, (*op1) * (*op2). More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | mul (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op1, const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op2) |
Return a shared pointer to a DiscreteBoundaryOperator representing a composition of operators, (*op1) * (*op2). More... | |
| template<typename ValueType , typename ScalarType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | operator/ (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op, ScalarType scalar) |
Return a shared pointer to a DiscreteBoundaryOperator representing the operator *op divided by scalar. More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | transpose (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op) |
Return a shared pointer to a DiscreteBoundaryOperator representing the transposed operator *op. More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | conjugate (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op) |
Return a shared pointer to a DiscreteBoundaryOperator representing the conjugated operator *op. More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | conjugateTranspose (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op) |
Return a shared pointer to a DiscreteBoundaryOperator representing the conjugate-transposed operator *op. More... | |
| template<typename ValueType > | |
| shared_ptr < DiscreteBoundaryOperator < ValueType > > | transpose (TranspositionMode trans, const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &op) |
Return a shared pointer to a DiscreteBoundaryOperator representing the transposed and/or conjugated (depending on the value of the argument trans) operator *op. More... | |
| template<typename RealType > | |
| shared_ptr < DiscreteBoundaryOperator < std::complex< RealType > > > | complexify (const shared_ptr< const DiscreteBoundaryOperator< RealType > > &op) |
Return a shared pointer to a DiscreteBoundaryOperator representing the "complexified" operator *op. More... | |
Transposed and/or conjugated discrete boundary operator.
This class represents a transposed, conjugated or conjugate-transposed discrete boundary operator scalar.
| Bempp::TransposedDiscreteBoundaryOperator< ValueType >::TransposedDiscreteBoundaryOperator | ( | TranspositionMode | trans, |
| const shared_ptr< const Base > & | op | ||
| ) |
Constructor.
Construct the discrete boundary operator representing the transpose, conjugate or conjugate transpose of the operator op.
References Bempp::CONJUGATE, Bempp::CONJUGATE_TRANSPOSE, Bempp::NO_TRANSPOSE, and Bempp::TRANSPOSE.
|
virtual |
Add a subblock of this operator to a matrix.
Perform the operation block += alpha * L[rows, cols], where block is a matrix, alpha a scalar and L[rows, cols] a subblock of this discrete linear operator.
| [in] | rows | Vector of row indices. |
| [in] | cols | Vector of column indices. |
| [in] | alpha | Multiplier. |
| [in,out] | block | On entry, matrix of size (rows.size(), cols.size()). On exit, each element (i, j) of this matrix will be augmented by the element (rows[i], cols[j]) of this operator, multiplied by alpha. |
Row and column indices may be unsorted.
This method need not be supported by all subclasses. It is mainly intended for internal use during weak-form assembly.
Implements Bempp::DiscreteBoundaryOperator< ValueType >.
|
virtual |
Matrix representation of the operator.
The default implementation is slow and should be overridden where possible.
Reimplemented from Bempp::DiscreteBoundaryOperator< ValueType >.
References Bempp::CONJUGATE, Bempp::CONJUGATE_TRANSPOSE, Bempp::NO_TRANSPOSE, and Bempp::TRANSPOSE.
1.8.5