From: Matthias Maier Date: Thu, 6 Apr 2017 20:42:14 +0000 (-0500) Subject: C++11 cleanup: Remove deprecated class ShiftedMatrix(|Generalized) X-Git-Tag: v9.0.0-rc1~1713^2~4 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d4da0f757cba618e0a3d2cd432374c5f6d35ab4;p=dealii.git C++11 cleanup: Remove deprecated class ShiftedMatrix(|Generalized) --- diff --git a/include/deal.II/lac/shifted_matrix.h b/include/deal.II/lac/shifted_matrix.h deleted file mode 100644 index 6cc0c69183..0000000000 --- a/include/deal.II/lac/shifted_matrix.h +++ /dev/null @@ -1,279 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2001 - 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__shifted_matrix_h -#define dealii__shifted_matrix_h - - -#include -#include - -DEAL_II_NAMESPACE_OPEN - -/*! @addtogroup Matrix2 - *@{ - */ - -/** - * Matrix with shifted diagonal values. - * - * Given a matrix A, this class implements a matrix-vector product - * with A+s I, where s is a provided shift parameter. - * - * @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. - * - * @author Guido Kanschat, 2000, 2001 - */ -template -class ShiftedMatrix -{ -public: - /** - * Constructor. Provide the base matrix and a shift parameter. - */ - ShiftedMatrix (const MatrixType &A, const double sigma); - - /** - * Set the shift parameter. - */ - void shift (const double sigma); - - /** - * Access to the shift parameter. - */ - double shift () const; - - /** - * Matrix-vector-product. - */ - template - void vmult (VectorType &dst, const VectorType &src) const; - - /** - * Residual. - */ - template - double residual (VectorType &dst, const VectorType &src, const VectorType &rhs) const; - -private: - /** - * Storage for base matrix. - */ - SmartPointer > A; - - /** - * Auxiliary vector. - */ - // VectorType aux; - /** - * Shift parameter. - */ - double sigma; -}; - - - -/** - * Matrix with shifted diagonal values with respect to a certain scalar - * product. - * - * Given a matrix A, this class implements a matrix-vector product - * with A+s M, where s is a provided shift parameter and - * M is the matrix representing the identity - * - * @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. - * - * @author Guido Kanschat, 2001 - */ -template -class ShiftedMatrixGeneralized -{ -public: - /** - * Constructor. Provide the base matrix and a shift parameter. - */ - ShiftedMatrixGeneralized (const MatrixType &A, - const MatrixType2 &M, - const double sigma); - - /** - * Set the shift parameter. - */ - void shift (const double sigma); - - /** - * Access to the shift parameter. - */ - double shift () const; - - /** - * Matrix-vector-product. - */ - void vmult (VectorType &dst, const VectorType &src) const; - - /** - * Residual. - */ - double residual (VectorType &dst, const VectorType &src, const VectorType &rhs) const; - -private: - /** - * Storage for base matrix. - */ - SmartPointer > A; - /** - * Storage for mass matrix. - */ - SmartPointer > M; - - /** - * Auxiliary vector. - */ - mutable VectorType aux; - - /** - * Shift parameter. - */ - double sigma; -}; - - -/*@}*/ -//--------------------------------------------------------------------------- - -template -inline -ShiftedMatrix::ShiftedMatrix (const MatrixType &A, - const double sigma) - : - A(&A), sigma(sigma) -{} - - - -template -inline void -ShiftedMatrix::shift (const double s) -{ - sigma = s; -} - - -template -inline double -ShiftedMatrix::shift () const -{ - return sigma; -} - - - -template -template -inline void -ShiftedMatrix::vmult (VectorType &dst, const VectorType &src) const -{ - A->vmult(dst, src); - if (sigma != 0.) - dst.add(sigma, src); -} - - -template -template -inline double -ShiftedMatrix::residual (VectorType &dst, - const VectorType &src, - const VectorType &rhs) const -{ - A->vmult(dst, src); - if (sigma != 0.) - dst.add(sigma, src); - dst.sadd(-1.,1.,rhs); - return dst.l2_norm (); -} - - -//--------------------------------------------------------------------------- -template -inline -ShiftedMatrixGeneralized -::ShiftedMatrixGeneralized (const MatrixType &A, - const MatrixType2 &M, - const double sigma) - : - A(&A), M(&M), sigma(sigma) -{} - - -template -inline void -ShiftedMatrixGeneralized::shift (const double s) -{ - sigma = s; -} - -template -inline double -ShiftedMatrixGeneralized::shift () const -{ - return sigma; -} - - -template -inline void -ShiftedMatrixGeneralized::vmult -(VectorType &dst, - const VectorType &src) const -{ - A->vmult(dst, src); - if (sigma != 0.) - { - aux.reinit(dst); - M->vmult(aux, src); - dst.add(sigma, aux); - } -} - - -template -inline double -ShiftedMatrixGeneralized::residual -(VectorType &dst, - const VectorType &src, - const VectorType &rhs) const -{ - A->vmult(dst, src); - if (sigma != 0.) - { - aux.reinit(dst); - M->vmult(aux, src); - dst.add(sigma, aux); - } - dst.sadd(-1.,1.,rhs); - return dst.l2_norm (); -} - - -DEAL_II_NAMESPACE_CLOSE - -#endif