16 #ifndef dealii__block_matrix_h 17 #define dealii__block_matrix_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/smartpointer.h> 23 #include <deal.II/lac/block_vector.h> 25 DEAL_II_NAMESPACE_OPEN
50 template <
typename MatrixType>
59 const unsigned int n_blocks);
64 template <
typename number1,
typename number2>
71 template <
typename number1,
typename number2>
89 template <
typename MatrixType>
91 const unsigned int num_blocks)
93 num_blocks (num_blocks),
98 template <
typename MatrixType>
99 template <
typename number1,
typename number2>
109 for (
unsigned int i=0; i<num_blocks; ++i)
114 template <
typename MatrixType>
115 template <
typename number1,
typename number2>
125 for (
unsigned int i=0; i<num_blocks; ++i)
130 DEAL_II_NAMESPACE_CLOSE
void vmult(BlockVector< number1 > &dst, const BlockVector< number2 > &src) const
BlockDiagonalMatrix(const MatrixType &M, const unsigned int n_blocks)
SmartPointer< const MatrixType, BlockDiagonalMatrix< MatrixType > > matrix
#define Assert(cond, exc)
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
void Tvmult(BlockVector< number1 > &dst, const BlockVector< number2 > &src) const
unsigned int n_blocks() const
BlockType & block(const unsigned int i)