]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Remove PointerMatrix* 9801/head
authorDaniel Arndt <arndtd@ornl.gov>
Wed, 1 Apr 2020 18:54:51 +0000 (14:54 -0400)
committerDaniel Arndt <arndtd@ornl.gov>
Fri, 3 Apr 2020 19:33:58 +0000 (15:33 -0400)
28 files changed:
doc/doxygen/headers/concepts.h
doc/news/changes/incompatibilities/20200402DanielArndt [new file with mode: 0644]
include/deal.II/lac/pointer_matrix.h [deleted file]
tests/bits/block_sparse_matrix_1.cc
tests/lac/pointer_matrix.cc [deleted file]
tests/lac/pointer_matrix.output [deleted file]
tests/lac/pointer_matrix_01.cc [deleted file]
tests/lac/pointer_matrix_01.output [deleted file]
tests/lac/pointer_matrix_02.cc [deleted file]
tests/lac/pointer_matrix_02.output [deleted file]
tests/lac/pointer_matrix_03.cc [deleted file]
tests/lac/pointer_matrix_03.output [deleted file]
tests/lac/pointer_matrix_04.cc [deleted file]
tests/lac/pointer_matrix_04.output [deleted file]
tests/lac/pointer_matrix_05.cc [deleted file]
tests/lac/pointer_matrix_05.output [deleted file]
tests/lac/pointer_matrix_06.cc [deleted file]
tests/lac/pointer_matrix_06.output [deleted file]
tests/lac/pointer_matrix_07.cc [deleted file]
tests/lac/pointer_matrix_07.output [deleted file]
tests/lac/pointer_matrix_08.cc [deleted file]
tests/lac/pointer_matrix_08.output [deleted file]
tests/lac/pointer_matrix_09.cc [deleted file]
tests/lac/pointer_matrix_09.output [deleted file]
tests/lac/pointer_matrix_10.cc [deleted file]
tests/lac/pointer_matrix_10.output [deleted file]
tests/lac/pointer_matrix_vector.cc [deleted file]
tests/lac/pointer_matrix_vector.output [deleted file]

index a0ace106552fadc33a6b5137fa184d66e3998cf9..56d278e0abc2575ceb3a7cb4df9e61a77d009ece 100644 (file)
  * Template functions in C++ cannot be virtual (which is the main reason why
  * this approach is not used in deal.II), so implementing this interface with
  * inheritance will not work, but it is still a good way to think about this
- * template concept. One can use the PointerMatrixAux class to implement
+ * template concept. One can use the LinearOperator class to implement
  * <code>vmult_add</code> and <code>Tvmult_add</code> instead of implementing
  * them manually.
  * </dd>
diff --git a/doc/news/changes/incompatibilities/20200402DanielArndt b/doc/news/changes/incompatibilities/20200402DanielArndt
new file mode 100644 (file)
index 0000000..43bd3d7
--- /dev/null
@@ -0,0 +1,5 @@
+Removed: The deprecated classes PointerMatrixBase, PointerMatrix,
+PointerMatrixVector and PointerMatrixAux and the related function
+new_pointer_matrix_base() have been removed. Use LinearOperator instead.
+<br>
+(Daniel Arndt, 2020/04/02)
diff --git a/include/deal.II/lac/pointer_matrix.h b/include/deal.II/lac/pointer_matrix.h
deleted file mode 100644 (file)
index 6f3d254..0000000
+++ /dev/null
@@ -1,959 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2002 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-#ifndef dealii_pointer_matrix_h
-#define dealii_pointer_matrix_h
-
-#include <deal.II/base/config.h>
-
-#include <deal.II/base/smartpointer.h>
-#include <deal.II/base/subscriptor.h>
-
-#include <deal.II/lac/vector.h>
-#include <deal.II/lac/vector_memory.h>
-
-DEAL_II_NAMESPACE_OPEN
-
-// Forward declarations
-#ifndef DOXYGEN
-template <typename VectorType>
-class VectorMemory;
-
-class IdentityMatrix;
-template <typename number>
-class FullMatrix;
-template <typename number>
-class LAPACKFullMatrix;
-template <typename number>
-class SparseMatrix;
-template <typename number>
-class BlockSparseMatrix;
-template <typename number>
-class SparseMatrixEZ;
-template <typename number>
-class BlockSparseMatrixEZ;
-template <typename number>
-class TridiagonalMatrix;
-template <typename number, typename BlockVectorType>
-class BlockMatrixArray;
-#endif
-
-/*! @addtogroup Matrix2
- *@{
- */
-
-/**
- * Abstract class for use in iterations.  This class provides the interface
- * required by LAC solver classes. It allows to use different concrete matrix
- * classes in the same context, as long as they apply to the same vector
- * class.
- *
- * @deprecated Use LinearOperator instead
- *
- * @author Guido Kanschat, 2000, 2001, 2002
- */
-template <typename VectorType>
-class DEAL_II_DEPRECATED PointerMatrixBase : public Subscriptor
-{
-public:
-  /**
-   * Value type of this matrix. since the matrix itself is unknown, we take
-   * the value type of the vector. Therefore, matrix entries must be
-   * convertible to vector entries.
-   *
-   * This was defined to make this matrix a possible template argument to
-   * BlockMatrixArray.
-   */
-  using value_type = typename VectorType::value_type;
-
-  /**
-   * Virtual destructor.  Does nothing except making sure that the destructor
-   * of any derived class is called whenever a pointer-to-base-class object is
-   * destroyed.
-   */
-  virtual ~PointerMatrixBase() override = default;
-
-  /**
-   * Reset the object to its original state.
-   */
-  virtual void
-  clear() = 0;
-
-  /**
-   * Matrix-vector product.
-   */
-  virtual void
-  vmult(VectorType &dst, const VectorType &src) const = 0;
-
-  /**
-   * Transposed matrix-vector product.
-   */
-  virtual void
-  Tvmult(VectorType &dst, const VectorType &src) const = 0;
-
-  /**
-   * Matrix-vector product, adding to <tt>dst</tt>.
-   */
-  virtual void
-  vmult_add(VectorType &dst, const VectorType &src) const = 0;
-
-  /**
-   * Transposed matrix-vector product, adding to <tt>dst</tt>.
-   */
-  virtual void
-  Tvmult_add(VectorType &dst, const VectorType &src) const = 0;
-};
-
-
-/**
- * A pointer to be used as a matrix.  This class stores a pointer to a matrix
- * and can be used as a matrix itself in iterative methods.
- *
- * The main purpose for the existence of this class is its base class, which
- * only has a vector as template argument. Therefore, this interface provides
- * an abstract base class for matrices.
- *
- * @deprecated Use LinearOperator instead
- *
- * @author Guido Kanschat 2000, 2001, 2002
- */
-template <typename MatrixType, typename VectorType>
-class DEAL_II_DEPRECATED PointerMatrix : public PointerMatrixBase<VectorType>
-{
-public:
-  /**
-   * Constructor.  The pointer in the argument is stored in this class. As
-   * usual, the lifetime of <tt>*M</tt> must be longer than the one of the
-   * PointerMatrix.
-   *
-   * If <tt>M</tt> is zero, no matrix is stored.
-   */
-  PointerMatrix(const MatrixType *M = nullptr);
-
-  /**
-   * Constructor.
-   *
-   * This class internally stores a pointer to a matrix via a SmartPointer
-   * object. The SmartPointer class allows to associate a name with the object
-   * pointed to that identifies the object that has the pointer, in order to
-   * identify objects that still refer to the object pointed to. The @p name
-   * argument to this function is used to this end, i.e., you can in essence
-   * assign a name to the current PointerMatrix object.
-   */
-  PointerMatrix(const char *name);
-
-  /**
-   * Constructor. <tt>M</tt> points to a matrix which must live longer than
-   * the PointerMatrix.
-   *
-   * This class internally stores a pointer to a matrix via a SmartPointer
-   * object. The SmartPointer class allows to associate a name with the object
-   * pointed to that identifies the object that has the pointer, in order to
-   * identify objects that still refer to the object pointed to. The @p name
-   * argument to this function is used to this end, i.e., you can in essence
-   * assign a name to the current PointerMatrix object.
-   */
-  PointerMatrix(const MatrixType *M, const char *name);
-
-  // Use doc from base class
-  virtual void
-  clear() override;
-
-  /**
-   * 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 PointerMatrix &
-  operator=(const MatrixType *M);
-
-  /**
-   * Matrix-vector product.
-   */
-  virtual void
-  vmult(VectorType &dst, const VectorType &src) const override;
-
-  /**
-   * Transposed matrix-vector product.
-   */
-  virtual void
-  Tvmult(VectorType &dst, const VectorType &src) const override;
-
-  /**
-   * Matrix-vector product, adding to <tt>dst</tt>.
-   */
-  virtual void
-  vmult_add(VectorType &dst, const VectorType &src) const override;
-
-  /**
-   * Transposed matrix-vector product, adding to <tt>dst</tt>.
-   */
-  virtual void
-  Tvmult_add(VectorType &dst, const VectorType &src) const override;
-
-private:
-  /**
-   * The pointer to the actual matrix.
-   */
-  SmartPointer<const MatrixType, PointerMatrix<MatrixType, VectorType>> m;
-};
-
-
-/**
- * A pointer to be used as a matrix.  This class stores a pointer to a matrix
- * and can be used as a matrix itself in iterative methods.
- *
- * The main purpose for the existence of this class is its base class, which
- * only has a vector as template argument. Therefore, this interface provides
- * an abstract base class for matrices.
- *
- * This class differs form PointerMatrix by its additional VectorMemory object
- * and by the fact that it implements the functions vmult_add() and
- * Tvmult_add() only using vmult() and Tvmult() of the MatrixType.
- *
- * @deprecated Use LinearOperator instead
- *
- * @author Guido Kanschat 2006
- */
-template <typename MatrixType, typename VectorType>
-class DEAL_II_DEPRECATED PointerMatrixAux : public PointerMatrixBase<VectorType>
-{
-public:
-  /**
-   * Constructor.  The pointer in the argument is stored in this class. As
-   * usual, the lifetime of <tt>*M</tt> must be longer than the one of the
-   * PointerMatrixAux.
-   *
-   * If <tt>M</tt> is zero, no matrix is stored.
-   *
-   * If <tt>mem</tt> is zero, then GrowingVectorMemory is used.
-   */
-  PointerMatrixAux(VectorMemory<VectorType> *mem = 0, const MatrixType *M = 0);
-
-  /**
-   * Constructor not using a matrix.
-   *
-   * This class internally stores a pointer to a matrix via a SmartPointer
-   * object. The SmartPointer class allows to associate a name with the object
-   * pointed to that identifies the object that has the pointer, in order to
-   * identify objects that still refer to the object pointed to. The @p name
-   * argument to this function is used to this end, i.e., you can in essence
-   * assign a name to the current PointerMatrix object.
-   */
-  PointerMatrixAux(VectorMemory<VectorType> *mem, const char *name);
-
-  /**
-   * Constructor. <tt>M</tt> points to a matrix which must live longer than
-   * the PointerMatrixAux.
-   *
-   * This class internally stores a pointer to a matrix via a SmartPointer
-   * object. The SmartPointer class allows to associate a name with the object
-   * pointed to that identifies the object that has the pointer, in order to
-   * identify objects that still refer to the object pointed to. The @p name
-   * argument to this function is used to this end, i.e., you can in essence
-   * assign a name to the current PointerMatrix object.
-   */
-  PointerMatrixAux(VectorMemory<VectorType> *mem,
-                   const MatrixType *        M,
-                   const char *              name);
-
-  // Use doc from base class
-  virtual void
-  clear() override;
-
-  /**
-   * Return whether the object is empty.
-   */
-  bool
-  empty() const;
-
-  /**
-   * Assign a new VectorMemory object for getting auxiliary vectors.
-   */
-  void
-  set_memory(VectorMemory<VectorType> *mem);
-
-  /**
-   * Assign a new matrix pointer. Deletes the old pointer and releases its
-   * matrix.
-   * @see SmartPointer
-   */
-  const PointerMatrixAux &
-  operator=(const MatrixType *M);
-
-  /**
-   * Matrix-vector product.
-   */
-  virtual void
-  vmult(VectorType &dst, const VectorType &src) const override;
-
-  /**
-   * Transposed matrix-vector product.
-   */
-  virtual void
-  Tvmult(VectorType &dst, const VectorType &src) const override;
-
-  /**
-   * Matrix-vector product, adding to <tt>dst</tt>.
-   */
-  virtual void
-  vmult_add(VectorType &dst, const VectorType &src) const override;
-
-  /**
-   * Transposed matrix-vector product, adding to <tt>dst</tt>.
-   */
-  virtual void
-  Tvmult_add(VectorType &dst, const VectorType &src) const override;
-
-private:
-  /**
-   * The backup memory if none was provided.
-   */
-  mutable GrowingVectorMemory<VectorType> my_memory;
-
-  /**
-   * Object for getting the auxiliary vector.
-   */
-  mutable SmartPointer<VectorMemory<VectorType>,
-                       PointerMatrixAux<MatrixType, VectorType>>
-    mem;
-
-  /**
-   * The pointer to the actual matrix.
-   */
-  SmartPointer<const MatrixType, PointerMatrixAux<MatrixType, VectorType>> m;
-};
-
-
-
-/**
- * Implement matrix multiplications for a vector using the PointerMatrixBase
- * functionality. Objects of this class can be used in block matrices.
- *
- * Implements a matrix with image dimension 1 by using the scalar product
- * (#vmult()) and scalar multiplication (#Tvmult()) functions of the Vector
- * class.
- *
- * @deprecated Use LinearOperator instead
- *
- * @author Guido Kanschat, 2006
- */
-template <typename number>
-class DEAL_II_DEPRECATED PointerMatrixVector
-  : public PointerMatrixBase<Vector<number>>
-{
-public:
-  /**
-   * Constructor.  The pointer in the argument is stored in this class. As
-   * usual, the lifetime of <tt>*M</tt> must be longer than the one of the
-   * PointerMatrix.
-   *
-   * If <tt>M</tt> is zero, no matrix is stored.
-   */
-  PointerMatrixVector(const Vector<number> *M = 0);
-
-  /**
-   * Constructor.
-   *
-   * This class internally stores a pointer to a matrix via a SmartPointer
-   * object. The SmartPointer class allows to associate a name with the object
-   * pointed to that identifies the object that has the pointer, in order to
-   * identify objects that still refer to the object pointed to. The @p name
-   * argument to this function is used to this end, i.e., you can in essence
-   * assign a name to the current PointerMatrix object.
-   */
-  PointerMatrixVector(const char *name);
-
-  /**
-   * Constructor. <tt>M</tt> points to a matrix which must live longer than
-   * the PointerMatrix.
-   *
-   * This class internally stores a pointer to a matrix via a SmartPointer
-   * object. The SmartPointer class allows to associate a name with the object
-   * pointed to that identifies the object that has the pointer, in order to
-   * identify objects that still refer to the object pointed to. The @p name
-   * argument to this function is used to this end, i.e., you can in essence
-   * assign a name to the current PointerMatrix object.
-   */
-  PointerMatrixVector(const Vector<number> *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 PointerMatrixVector &
-  operator=(const Vector<number> *M);
-
-  /**
-   * Matrix-vector product, actually the scalar product of <tt>src</tt> and
-   * the vector representing this matrix.
-   *
-   * The dimension of <tt>dst</tt> is 1, while that of <tt>src</tt> is the
-   * size of the vector representing this matrix.
-   */
-  virtual void
-  vmult(Vector<number> &dst, const Vector<number> &src) const;
-
-  /**
-   * Transposed matrix-vector product, actually the multiplication of the
-   * vector representing this matrix with <tt>src(0)</tt>.
-   *
-   * The dimension of <tt>src</tt> is 1, while that of <tt>dst</tt> is the
-   * size of the vector representing this matrix.
-   */
-  virtual void
-  Tvmult(Vector<number> &dst, const Vector<number> &src) const;
-
-  /**
-   * Matrix-vector product, adding to <tt>dst</tt>.
-   *
-   * The dimension of <tt>dst</tt> is 1, while that of <tt>src</tt> is the
-   * size of the vector representing this matrix.
-   */
-  virtual void
-  vmult_add(Vector<number> &dst, const Vector<number> &src) const;
-
-  /**
-   * Transposed matrix-vector product, adding to <tt>dst</tt>.
-   *
-   * The dimension of <tt>src</tt> is 1, while that of <tt>dst</tt> is the
-   * size of the vector representing this matrix.
-   */
-  virtual void
-  Tvmult_add(Vector<number> &dst, const Vector<number> &src) const;
-
-private:
-  /**
-   * The pointer to the actual matrix.
-   */
-  SmartPointer<const Vector<number>, PointerMatrixVector<number>> m;
-};
-
-
-
-/**
- * This function helps you creating a PointerMatrixBase object if you do not
- * want to provide the full template arguments of PointerMatrix or
- * PointerMatrixAux.
- *
- * Note that this function by default creates a PointerMatrixAux, emulating
- * the functions <tt>vmult_add</tt> and <tt>Tvmult_add</tt>, using an
- * auxiliary vector. It is overloaded for the library matrix classes
- * implementing these functions themselves. If you have such a class, you
- * should overload the function in order to save memory and time.
- *
- * The result is a PointerMatrixBase* pointing to <tt>matrix</tt>. The
- * <tt>VectorType</tt> argument is a dummy just used to determine the template
- * arguments.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrixAux
- */
-template <typename VectorType, typename MatrixType>
-inline PointerMatrixBase<VectorType> *
-new_pointer_matrix_base(MatrixType &matrix,
-                        const VectorType &,
-                        const char *name = "PointerMatrixAux")
-{
-  return new PointerMatrixAux<MatrixType, VectorType>(nullptr, &matrix, name);
-}
-
-/**
- * Specialized version for IdentityMatrix.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename numberv>
-PointerMatrixBase<Vector<numberv>> *
-new_pointer_matrix_base(const IdentityMatrix &matrix,
-                        const Vector<numberv> &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<IdentityMatrix, Vector<numberv>>(&matrix, name);
-}
-
-
-/**
- * Specialized version for FullMatrix.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename numberv, typename numberm>
-PointerMatrixBase<Vector<numberv>> *
-new_pointer_matrix_base(const FullMatrix<numberm> &matrix,
-                        const Vector<numberv> &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<FullMatrix<numberm>, Vector<numberv>>(&matrix, name);
-}
-
-
-/**
- * Specialized version for LAPACKFullMatrix.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename numberv, typename numberm>
-PointerMatrixBase<Vector<numberv>> *
-new_pointer_matrix_base(const LAPACKFullMatrix<numberm> &matrix,
-                        const Vector<numberv> &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<LAPACKFullMatrix<numberm>, Vector<numberv>>(&matrix,
-                                                                       name);
-}
-
-
-/**
- * Specialized version for SparseMatrix.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename numberv, typename numberm>
-PointerMatrixBase<Vector<numberv>> *
-new_pointer_matrix_base(const SparseMatrix<numberm> &matrix,
-                        const Vector<numberv> &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<SparseMatrix<numberm>, Vector<numberv>>(&matrix,
-                                                                   name);
-}
-
-
-/**
- * Specialized version for BlockSparseMatrix.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename VectorType, typename numberm>
-PointerMatrixBase<VectorType> *
-new_pointer_matrix_base(const BlockSparseMatrix<numberm> &matrix,
-                        const VectorType &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<BlockSparseMatrix<numberm>, VectorType>(&matrix,
-                                                                   name);
-}
-
-
-/**
- * Specialized version for SparseMatrixEZ.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename numberv, typename numberm>
-PointerMatrixBase<Vector<numberv>> *
-new_pointer_matrix_base(const SparseMatrixEZ<numberm> &matrix,
-                        const Vector<numberv> &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<SparseMatrixEZ<numberm>, Vector<numberv>>(&matrix,
-                                                                     name);
-}
-
-
-/**
- * Specialized version for BlockSparseMatrixEZ.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename VectorType, typename numberm>
-PointerMatrixBase<VectorType> *
-new_pointer_matrix_base(const BlockSparseMatrixEZ<numberm> &matrix,
-                        const VectorType &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<BlockSparseMatrixEZ<numberm>, VectorType>(&matrix,
-                                                                     name);
-}
-
-
-/**
- * Specialized version for BlockMatrixArray.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename numberv, typename numberm, typename BLOCK_VectorType>
-PointerMatrixBase<BLOCK_VectorType> *
-new_pointer_matrix_base(
-  const BlockMatrixArray<numberm, BLOCK_VectorType> &matrix,
-  const BLOCK_VectorType &,
-  const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<BlockMatrixArray<numberm, BLOCK_VectorType>,
-                           BlockVector<numberv>>(&matrix, name);
-}
-
-
-/**
- * Specialized version for TridiagonalMatrix.
- *
- * @relatesalso PointerMatrixBase @relatesalso PointerMatrix
- */
-template <typename numberv, typename numberm>
-PointerMatrixBase<Vector<numberv>> *
-new_pointer_matrix_base(const TridiagonalMatrix<numberm> &matrix,
-                        const Vector<numberv> &,
-                        const char *name = "PointerMatrix")
-{
-  return new PointerMatrix<TridiagonalMatrix<numberm>, Vector<numberv>>(&matrix,
-                                                                        name);
-}
-
-
-
-/*@}*/
-//---------------------------------------------------------------------------
-
-
-template <typename MatrixType, typename VectorType>
-PointerMatrix<MatrixType, VectorType>::PointerMatrix(const MatrixType *M)
-  : m(M, typeid(*this).name())
-{}
-
-
-template <typename MatrixType, typename VectorType>
-PointerMatrix<MatrixType, VectorType>::PointerMatrix(const char *name)
-  : m(nullptr, name)
-{}
-
-
-template <typename MatrixType, typename VectorType>
-PointerMatrix<MatrixType, VectorType>::PointerMatrix(const MatrixType *M,
-                                                     const char *      name)
-  : m(M, name)
-{}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrix<MatrixType, VectorType>::clear()
-{
-  m = nullptr;
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline const PointerMatrix<MatrixType, VectorType> &
-PointerMatrix<MatrixType, VectorType>::operator=(const MatrixType *M)
-{
-  m = M;
-  return *this;
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline bool
-PointerMatrix<MatrixType, VectorType>::empty() const
-{
-  if (m == nullptr)
-    return true;
-  return m->empty();
-}
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrix<MatrixType, VectorType>::vmult(VectorType &      dst,
-                                             const VectorType &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  m->vmult(dst, src);
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrix<MatrixType, VectorType>::Tvmult(VectorType &      dst,
-                                              const VectorType &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  m->Tvmult(dst, src);
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrix<MatrixType, VectorType>::vmult_add(VectorType &      dst,
-                                                 const VectorType &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  m->vmult_add(dst, src);
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrix<MatrixType, VectorType>::Tvmult_add(VectorType &      dst,
-                                                  const VectorType &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  m->Tvmult_add(dst, src);
-}
-
-
-
-//----------------------------------------------------------------------//
-
-
-template <typename MatrixType, typename VectorType>
-PointerMatrixAux<MatrixType, VectorType>::PointerMatrixAux(
-  VectorMemory<VectorType> *mem,
-  const MatrixType *        M)
-  : mem(mem, typeid(*this).name())
-  , m(M, typeid(*this).name())
-{
-  if (mem == 0)
-    mem = &my_memory;
-}
-
-
-template <typename MatrixType, typename VectorType>
-PointerMatrixAux<MatrixType, VectorType>::PointerMatrixAux(
-  VectorMemory<VectorType> *mem,
-  const char *              name)
-  : mem(mem, name)
-  , m(0, name)
-{
-  if (mem == 0)
-    mem = &my_memory;
-}
-
-
-template <typename MatrixType, typename VectorType>
-PointerMatrixAux<MatrixType, VectorType>::PointerMatrixAux(
-  VectorMemory<VectorType> *mem,
-  const MatrixType *        M,
-  const char *              name)
-  : mem(mem, name)
-  , m(M, name)
-{
-  if (mem == nullptr)
-    mem = &my_memory;
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrixAux<MatrixType, VectorType>::clear()
-{
-  m = nullptr;
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline const PointerMatrixAux<MatrixType, VectorType> &
-PointerMatrixAux<MatrixType, VectorType>::operator=(const MatrixType *M)
-{
-  m = M;
-  return *this;
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrixAux<MatrixType, VectorType>::set_memory(
-  VectorMemory<VectorType> *M)
-{
-  mem = M;
-  if (mem == 0)
-    mem = &my_memory;
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline bool
-PointerMatrixAux<MatrixType, VectorType>::empty() const
-{
-  if (m == 0)
-    return true;
-  return m->empty();
-}
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrixAux<MatrixType, VectorType>::vmult(VectorType &      dst,
-                                                const VectorType &src) const
-{
-  if (mem == nullptr)
-    mem = &my_memory;
-  Assert(mem != nullptr, ExcNotInitialized());
-  Assert(m != nullptr, ExcNotInitialized());
-  m->vmult(dst, src);
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrixAux<MatrixType, VectorType>::Tvmult(VectorType &      dst,
-                                                 const VectorType &src) const
-{
-  if (mem == nullptr)
-    mem = &my_memory;
-  Assert(mem != nullptr, ExcNotInitialized());
-  Assert(m != nullptr, ExcNotInitialized());
-  m->Tvmult(dst, src);
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrixAux<MatrixType, VectorType>::vmult_add(VectorType &      dst,
-                                                    const VectorType &src) const
-{
-  if (mem == nullptr)
-    mem = &my_memory;
-  Assert(mem != nullptr, ExcNotInitialized());
-  Assert(m != nullptr, ExcNotInitialized());
-  VectorType *v = mem->alloc();
-  v->reinit(dst);
-  m->vmult(*v, src);
-  dst += *v;
-  mem->free(v);
-}
-
-
-template <typename MatrixType, typename VectorType>
-inline void
-PointerMatrixAux<MatrixType, VectorType>::Tvmult_add(
-  VectorType &      dst,
-  const VectorType &src) const
-{
-  if (mem == nullptr)
-    mem = &my_memory;
-  Assert(mem != nullptr, ExcNotInitialized());
-  Assert(m != nullptr, ExcNotInitialized());
-  VectorType *v = mem->alloc();
-  v->reinit(dst);
-  m->Tvmult(*v, src);
-  dst += *v;
-  mem->free(v);
-}
-
-
-//----------------------------------------------------------------------//
-
-
-template <typename number>
-PointerMatrixVector<number>::PointerMatrixVector(const Vector<number> *M)
-  : m(M, typeid(*this).name())
-{}
-
-
-template <typename number>
-PointerMatrixVector<number>::PointerMatrixVector(const char *name)
-  : m(0, name)
-{}
-
-
-template <typename number>
-PointerMatrixVector<number>::PointerMatrixVector(const Vector<number> *M,
-                                                 const char *          name)
-  : m(M, name)
-{}
-
-
-template <typename number>
-inline void
-PointerMatrixVector<number>::clear()
-{
-  m = nullptr;
-}
-
-
-template <typename number>
-inline const PointerMatrixVector<number> &
-PointerMatrixVector<number>::operator=(const Vector<number> *M)
-{
-  m = M;
-  return *this;
-}
-
-
-template <typename number>
-inline bool
-PointerMatrixVector<number>::empty() const
-{
-  if (m == 0)
-    return true;
-  return m->empty();
-}
-
-template <typename number>
-inline void
-PointerMatrixVector<number>::vmult(Vector<number> &      dst,
-                                   const Vector<number> &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  Assert(dst.size() == 1, ExcDimensionMismatch(dst.size(), 1));
-
-  dst(0) = *m * src;
-}
-
-
-template <typename number>
-inline void
-PointerMatrixVector<number>::Tvmult(Vector<number> &      dst,
-                                    const Vector<number> &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  Assert(src.size() == 1, ExcDimensionMismatch(src.size(), 1));
-
-  dst.equ(src(0), *m);
-}
-
-
-template <typename number>
-inline void
-PointerMatrixVector<number>::vmult_add(Vector<number> &      dst,
-                                       const Vector<number> &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  Assert(dst.size() == 1, ExcDimensionMismatch(dst.size(), 1));
-
-  dst(0) += *m * src;
-}
-
-
-template <typename number>
-inline void
-PointerMatrixVector<number>::Tvmult_add(Vector<number> &      dst,
-                                        const Vector<number> &src) const
-{
-  Assert(m != nullptr, ExcNotInitialized());
-  Assert(src.size() == 1, ExcDimensionMismatch(src.size(), 1));
-
-  dst.add(src(0), *m);
-}
-
-
-DEAL_II_NAMESPACE_CLOSE
-
-#endif
index dca70439187257404576e5603dacd513df361f78..748b4898d931ed91caa8d43a07007c108d35b4b2 100644 (file)
@@ -31,7 +31,6 @@
 #include <deal.II/lac/block_sparsity_pattern.h>
 #include <deal.II/lac/block_vector.h>
 #include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
 #include <deal.II/lac/precondition.h>
 #include <deal.II/lac/solver_cg.h>
 #include <deal.II/lac/solver_control.h>
diff --git a/tests/lac/pointer_matrix.cc b/tests/lac/pointer_matrix.cc
deleted file mode 100644 (file)
index 770c5e2..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-// Test vmult and Tvmult of PointerMatrix
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-
-int
-main()
-{
-  initlog();
-
-  FullMatrix<double> A(5, 5);
-  unsigned int       k = 0;
-  for (unsigned int i = 0; i < A.m(); ++i)
-    for (unsigned int j = 0; j < A.n(); ++j)
-      A(i, j) = ++k;
-
-  PointerMatrix<FullMatrix<double>, Vector<double>> P(&A, "P");
-
-  Vector<double> x(5);
-  Vector<double> y(5);
-  Vector<double> y2(5);
-  Vector<double> diff(5);
-
-  for (unsigned int i = 0; i < x.size(); ++i)
-    {
-      x    = 0.;
-      x(i) = 1.;
-      A.vmult(y, x);
-      P.vmult(y2, x);
-      diff = y;
-      diff.add(-1., y2);
-      deallog << "P.vmult:  diff " << diff.l2_norm() << std::endl;
-
-      A.Tvmult(y, x);
-      P.Tvmult(y2, x);
-      diff = y;
-      diff.add(-1., y2);
-      deallog << "P.Tvmult: diff " << diff.l2_norm() << std::endl;
-    }
-}
diff --git a/tests/lac/pointer_matrix.output b/tests/lac/pointer_matrix.output
deleted file mode 100644 (file)
index ed5f77b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-
-DEAL::P.vmult:  diff 0.00000
-DEAL::P.Tvmult: diff 0.00000
-DEAL::P.vmult:  diff 0.00000
-DEAL::P.Tvmult: diff 0.00000
-DEAL::P.vmult:  diff 0.00000
-DEAL::P.Tvmult: diff 0.00000
-DEAL::P.vmult:  diff 0.00000
-DEAL::P.Tvmult: diff 0.00000
-DEAL::P.vmult:  diff 0.00000
-DEAL::P.Tvmult: diff 0.00000
diff --git a/tests/lac/pointer_matrix_01.cc b/tests/lac/pointer_matrix_01.cc
deleted file mode 100644 (file)
index 26aa2f5..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkConstructor1
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkConstructor1()
-{
-  deallog << "Init with empty matrix" << std::endl;
-  PointerMatrix<FullMatrix<number>, Vector<number>> P;
-  deallog << "Is matrix empty:" << P.empty() << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  checkConstructor1<double>();
-}
diff --git a/tests/lac/pointer_matrix_01.output b/tests/lac/pointer_matrix_01.output
deleted file mode 100644 (file)
index 29ff7b7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-DEAL::Init with empty matrix
-DEAL::Is matrix empty:1
diff --git a/tests/lac/pointer_matrix_02.cc b/tests/lac/pointer_matrix_02.cc
deleted file mode 100644 (file)
index 0358894..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkConstructor2
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkConstructor2(FullMatrix<number> &A)
-{
-  deallog << "Init with matrix A" << std::endl;
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A);
-  deallog << "Is matrix empty:" << P.empty() << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-
-  checkConstructor2<double>(A);
-}
diff --git a/tests/lac/pointer_matrix_02.output b/tests/lac/pointer_matrix_02.output
deleted file mode 100644 (file)
index 4b02719..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-DEAL::Init with matrix A
-DEAL::Is matrix empty:0
diff --git a/tests/lac/pointer_matrix_03.cc b/tests/lac/pointer_matrix_03.cc
deleted file mode 100644 (file)
index cd7aa3f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkConstructor3
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkConstructor3(char *name)
-{
-  deallog << "Init with matrix name" << std::endl;
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(name);
-  deallog << "Is matrix empty:" << P.empty() << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  char name[] = "Matrix A";
-
-  checkConstructor3<double>(name);
-}
diff --git a/tests/lac/pointer_matrix_03.output b/tests/lac/pointer_matrix_03.output
deleted file mode 100644 (file)
index b90ebcb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-DEAL::Init with matrix name
-DEAL::Is matrix empty:1
diff --git a/tests/lac/pointer_matrix_04.cc b/tests/lac/pointer_matrix_04.cc
deleted file mode 100644 (file)
index a5f0560..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkConstructor4
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkConstructor4(const FullMatrix<number> &A, char *name)
-{
-  deallog << "Init with matrix name and matrix" << std::endl;
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A, name);
-  deallog << "Is matrix empty:" << P.empty() << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-
-  char name[] = "Matrix A";
-
-  checkConstructor4<double>(A, name);
-}
diff --git a/tests/lac/pointer_matrix_04.output b/tests/lac/pointer_matrix_04.output
deleted file mode 100644 (file)
index eebc2cc..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-DEAL::Init with matrix name and matrix
-DEAL::Is matrix empty:0
diff --git a/tests/lac/pointer_matrix_05.cc b/tests/lac/pointer_matrix_05.cc
deleted file mode 100644 (file)
index 04b4065..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkVmult
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkVmult(FullMatrix<number> &A,
-           Vector<number> &    V,
-           const std::string & name = "Test Matrix")
-{
-  deallog << "vmult" << std::endl;
-
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A, name.c_str());
-  Vector<number>                                    O(A.m());
-  P.vmult(O, V);
-
-  // Check the dimensions of the result matrix
-  Assert(A.m() == O.size(), ExcInternalError());
-  deallog << "Dimensions of result vector verified" << std::endl;
-
-  // Verifying results with Method 2: O=A*V
-  Vector<number> O_(A.m());
-  A.vmult(O_, V);
-
-  Assert(O == O_, ExcInternalError());
-  deallog << "Result vector data verified" << std::endl;
-
-  for (unsigned int i = 0; i < O.size(); ++i)
-    deallog << O(i) << '\t';
-  deallog << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-
-  Vector<double> V(2);
-  V(0) = 1;
-  V(1) = 2;
-
-  checkVmult<double>(A, V);
-}
diff --git a/tests/lac/pointer_matrix_05.output b/tests/lac/pointer_matrix_05.output
deleted file mode 100644 (file)
index a867192..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-DEAL::vmult
-DEAL::Dimensions of result vector verified
-DEAL::Result vector data verified
-DEAL::8.0000   14.0000 
diff --git a/tests/lac/pointer_matrix_06.cc b/tests/lac/pointer_matrix_06.cc
deleted file mode 100644 (file)
index c34dc9b..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkTvmult
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkTvmult(FullMatrix<number> &A,
-            Vector<number> &    V,
-            const std::string & name = "Test Matrix")
-{
-  deallog << "Tvmult" << std::endl;
-
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A, name.c_str());
-  Vector<number>                                    O(A.m());
-  P.Tvmult(O, V);
-
-  // Check the dimensions of the result matrix
-  Assert(A.m() == O.size(), ExcInternalError());
-  deallog << "Dimensions of result vector verified" << std::endl;
-
-  // Verifying results with Method 2: O=A Transpose*V
-  Vector<number> O_(A.m());
-  A.Tvmult(O_, V);
-
-  Assert(O == O_, ExcInternalError());
-  deallog << "Result vector data verified" << std::endl;
-
-  for (unsigned int i = 0; i < O.size(); ++i)
-    deallog << O(i) << '\t';
-  deallog << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-
-  Vector<double> V(2);
-  V(0) = 1;
-  V(1) = 2;
-
-  checkTvmult<double>(A, V);
-}
diff --git a/tests/lac/pointer_matrix_06.output b/tests/lac/pointer_matrix_06.output
deleted file mode 100644 (file)
index 510a561..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-DEAL::Tvmult
-DEAL::Dimensions of result vector verified
-DEAL::Result vector data verified
-DEAL::10.0000  13.0000 
diff --git a/tests/lac/pointer_matrix_07.cc b/tests/lac/pointer_matrix_07.cc
deleted file mode 100644 (file)
index 395fc0e..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkTvmult_add
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkTvmult_add(FullMatrix<number> &A,
-                Vector<number> &    V,
-                const std::string & name = "Test Matrix")
-{
-  deallog << "Tvmult_add" << std::endl;
-
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A, name.c_str());
-
-  deallog << "Result vector set to all ones and to be added with result"
-          << std::endl;
-  Vector<number> O(V.size());
-  for (unsigned int i = 0; i < O.size(); ++i)
-    O(i) = 1;
-
-  P.Tvmult_add(O, V);
-
-  // Check the dimensions of the result matrix
-  Assert(A.m() == O.size(), ExcInternalError());
-  deallog << "Dimensions of result vector verified" << std::endl;
-
-  // Verifying results with Method 2: O=O+A Transpose*V
-  Vector<number> O_(V.size());
-  for (unsigned int i = 0; i < O_.size(); ++i)
-    O_(i) = 1;
-
-  A.Tvmult_add(O_, V);
-
-  Assert(O == O_, ExcInternalError());
-  deallog << "Result vector data verified" << std::endl;
-
-  for (unsigned int i = 0; i < O.size(); ++i)
-    deallog << O(i) << '\t';
-  deallog << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-
-  Vector<double> V(2);
-  V(0) = 1;
-  V(1) = 2;
-
-  checkTvmult_add<double>(A, V);
-}
diff --git a/tests/lac/pointer_matrix_07.output b/tests/lac/pointer_matrix_07.output
deleted file mode 100644 (file)
index 71e06a0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-
-DEAL::Tvmult_add
-DEAL::Result vector set to all ones and to be added with result
-DEAL::Dimensions of result vector verified
-DEAL::Result vector data verified
-DEAL::11.0000  14.0000 
diff --git a/tests/lac/pointer_matrix_08.cc b/tests/lac/pointer_matrix_08.cc
deleted file mode 100644 (file)
index 9c315cd..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkVmult_add
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkVmult_add(FullMatrix<number> &A,
-               Vector<number> &    V,
-               const std::string & name = "Test Matrix")
-{
-  deallog << "vmult_add" << std::endl;
-
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A, name.c_str());
-
-  deallog << "Result vector set to all ones and to be added with result"
-          << std::endl;
-  Vector<number> O(V.size());
-  for (unsigned int i = 0; i < O.size(); ++i)
-    O(i) = 1;
-
-  P.vmult_add(O, V);
-
-  // Check the dimensions of the result matrix
-  Assert(A.m() == O.size(), ExcInternalError());
-  deallog << "Dimensions of result vector verified" << std::endl;
-
-  // Verifying results with Method 2: O=O+A*V
-  Vector<number> O_(V.size());
-  for (unsigned int i = 0; i < O_.size(); ++i)
-    O_(i) = 1;
-
-  A.vmult_add(O_, V);
-
-  Assert(O == O_, ExcInternalError());
-  deallog << "Result vector data verified" << std::endl;
-
-  for (unsigned int i = 0; i < O.size(); ++i)
-    deallog << O(i) << '\t';
-  deallog << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-
-  Vector<double> V(2);
-  V(0) = 1;
-  V(1) = 2;
-
-  checkVmult_add<double>(A, V);
-}
diff --git a/tests/lac/pointer_matrix_08.output b/tests/lac/pointer_matrix_08.output
deleted file mode 100644 (file)
index 654ff7f..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-
-DEAL::vmult_add
-DEAL::Result vector set to all ones and to be added with result
-DEAL::Dimensions of result vector verified
-DEAL::Result vector data verified
-DEAL::9.0000   15.0000 
diff --git a/tests/lac/pointer_matrix_09.cc b/tests/lac/pointer_matrix_09.cc
deleted file mode 100644 (file)
index 70a643f..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkClear
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkClear(FullMatrix<number> &A)
-{
-  deallog << "clear" << std::endl;
-  deallog << "Init with matrix 1" << std::endl;
-
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A);
-
-  deallog << "Multiplying with all ones vector" << std::endl;
-  Vector<number> V(A.n());
-  for (unsigned int i = 0; i < V.size(); ++i)
-    V(i) = 1;
-
-  Vector<number> O(A.m());
-  P.vmult(O, V);
-
-  // Check the dimensions of the result vector
-  Assert(A.m() == O.size(), ExcInternalError());
-  deallog << "Dimensions of result vector verified" << std::endl;
-
-  // Verifying results with Method 2: O=A*V
-  Vector<number> O_(A.m());
-  A.vmult(O_, V);
-
-  Assert(O == O_, ExcInternalError());
-  deallog << "Result vector data verified" << std::endl;
-
-  for (unsigned int i = 0; i < O.size(); ++i)
-    deallog << O(i) << '\t';
-  deallog << std::endl;
-
-  deallog << "Clearing pointer matrix" << std::endl;
-  P.clear();
-
-  deallog << "Is matrix empty:" << P.empty() << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-
-  checkClear(A);
-}
diff --git a/tests/lac/pointer_matrix_09.output b/tests/lac/pointer_matrix_09.output
deleted file mode 100644 (file)
index 0455e79..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-DEAL::clear
-DEAL::Init with matrix 1
-DEAL::Multiplying with all ones vector
-DEAL::Dimensions of result vector verified
-DEAL::Result vector data verified
-DEAL::5.0000   9.0000  
-DEAL::Clearing pointer matrix
-DEAL::Is matrix empty:1
diff --git a/tests/lac/pointer_matrix_10.cc b/tests/lac/pointer_matrix_10.cc
deleted file mode 100644 (file)
index c54bdf5..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-// check PointerMatrix:checkAssign
-
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-template <typename number>
-void
-checkAssign(FullMatrix<number> &A, FullMatrix<number> &B)
-{
-  deallog << "=" << std::endl;
-  deallog << "Init with matrix 1" << std::endl;
-
-  PointerMatrix<FullMatrix<number>, Vector<number>> P(&A);
-
-  deallog << "Multiplying with all ones vector" << std::endl;
-  Vector<number> V(A.n());
-  for (unsigned int i = 0; i < V.size(); ++i)
-    V(i) = 1;
-
-  Vector<number> O(A.m());
-  P.vmult(O, V);
-
-  // Check the dimensions of the result vector
-  Assert(A.m() == O.size(), ExcInternalError());
-  deallog << "Dimensions of result vector verified" << std::endl;
-
-  // Verifying results with Method 2: O=A*V
-  Vector<number> O_(A.m());
-  A.vmult(O_, V);
-
-  Assert(O == O_, ExcInternalError());
-  deallog << "Result vector data verified" << std::endl;
-
-  for (unsigned int i = 0; i < O.size(); ++i)
-    deallog << O(i) << '\t';
-  deallog << std::endl;
-
-  deallog << "Clearing pointer matrix" << std::endl;
-  P.clear();
-
-  deallog << "Is matrix empty:" << P.empty() << std::endl;
-
-  deallog << "Assigning pointer matrix to matrix 2" << std::endl;
-
-  P = &B;
-
-  deallog << "Multiplying with all ones vector" << std::endl;
-  Vector<number> V_(B.n());
-  for (unsigned int i = 0; i < V_.size(); ++i)
-    V_(i) = 1;
-
-  Vector<number> OU(B.m());
-  P.vmult(OU, V_);
-
-  // Check the dimensions of the result vector
-  Assert(B.m() == OU.size(), ExcInternalError());
-  deallog << "Dimensions of result vector verified" << std::endl;
-
-  // Verifying results with Method 2: O=B*V
-  Vector<number> OU_(B.m());
-  B.vmult(OU_, V_);
-
-  Assert(OU == OU_, ExcInternalError());
-  deallog << "Result vector data verified" << std::endl;
-
-  for (unsigned int i = 0; i < OU.size(); ++i)
-    deallog << OU(i) << '\t';
-  deallog << std::endl;
-}
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  deallog << std::fixed;
-  deallog << std::setprecision(4);
-  deallog.attach(logfile);
-
-  const double Adata[] = {2, 3, 4, 5};
-
-  const double Bdata[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
-
-  FullMatrix<double> A(2, 2);
-  A.fill(Adata);
-  FullMatrix<double> B(3, 3);
-  B.fill(Bdata);
-
-  checkAssign(A, B);
-}
diff --git a/tests/lac/pointer_matrix_10.output b/tests/lac/pointer_matrix_10.output
deleted file mode 100644 (file)
index 6b39ca3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-DEAL::=
-DEAL::Init with matrix 1
-DEAL::Multiplying with all ones vector
-DEAL::Dimensions of result vector verified
-DEAL::Result vector data verified
-DEAL::5.0000   9.0000  
-DEAL::Clearing pointer matrix
-DEAL::Is matrix empty:1
-DEAL::Assigning pointer matrix to matrix 2
-DEAL::Multiplying with all ones vector
-DEAL::Dimensions of result vector verified
-DEAL::Result vector data verified
-DEAL::6.0000   15.0000 24.0000 
diff --git a/tests/lac/pointer_matrix_vector.cc b/tests/lac/pointer_matrix_vector.cc
deleted file mode 100644 (file)
index 39a8d5a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-// Test vmult and Tvmult of PointerMatrixVector
-
-#include <deal.II/lac/pointer_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include "../tests.h"
-
-
-int
-main()
-{
-  initlog();
-
-  Vector<double> u(5);
-  Vector<double> v(5);
-  Vector<double> w(1);
-  Vector<float>  x(5);
-  Vector<float>  y(5);
-  Vector<float>  z(1);
-
-
-  for (unsigned int i = 0; i < u.size(); ++i)
-    {
-      u(i) = 1 << i;
-      x(i) = 1 << i;
-      v(i) = 6 - i;
-      y(i) = 6 - i;
-    }
-
-  PointerMatrixVector<double> Mu(&u);
-  Mu.vmult(w, v);
-  deallog << "vmult  " << w(0) << std::endl << "Tvmult";
-  w(0) = 2.;
-  Mu.Tvmult(v, w);
-  for (unsigned int i = 0; i < v.size(); ++i)
-    deallog << ' ' << v(i);
-  deallog << std::endl;
-
-  PointerMatrixVector<float> Mx(&x);
-  Mx.vmult(z, y);
-  deallog << "vmult  " << z(0) << std::endl << "Tvmult";
-  z(0) = 2.;
-  Mx.Tvmult(y, z);
-  for (unsigned int i = 0; i < y.size(); ++i)
-    deallog << ' ' << y(i);
-  deallog << std::endl;
-}
diff --git a/tests/lac/pointer_matrix_vector.output b/tests/lac/pointer_matrix_vector.output
deleted file mode 100644 (file)
index f3ce7a8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-DEAL::vmult  88.0000
-DEAL::Tvmult 2.00000 4.00000 8.00000 16.0000 32.0000
-DEAL::vmult  88.0000
-DEAL::Tvmult 2.00000 4.00000 8.00000 16.0000 32.0000

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.