Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
FEDD::BlockMatrix< SC, LO, GO, NO > Class Template Reference

Public Types

typedef Matrix< SC, LO, GO, NO > Matrix_Type
 
typedef Teuchos::RCP< Matrix_TypeMatrixPtr_Type
 
typedef Teuchos::RCP< const Matrix_TypeMatrixConstPtr_Type
 
typedef Matrix_Type::Map_Type Map_Type
 
typedef Matrix_Type::MapPtr_Type MapPtr_Type
 
typedef Matrix_Type::MapConstPtr_Type MapConstPtr_Type
 
typedef Matrix_Type::MultiVector_Type MultiVector_Type
 
typedef Matrix_Type::MultiVectorPtr_Type MultiVectorPtr_Type
 
typedef Matrix_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type
 
typedef BlockMultiVector< SC, LO, GO, NO > BlockMultiVector_Type
 
typedef Teuchos::RCP< BlockMultiVector_TypeBlockMultiVectorPtr_Type
 
typedef BlockMatrix< SC, LO, GO, NO > BlockMatrix_Type
 
typedef Teuchos::RCP< BlockMatrix_TypeBlockMatrixPtr_Type
 
typedef BlockMap< LO, GO, NO > BlockMap_Type
 
typedef Teuchos::RCP< BlockMap_TypeBlockMapPtr_Type
 
typedef Teuchos::Tuple< GO, 2 > GOTuple_Type
 
typedef Teuchos::Tuple< LO, 2 > LOTuple_Type
 

Public Member Functions

 BlockMatrix (UN size)
 
 BlockMatrix (BlockMatrixPtr_Type bMatrixIn)
 
int size () const
 
void resize (UN size)
 
MatrixPtr_Type getBlock (int i, int j)
 
MatrixConstPtr_Type getBlockConst (int i, int j) const
 
bool blockExists (int i, int j) const
 
void addBlock (const MatrixPtr_Type &matrix, int i, int j)
 
void merge ()
 
void mergeBlockNew (UN blockRow, UN blockCol)
 
void determineLocalOffsets ()
 
void determineGlobalOffsets ()
 
void print (Teuchos::EVerbosityLevel verbLevel=Teuchos::VERB_EXTREME)
 
void printMerge (Teuchos::EVerbosityLevel verbLevel=Teuchos::VERB_EXTREME)
 
void writeMM (std::string fN="blockMat") const
 
Teuchos::RCP< const Thyra::LinearOpBase< SC > > getThyraLinOp ()
 
Teuchos::RCP< const Thyra::BlockedLinearOpBase< SC > > getThyraLinBlockOp () const
 
void apply (const BlockMultiVector_Type &X, BlockMultiVector_Type &Y) const
 
void apply (const BlockMultiVector_Type &X, BlockMultiVector_Type &Y, const SmallMatrix< SC > &coeff) const
 
void addMatrix (const SmallMatrix< SC > &coeffAlpha, const BlockMatrixPtr_Type &matrix, const SmallMatrix< SC > &coeffbeta)
 
MatrixPtr_Type getMergedMatrix ()
 
BlockMapPtr_Type getMap ()
 

Protected Attributes

SmallMatrix< MatrixPtr_Type > blockMatrix_
 
BlockMapPtr_Type blockMap_
 
MatrixPtr_Type mergedMatrix_
 
MapPtr_Type mergedMap_
 
Teuchos::RCP< SmallMatrix< GOTuple_Type > > globalBlockOffsets_
 
Teuchos::RCP< SmallMatrix< LOTuple_Type > > localBlockOffsets_
 

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