BEM++  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
Bempp::DiscreteBoundaryOperatorSum< ValueType > Class Template Reference

Sum of discrete linear operators stored separately. More...

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

Inheritance diagram for Bempp::DiscreteBoundaryOperatorSum< ValueType >:
Bempp::DiscreteBoundaryOperator< ValueType >

Public Types

typedef
DiscreteBoundaryOperator
< ValueType > 
Base
 

Public Member Functions

 DiscreteBoundaryOperatorSum (const shared_ptr< const Base > &term1, const shared_ptr< const Base > &term2)
 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 shared_ptr< const
DiscreteBoundaryOperator
< ValueType > > 
asDiscreteAcaBoundaryOperator (double eps=-1, int maximumRank=-1, bool interleave=false) const
 Return a representation that can be cast to a DiscreteAcaBoundaryOperator. 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 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

virtual void applyBuiltInImpl (const TranspositionMode trans, const arma::Col< ValueType > &x_in, arma::Col< ValueType > &y_inout, const ValueType alpha, const ValueType beta) const
 

Additional Inherited Members

Detailed Description

template<typename ValueType>
class Bempp::DiscreteBoundaryOperatorSum< ValueType >

Sum of discrete linear operators stored separately.

Constructor & Destructor Documentation

template<typename ValueType >
Bempp::DiscreteBoundaryOperatorSum< ValueType >::DiscreteBoundaryOperatorSum ( const shared_ptr< const Base > &  term1,
const shared_ptr< const Base > &  term2 
)

Constructor.

Construct a discrete operator representing the sum of the operators term1 and term2.

Note
Both operators must be non-null and have identical dimensions, otherwise a std::invalid_argument exception is thrown.

Member Function Documentation

template<typename ValueType >
void Bempp::DiscreteBoundaryOperatorSum< ValueType >::addBlock ( const std::vector< int > &  rows,
const std::vector< int > &  cols,
const ValueType  alpha,
arma::Mat< ValueType > &  block 
) const
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.

Parameters
[in]rowsVector of row indices.
[in]colsVector of column indices.
[in]alphaMultiplier.
[in,out]blockOn 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 >.

template<typename ValueType >
shared_ptr< const DiscreteBoundaryOperator< ValueType > > Bempp::DiscreteBoundaryOperatorSum< ValueType >::asDiscreteAcaBoundaryOperator ( double  eps = -1,
int  maximumRank = -1,
bool  interleave = false 
) const
virtual

Return a representation that can be cast to a DiscreteAcaBoundaryOperator.

The conversion only succeeds if all members of the DiscreteBoundaryOperator itself can be cast to a DiscreteAcaBoundaryOperator or if it is a linear combination of DiscreteOperators that can be cast to type DiscreteAcaBoundaryOperator. Operator compositions are not yet supported by this function.

Parameters
[in]epsThe $\epsilon$ parameter controlling the accuracy of H-matrix addition in case this operation is needed to construct the H-matrix representation of the operator. If eps is negative (default), it is set to the smaller of the values of $\epsilon$ specified during the creation of the two H-matrices to be added.
[in]maximumRankMaximum rank of blocks to be considered low rank when adding two H-Matrices. If maximumRank is negative, it is set to the larger of the maximum ranks specified during the creation of the two H-matrices to be added.
Returns
A pointer to a DiscreteBoundaryOperator object castable to DiscreteAcaBoundaryOperator.
Note
This function throws an exception if BEM++ has been compiled without AHMED.

Reimplemented from Bempp::DiscreteBoundaryOperator< ValueType >.

template<typename ValueType >
arma::Mat< ValueType > Bempp::DiscreteBoundaryOperatorSum< ValueType >::asMatrix ( ) const
virtual

Matrix representation of the operator.

The default implementation is slow and should be overridden where possible.

Reimplemented from Bempp::DiscreteBoundaryOperator< ValueType >.


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