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::DiscreteBoundaryOperatorComposition< ValueType > Class Template Reference

Composition (product) of discrete linear operators stored separately. More...

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

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

Public Types

typedef
DiscreteBoundaryOperator
< ValueType > 
Base
 

Public Member Functions

 DiscreteBoundaryOperatorComposition (const shared_ptr< const Base > &outer, const shared_ptr< const Base > &inner)
 Constructor. 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...
 
virtual arma::Mat< ValueType > asMatrix () const
 Matrix representation of the operator. 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::DiscreteBoundaryOperatorComposition< ValueType >

Composition (product) of discrete linear operators stored separately.

Constructor & Destructor Documentation

template<typename ValueType >
Bempp::DiscreteBoundaryOperatorComposition< ValueType >::DiscreteBoundaryOperatorComposition ( const shared_ptr< const Base > &  outer,
const shared_ptr< const Base > &  inner 
)

Constructor.

Construct a discrete operator representing the product of the operators outer and inner (in this order).

Note
The operators must be non-null and have compatible dimensions (outer->columnCount() == inner->rowCount()), otherwise a std::invalid_argument exception is thrown.

Member Function Documentation

template<typename ValueType >
void Bempp::DiscreteBoundaryOperatorComposition< 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 >.


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