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

Approximate LU decomposition of a H-matrix. More...

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

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

Public Types

typedef Fiber::ScalarTraits
< ValueType >::RealType 
MagnitudeType
 

Public Member Functions

 AcaApproximateLuInverse (const DiscreteAcaBoundaryOperator< ValueType > &fwdOp, MagnitudeType delta, VerbosityLevel::Level verbosityLevel=VerbosityLevel::DEFAULT)
 Construct an approximate LU decomposition of a H-matrix. 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
 
template<>
 AcaApproximateLuInverse (const DiscreteAcaBoundaryOperator< std::complex< float > > &fwdOp, MagnitudeType delta, VerbosityLevel::Level verbosityLevel)
 
- 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::AcaApproximateLuInverse< ValueType >

Approximate LU decomposition of a H-matrix.

Constructor & Destructor Documentation

template<typename ValueType >
Bempp::AcaApproximateLuInverse< ValueType >::AcaApproximateLuInverse ( const DiscreteAcaBoundaryOperator< ValueType > &  fwdOp,
MagnitudeType  delta,
VerbosityLevel::Level  verbosityLevel = VerbosityLevel::DEFAULT 
)

Construct an approximate LU decomposition of a H-matrix.

Parameters
[in]fwdOpOperator represented internally as a H-matrix.
[in]deltaRequested approximation accuracy (M. Bebendorf recommends delta = 0.1).

Member Function Documentation

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