From: Matthias Maier Date: Thu, 6 Apr 2017 21:32:08 +0000 (-0500) Subject: C++11 cleanup, p8: Remove BlockDiagonalMatrix X-Git-Tag: v9.0.0-rc1~1725^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20b9057ed14f2449eb9816f8e31a86398d7d93f1;p=dealii.git C++11 cleanup, p8: Remove BlockDiagonalMatrix --- diff --git a/include/deal.II/lac/block_matrix.h b/include/deal.II/lac/block_matrix.h deleted file mode 100644 index fac76f86e4..0000000000 --- a/include/deal.II/lac/block_matrix.h +++ /dev/null @@ -1,132 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2000 - 2015 by the deal.II authors -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - -#ifndef dealii__block_matrix_h -#define dealii__block_matrix_h - - -#include -#include -#include -#include - -DEAL_II_NAMESPACE_OPEN - -/*! @addtogroup Matrix2 - *@{ - */ - -/** - * A matrix with several copies of the same block on the diagonal. - * - * This matrix implements an @p m by @p m block matrix. Each diagonal block - * consists of the same (non-block) matrix, while off-diagonal blocks are - * void. - * - * One special application is a one by one block matrix, allowing to apply the - * @p vmult of the original matrix (or preconditioner) to a block vector. - * - * @deprecated If deal.II was configured with C++11 support, use the - * LinearOperator class instead, see the module on - * @ref LAOperators "linear operators" - * for further details. - * - * @see - * @ref GlossBlockLA "Block (linear algebra)" - * @author Guido Kanschat, 2000 - */ -template -class BlockDiagonalMatrix : public Subscriptor -{ -public: - /** - * Constructor for an @p n_blocks by @p n_blocks matrix with diagonal blocks - * @p M. - */ - BlockDiagonalMatrix (const MatrixType &M, - const unsigned int n_blocks); - - /** - * Matrix-vector-multiplication. - */ - template - void vmult (BlockVector &dst, - const BlockVector &src) const; - - /** - * Transposed matrix-vector-multiplication. - */ - template - void Tvmult (BlockVector &dst, - const BlockVector &src) const; -private: - /** - * Number of blocks. - */ - unsigned int num_blocks; - - /** - * Diagonal entry. - */ - SmartPointer > matrix; -}; - -/*@}*/ -//--------------------------------------------------------------------------- - -template -BlockDiagonalMatrix::BlockDiagonalMatrix (const MatrixType &M, - const unsigned int num_blocks) - : - num_blocks (num_blocks), - matrix(&M) -{} - - -template -template -void -BlockDiagonalMatrix::vmult (BlockVector &dst, - const BlockVector &src) const -{ - Assert (dst.n_blocks()==num_blocks, - ExcDimensionMismatch(dst.n_blocks(),num_blocks)); - Assert (src.n_blocks()==num_blocks, - ExcDimensionMismatch(src.n_blocks(),num_blocks)); - - for (unsigned int i=0; ivmult (dst.block(i), src.block(i)); -} - - -template -template -void -BlockDiagonalMatrix::Tvmult (BlockVector &dst, - const BlockVector &src) const -{ - Assert (dst.n_blocks()==num_blocks, - ExcDimensionMismatch(dst.n_blocks(),num_blocks)); - Assert (src.n_blocks()==num_blocks, - ExcDimensionMismatch(src.n_blocks(),num_blocks)); - - for (unsigned int i=0; iTvmult (dst.block(i), src.block(i)); -} - - -DEAL_II_NAMESPACE_CLOSE - -#endif