From: Matthias Maier Date: Thu, 6 Apr 2017 21:14:04 +0000 (-0500) Subject: C++ cleanup: Remove TransposeMatrix X-Git-Tag: v9.0.0-rc1~1723^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04a365bc3c7facd3bc73fb328b47e445ee319931;p=dealii.git C++ cleanup: Remove TransposeMatrix --- diff --git a/include/deal.II/lac/transpose_matrix.h b/include/deal.II/lac/transpose_matrix.h deleted file mode 100644 index bfb4790480..0000000000 --- a/include/deal.II/lac/transpose_matrix.h +++ /dev/null @@ -1,208 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2002 - 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__transpose_matrix_h -#define dealii__transpose_matrix_h - - -#include -#include - -DEAL_II_NAMESPACE_OPEN - - -/** - * The transpose of a given matrix. This auxiliary class swaps the effect of - * vmult() and Tvmult() as well as vmult_add() and Tvmult_add(). - * - * The implementation is analogous to the class PointerMatrix. - * - * @note The transposed matrix is never actually assembled. Instead, only the - * matrix vector multiplication is performed in a transposed way. - * - * @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. - * - * @ingroup Matrix2 - * @author Guido Kanschat, 2006 - */ -template -class - TransposeMatrix : public PointerMatrixBase -{ -public: - /** - * Constructor. The pointer in the argument is stored in this class. As - * usual, the lifetime of *M must be longer than the one of the - * PointerMatrix. - * - * If M is zero, no matrix is stored. - */ - TransposeMatrix (const MatrixType *M=0); - - /** - * Constructor. The name argument is used to identify the SmartPointer for - * this object. - */ - TransposeMatrix(const char *name); - - /** - * Constructor. M points to a matrix which must live longer than - * the TransposeMatrix. The name argument is used to identify the - * SmartPointer for this object. - */ - TransposeMatrix(const MatrixType *M, - const char *name); - - // Use doc from base class - virtual void clear(); - - /** - * Return whether the object is empty. - */ - bool empty () const; - - /** - * Assign a new matrix pointer. Deletes the old pointer and releases its - * matrix. - * @see SmartPointer - */ - const TransposeMatrix &operator= (const MatrixType *M); - - /** - * Matrix-vector product. - */ - virtual void vmult (VectorType &dst, - const VectorType &src) const; - - /** - * Transposed matrix-vector product. - */ - virtual void Tvmult (VectorType &dst, - const VectorType &src) const; - - /** - * Matrix-vector product, adding to dst. - */ - virtual void vmult_add (VectorType &dst, - const VectorType &src) const; - - /** - * Transposed matrix-vector product, adding to dst. - */ - virtual void Tvmult_add (VectorType &dst, - const VectorType &src) const; - -private: - /** - * The pointer to the actual matrix. - */ - SmartPointer > m; -}; - - -//----------------------------------------------------------------------// - - -template -TransposeMatrix::TransposeMatrix (const MatrixType *M) - : m(M) -{} - - -template -TransposeMatrix::TransposeMatrix (const char *name) - : m(0, name) -{} - - -template -TransposeMatrix::TransposeMatrix (const MatrixType *M, - const char *name) - : m(M, name) -{} - - -template -inline void -TransposeMatrix::clear () -{ - m = 0; -} - - -template -inline const TransposeMatrix & -TransposeMatrix::operator= (const MatrixType *M) -{ - m = M; - return *this; -} - - -template -inline bool -TransposeMatrix::empty () const -{ - if (m == 0) - return true; - return m->empty(); -} - -template -inline void -TransposeMatrix::vmult (VectorType &dst, - const VectorType &src) const -{ - Assert (m != 0, ExcNotInitialized()); - m->Tvmult (dst, src); -} - - -template -inline void -TransposeMatrix::Tvmult (VectorType &dst, - const VectorType &src) const -{ - Assert (m != 0, ExcNotInitialized()); - m->vmult (dst, src); -} - - -template -inline void -TransposeMatrix::vmult_add (VectorType &dst, - const VectorType &src) const -{ - Assert (m != 0, ExcNotInitialized()); - m->Tvmult_add (dst, src); -} - - -template -inline void -TransposeMatrix::Tvmult_add (VectorType &dst, - const VectorType &src) const -{ - Assert (m != 0, ExcNotInitialized()); - m->vmult_add (dst, src); -} - - -DEAL_II_NAMESPACE_CLOSE - -#endif