17 #ifndef __deal2__petsc_block_sparse_matrix_h
18 #define __deal2__petsc_block_sparse_matrix_h
21 #include <deal.II/base/config.h>
23 #ifdef DEAL_II_WITH_PETSC
25 # include <deal.II/base/table.h>
26 # include <deal.II/lac/block_matrix_base.h>
27 # include <deal.II/lac/petsc_sparse_matrix.h>
28 # include <deal.II/lac/petsc_block_vector.h>
29 # include <deal.II/lac/exceptions.h>
86 typedef BaseClass::pointer pointer;
87 typedef BaseClass::const_pointer const_pointer;
88 typedef BaseClass::reference reference;
89 typedef BaseClass::const_reference const_reference;
90 typedef BaseClass::size_type size_type;
175 const size_type n_block_columns);
286 <<
"The blocks [" << arg1 <<
',' << arg2 <<
"] and ["
287 << arg3 <<
',' << arg4 <<
"] have differing row numbers.");
293 <<
"The blocks [" << arg1 <<
',' << arg2 <<
"] and ["
294 << arg3 <<
',' << arg4 <<
"] have differing column numbers.");
312 this->
block(r,c) = d;
398 DEAL_II_NAMESPACE_CLOSE
400 #endif // DEAL_II_WITH_PETSC
402 #endif // __deal2__petsc_block_sparse_matrix_h
void Tvmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
void vmult_block_block(BlockVectorType &dst, const BlockVectorType &src) const
void vmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
void Tvmult_block_nonblock(BlockVectorType &dst, const VectorType &src) const
unsigned int n_block_cols() const
BaseClass::BlockType BlockType
void vmult_block_nonblock(BlockVectorType &dst, const VectorType &src) const
DeclException4(ExcIncompatibleRowNumbers, int, int, int, int,<< "The blocks ["<< arg1<< ','<< arg2<< "] and ["<< arg3<< ','<< arg4<< "] have differing row numbers.")
BlockSparseMatrix & operator=(const BlockSparseMatrix &)
void vmult_nonblock_block(VectorType &dst, const BlockVectorType &src) const
#define Assert(cond, exc)
void vmult(BlockVector &dst, const BlockVector &src) const
BaseClass::value_type value_type
BlockType::value_type value_type
void Tvmult_nonblock_block(VectorType &dst, const BlockVectorType &src) const
void Tvmult_block_block(BlockVectorType &dst, const BlockVectorType &src) const
BlockType & block(const unsigned int row, const unsigned int column)
BlockMatrixBase< SparseMatrix > BaseClass
void reinit(const size_type n_block_rows, const size_type n_block_columns)
::ExceptionBase & ExcScalarAssignmentOnlyForZeroValue()
void Tvmult(BlockVector &dst, const BlockVector &src) const
unsigned int n_block_rows() const