16 #ifndef dealii_block_sparse_matrix_h 17 #define dealii_block_sparse_matrix_h 48 template <
typename number>
219 template <
typename block_number>
228 template <
typename block_number,
typename nonblock_number>
231 const Vector<nonblock_number> &src)
const;
237 template <
typename block_number,
typename nonblock_number>
239 vmult(Vector<nonblock_number> & dst,
246 template <
typename nonblock_number>
248 vmult(Vector<nonblock_number> &dst,
const Vector<nonblock_number> &src)
const;
255 template <
typename block_number>
264 template <
typename block_number,
typename nonblock_number>
267 const Vector<nonblock_number> &src)
const;
273 template <
typename block_number,
typename nonblock_number>
275 Tvmult(Vector<nonblock_number> & dst,
282 template <
typename nonblock_number>
284 Tvmult(Vector<nonblock_number> & dst,
285 const Vector<nonblock_number> &src)
const;
299 template <
class BlockVectorType>
302 const BlockVectorType &src,
303 const number omega = 1.)
const;
310 template <
typename number2>
313 const Vector<number2> &src,
314 const number omega = 1.)
const;
343 const unsigned int precision = 3,
344 const bool scientific =
true,
345 const unsigned int width = 0,
346 const char * zero_string =
" ",
347 const double denominator = 1.)
const;
377 template <
typename number>
392 template <
typename number>
393 template <
typename block_number>
403 template <
typename number>
404 template <
typename block_number,
typename nonblock_number>
407 const Vector<nonblock_number> &src)
const 414 template <
typename number>
415 template <
typename block_number,
typename nonblock_number>
425 template <
typename number>
426 template <
typename nonblock_number>
429 const Vector<nonblock_number> &src)
const 436 template <
typename number>
437 template <
typename block_number>
447 template <
typename number>
448 template <
typename block_number,
typename nonblock_number>
451 const Vector<nonblock_number> &src)
const 458 template <
typename number>
459 template <
typename block_number,
typename nonblock_number>
469 template <
typename number>
470 template <
typename nonblock_number>
473 const Vector<nonblock_number> &src)
const 480 template <
typename number>
481 template <
class BlockVectorType>
484 const BlockVectorType &src,
485 const number omega)
const 501 template <
typename number>
502 template <
typename number2>
505 const Vector<number2> &src,
506 const number omega)
const 512 ExcMessage(
"This function only works if the matrix has " 515 ExcMessage(
"This function only works if the matrix has " 526 #endif // dealii_block_sparse_matrix_h SmartPointer< const BlockSparsityPattern, BlockSparseMatrix< number > > sparsity_pattern
void vmult_block_nonblock(BlockVectorType &dst, const VectorType &src) const
types::global_dof_index size_type
const value_type & const_reference
virtual ~BlockSparseMatrix() override
static ::ExceptionBase & ExcScalarAssignmentOnlyForZeroValue()
typename BaseClass::const_pointer const_pointer
void vmult_nonblock_block(VectorType &dst, const BlockVectorType &src) const
MatrixIterator< BlockMatrixIterators::Accessor< BlockMatrixBase, true > > const_iterator
void Tvmult_block_nonblock(BlockVectorType &dst, const VectorType &src) const
void Tvmult(BlockVector< block_number > &dst, const BlockVector< block_number > &src) const
BlockSparseMatrix & operator=(const BlockSparseMatrix &)
void Tvmult_block_block(BlockVectorType &dst, const BlockVectorType &src) const
void Tvmult_nonblock_block(VectorType &dst, const BlockVectorType &src) const
const BlockSparsityPattern & get_sparsity_pattern() const
void vmult_block_block(BlockVectorType &dst, const BlockVectorType &src) const
typename BlockType::value_type value_type
void Tvmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
SparseMatrix< number > BlockType
unsigned int n_block_cols() const
static ::ExceptionBase & ExcMessage(std::string arg1)
typename BaseClass::BlockType BlockType
#define Assert(cond, exc)
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
#define DeclException0(Exception0)
#define DEAL_II_NAMESPACE_CLOSE
const value_type * const_pointer
std::size_t memory_consumption() const
typename BaseClass::size_type size_type
typename BaseClass::iterator iterator
size_type n_actually_nonzero_elements(const double threshold=0.0) const
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
typename BaseClass::reference reference
typename BaseClass::pointer pointer
static ::ExceptionBase & ExcNotQuadratic()
MatrixIterator< BlockMatrixIterators::Accessor< BlockMatrixBase, false > > iterator
BlockSparseMatrix()=default
void vmult_nonblock_nonblock(VectorType &dst, const VectorType &src) const
#define DEAL_II_NAMESPACE_OPEN
BlockType & block(const unsigned int row, const unsigned int column)
typename BaseClass::value_type value_type
size_type n_nonzero_elements() const
void precondition_Jacobi(Vector< somenumber > &dst, const Vector< somenumber > &src, const number omega=1.) const
typename BaseClass::const_iterator const_iterator
static ::ExceptionBase & ExcBlockDimensionMismatch()
virtual void reinit(const BlockSparsityPattern &sparsity)
void vmult(BlockVector< block_number > &dst, const BlockVector< block_number > &src) const
size_type get_row_length(const size_type row) const
unsigned int n_block_rows() const
void print_formatted(std::ostream &out, const unsigned int precision=3, const bool scientific=true, const unsigned int width=0, const char *zero_string=" ", const double denominator=1.) const
typename BaseClass::const_reference const_reference
void precondition_Jacobi(BlockVectorType &dst, const BlockVectorType &src, const number omega=1.) const