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/lac/block_matrix_base.h> 25 # include <deal.II/lac/block_sparsity_pattern.h> 26 # include <deal.II/lac/exceptions.h> 27 # include <deal.II/lac/petsc_block_vector.h> 28 # include <deal.II/lac/petsc_sparse_matrix.h> 32 DEAL_II_NAMESPACE_OPEN
84 using pointer = BaseClass::pointer;
85 using const_pointer = BaseClass::const_pointer;
86 using reference = BaseClass::reference;
87 using const_reference = BaseClass::const_reference;
88 using size_type = BaseClass::size_type;
156 reinit(
const std::vector<IndexSet> & rows,
157 const std::vector<IndexSet> & cols,
159 const MPI_Comm & com);
166 reinit(
const std::vector<IndexSet> & sizes,
168 const MPI_Comm & com);
243 std::vector<IndexSet>
251 std::vector<IndexSet>
281 this->
block(r, c) = d;
354 DEAL_II_NAMESPACE_CLOSE
357 #endif // DEAL_II_WITH_PETSC 359 #endif // dealii_petsc_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
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
typename BlockType::value_type value_type
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
~BlockSparseMatrix() override=default
#define Assert(cond, exc)
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
unsigned int n_block_rows() const
const MPI_Comm & get_mpi_communicator() const