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

Discrete boundary operator representing the inverse of another operator and stored as a sparse LU decomposition. More...

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

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

Public Member Functions

 DiscreteInverseSparseBoundaryOperator (const shared_ptr< const Epetra_CrsMatrix > &mat, int symmetry=NO_SYMMETRY)
 
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
 

Related Functions

(Note that these are not member functions.)

template<typename ValueType >
shared_ptr< const
DiscreteBoundaryOperator
< ValueType > > 
discreteSparseInverse (const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &discreteOp)
 Construct a DiscreteInverseSparseBoundaryOperator representing the inverse of a given operator. More...
 

Detailed Description

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

Discrete boundary operator representing the inverse of another operator and stored as a sparse LU decomposition.

Constructor & Destructor Documentation

template<typename ValueType >
Bempp::DiscreteInverseSparseBoundaryOperator< ValueType >::DiscreteInverseSparseBoundaryOperator ( const shared_ptr< const Epetra_CrsMatrix > &  mat,
int  symmetry = NO_SYMMETRY 
)

Constructor.

Parameters
[in]matSparse matrix whose inverse will be represented by the newly constructed operator. Must not be null.
[in]symmetrySymmetry of the matrix. May be any combination of flags defined in the Symmetry enumeration type.

Member Function Documentation

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

Friends And Related Function Documentation

template<typename ValueType >
shared_ptr< const DiscreteBoundaryOperator< ValueType > > discreteSparseInverse ( const shared_ptr< const DiscreteBoundaryOperator< ValueType > > &  discreteOp)
related

Construct a DiscreteInverseSparseBoundaryOperator representing the inverse of a given operator.

This is a convenience function that returns a shared pointer to a new DiscreteInverseSparseBoundaryOperator object representing the inverse of discreteOp. The latter must be a DiscreteSparseBoundaryOperator, otherwise a std::bad_cast exception is thrown.

References Bempp::DiscreteSparseBoundaryOperator< ValueType >::castToSparse().


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