Reference documentation for deal.II version 8.5.1
Public Member Functions | Private Attributes | List of all members
BlockDiagonalMatrix< MatrixType > Class Template Reference

#include <deal.II/lac/block_matrix.h>

Inheritance diagram for BlockDiagonalMatrix< MatrixType >:
[legend]

Public Member Functions

 BlockDiagonalMatrix (const MatrixType &M, const unsigned int n_blocks)
 
template<typename number1 , typename number2 >
void vmult (BlockVector< number1 > &dst, const BlockVector< number2 > &src) const
 
template<typename number1 , typename number2 >
void Tvmult (BlockVector< number1 > &dst, const BlockVector< number2 > &src) const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

unsigned int num_blocks
 
SmartPointer< const MatrixType, BlockDiagonalMatrix< MatrixType > > matrix
 

Additional Inherited Members

- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, char *arg2, std::string &arg3)
 
static ::ExceptionBaseExcNoSubscriber (char *arg1, char *arg2)
 

Detailed Description

template<typename MatrixType>
class BlockDiagonalMatrix< MatrixType >

A matrix with several copies of the same block on the diagonal.

This matrix implements an m by m block matrix. Each diagonal block consists of the same (non-block) matrix, while off-diagonal blocks are void.

One special application is a one by one block matrix, allowing to apply the vmult of the original matrix (or preconditioner) to a block vector.

Deprecated:
If deal.II was configured with C++11 support, use the LinearOperator class instead, see the module on linear operators for further details.
See also
Block (linear algebra)
Author
Guido Kanschat, 2000

Definition at line 51 of file block_matrix.h.

Constructor & Destructor Documentation

◆ BlockDiagonalMatrix()

template<typename MatrixType >
BlockDiagonalMatrix< MatrixType >::BlockDiagonalMatrix ( const MatrixType &  M,
const unsigned int  n_blocks 
)

Constructor for an n_blocks by n_blocks matrix with diagonal blocks M.

Definition at line 90 of file block_matrix.h.

Member Function Documentation

◆ vmult()

template<typename MatrixType >
template<typename number1 , typename number2 >
void BlockDiagonalMatrix< MatrixType >::vmult ( BlockVector< number1 > &  dst,
const BlockVector< number2 > &  src 
) const

Matrix-vector-multiplication.

Definition at line 101 of file block_matrix.h.

◆ Tvmult()

template<typename MatrixType >
template<typename number1 , typename number2 >
void BlockDiagonalMatrix< MatrixType >::Tvmult ( BlockVector< number1 > &  dst,
const BlockVector< number2 > &  src 
) const

Transposed matrix-vector-multiplication.

Definition at line 117 of file block_matrix.h.

Member Data Documentation

◆ num_blocks

template<typename MatrixType >
unsigned int BlockDiagonalMatrix< MatrixType >::num_blocks
private

Number of blocks.

Definition at line 78 of file block_matrix.h.

◆ matrix

template<typename MatrixType >
SmartPointer<const MatrixType,BlockDiagonalMatrix<MatrixType> > BlockDiagonalMatrix< MatrixType >::matrix
private

Diagonal entry.

Definition at line 83 of file block_matrix.h.


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