16 #ifndef dealii_petsc_parallel_block_sparse_matrix_h 17 #define dealii_petsc_parallel_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/block_sparsity_pattern.h> 27 # include <deal.II/lac/petsc_parallel_sparse_matrix.h> 28 # include <deal.II/lac/petsc_parallel_block_vector.h> 29 # include <deal.II/lac/exceptions.h> 32 DEAL_II_NAMESPACE_OPEN
85 typedef BaseClass::pointer pointer;
86 typedef BaseClass::const_pointer const_pointer;
87 typedef BaseClass::reference reference;
88 typedef BaseClass::const_reference const_reference;
89 typedef BaseClass::size_type size_type;
144 const size_type n_block_columns);
156 void reinit(
const std::vector<IndexSet> &rows,
157 const std::vector<IndexSet> &cols,
159 const MPI_Comm &com);
165 void reinit(
const std::vector<IndexSet> &sizes,
167 const MPI_Comm &com);
277 this->
block(r,c) = d;
366 DEAL_II_NAMESPACE_CLOSE
369 #endif // DEAL_II_WITH_PETSC 371 #endif // dealii_petsc_parallel_block_sparse_matrix_h void vmult_block_nonblock(BlockVectorType &dst, const VectorType &src) const
std::vector< IndexSet > locally_owned_domain_indices() 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
BlockMatrixBase< SparseMatrix > BaseClass
BlockSparseMatrix()=default
void Tvmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
unsigned int n_block_cols() const
void Tvmult(BlockVector &dst, const BlockVector &src) const
std::vector< IndexSet > locally_owned_range_indices() const
#define Assert(cond, exc)
BlockType::value_type value_type
BlockSparseMatrix & operator=(const BlockSparseMatrix &)
BaseClass::value_type value_type
void reinit(const size_type n_block_rows, const size_type n_block_columns)
void vmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
BlockType & block(const unsigned int row, const unsigned int column)
void vmult(BlockVector &dst, const BlockVector &src) const
~BlockSparseMatrix()=default
unsigned int n_block_rows() const
const MPI_Comm & get_mpi_communicator() const