16 #ifndef dealii__petsc_block_sparse_matrix_h 17 #define dealii__petsc_block_sparse_matrix_h 20 #include <deal.II/base/config.h> 22 #ifdef DEAL_II_WITH_PETSC 24 # include <deal.II/base/table.h> 25 # include <deal.II/lac/block_matrix_base.h> 26 # include <deal.II/lac/petsc_sparse_matrix.h> 27 # include <deal.II/lac/petsc_block_vector.h> 28 # include <deal.II/lac/exceptions.h> 32 DEAL_II_NAMESPACE_OPEN
83 typedef BaseClass::pointer pointer;
84 typedef BaseClass::const_pointer const_pointer;
85 typedef BaseClass::reference reference;
86 typedef BaseClass::const_reference const_reference;
87 typedef BaseClass::size_type size_type;
142 const size_type n_block_columns);
238 <<
"The blocks [" << arg1 <<
',' << arg2 <<
"] and [" 239 << arg3 <<
',' << arg4 <<
"] have differing row numbers.");
245 <<
"The blocks [" << arg1 <<
',' << arg2 <<
"] and [" 246 << arg3 <<
',' << arg4 <<
"] have differing column numbers.");
264 this->
block(r,c) = d;
350 DEAL_II_NAMESPACE_CLOSE
352 #endif // DEAL_II_WITH_PETSC 354 #endif // dealii__petsc_block_sparse_matrix_h
void vmult_block_nonblock(BlockVectorType &dst, const VectorType &src) const
BlockSparseMatrix & operator=(const BlockSparseMatrix &)
void vmult(BlockVector &dst, const BlockVector &src) const
std::vector< size_type > locally_owned_domain_sizes() const
static ::ExceptionBase & ExcScalarAssignmentOnlyForZeroValue()
void vmult_nonblock_block(VectorType &dst, const BlockVectorType &src) const
void Tvmult_block_nonblock(BlockVectorType &dst, const VectorType &src) const
BaseClass::BlockType BlockType
void Tvmult_block_block(BlockVectorType &dst, const BlockVectorType &src) const
void Tvmult_nonblock_block(VectorType &dst, const BlockVectorType &src) const
void vmult_block_block(BlockVectorType &dst, const BlockVectorType &src) const
void Tvmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
static ::ExceptionBase & ExcIncompatibleRowNumbers(int arg1, int arg2, int arg3, int arg4)
void Tvmult(BlockVector &dst, const BlockVector &src) const
unsigned int n_block_cols() const
void reinit(const size_type n_block_rows, const size_type n_block_columns)
#define Assert(cond, exc)
BaseClass::value_type value_type
BlockType::value_type value_type
void vmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
BlockType & block(const unsigned int row, const unsigned int column)
BlockMatrixBase< SparseMatrix > BaseClass
#define DeclException4(Exception4, type1, type2, type3, type4, outsequence)
static ::ExceptionBase & ExcIncompatibleColNumbers(int arg1, int arg2, int arg3, int arg4)
std::vector< size_type > locally_owned_range_sizes() const
unsigned int n_block_rows() const