BEM++
2.0
|
Complexified discrete boundary operator. More...
#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/assembly/complexified_discrete_boundary_operator.hpp>
Public Types | |
typedef DiscreteBoundaryOperator < std::complex< RealType > > | Base |
typedef std::complex< RealType > | ComplexType |
typedef ComplexType | ValueType |
Public Member Functions | |
ComplexifiedDiscreteBoundaryOperator (const shared_ptr< const DiscreteBoundaryOperator< RealType > > &op) | |
Constructor. | |
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 |
![]() | |
virtual | ~DiscreteBoundaryOperator () |
Destructor. | |
void | apply (const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< std::complex< RealType > > &x_in, const Thyra::Ptr< Thyra::MultiVectorBase< std::complex< RealType > > > &y_inout, const std::complex< RealType >alpha, const std::complex< RealType >beta) const |
Apply the linear operator to a multivector. More... | |
void | apply (const TranspositionMode trans, const arma::Mat< std::complex< RealType > > &x_in, arma::Mat< std::complex< RealType > > &y_inout, const std::complex< RealType >alpha, const std::complex< RealType >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 |
![]() | |
virtual void | applyImpl (const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< std::complex< RealType > > &X_in, const Teuchos::Ptr< Thyra::MultiVectorBase< std::complex< RealType > > > &Y_inout, const std::complex< RealType >alpha, const std::complex< RealType >beta) const |
Private Member Functions | |
virtual void | applyBuiltInImpl (const TranspositionMode trans, const arma::Col< ValueType > &x_in, arma::Col< ValueType > &y_inout, const ValueType alpha, const ValueType beta) const |
Complexified discrete boundary operator.
This class wraps a real-valued discrete boundary operator so that it can act on vectors with complex entries.
|
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< std::complex< RealType > >.
|
virtual |
Matrix representation of the operator.
The default implementation is slow and should be overridden where possible.
Reimplemented from Bempp::DiscreteBoundaryOperator< std::complex< RealType > >.