]> https://gitweb.dealii.org/ - dealii.git/commitdiff
C++11 cleanup: Remove deprecated class InverseMatrixRichardson 4213/head
authorMatthias Maier <tamiko@43-1.org>
Thu, 6 Apr 2017 20:22:52 +0000 (15:22 -0500)
committerMatthias Maier <tamiko@43-1.org>
Thu, 6 Apr 2017 20:22:52 +0000 (15:22 -0500)
include/deal.II/lac/matrix_lib.h
include/deal.II/lac/matrix_lib.templates.h
source/lac/matrix_lib.cc

index 0ae8ac96a3e3911ad0f198e1b4a2f64fe7681224..63abba6f10a02de7aa6420de14f49636a38266da 100644 (file)
@@ -401,113 +401,6 @@ private:
 
 
 
-/**
- * Objects of this type represent the inverse of a matrix as computed
- * approximately by using the SolverRichardson iterative solver. In other
- * words, if you set up an object of the current type for a matrix $A$, then
- * calling the vmult() function with arguments $v,w$ amounts to setting
- * $w=A^{-1}v$ by solving the linear system $Aw=v$ using the Richardson solver
- * with a preconditioner that can be chosen. Similarly, this class allows to
- * also multiple with the transpose of the inverse (i.e., the inverse of the
- * transpose) using the function SolverRichardson::Tsolve().
- *
- * The functions vmult() and Tvmult() approximate the inverse iteratively
- * starting with the vector <tt>dst</tt>. Functions vmult_add() and
- * Tvmult_add() start the iteration with a zero vector. All of the matrix-
- * vector multiplication functions expect that the Richardson solver with the
- * given preconditioner actually converge. If the Richardson solver does not
- * converge within the specified number of iterations, the exception that will
- * result in the solver will simply be propagated to the caller of the member
- * function of the current class.
- *
- * @note A more powerful version of this class is provided by the
- * IterativeInverse class.
- *
- * @note Instantiations for this template are provided for <tt>@<float@> and
- * @<double@></tt>; others can be generated in application programs (see the
- * section on
- * @ref Instantiations
- * in the manual).
- *
- * @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, 2005
- */
-template<typename VectorType>
-class InverseMatrixRichardson : public Subscriptor
-{
-public:
-  /**
-   * Constructor, initializing the solver with a control and memory object.
-   * The inverted matrix and the preconditioner are added in initialize().
-   */
-  InverseMatrixRichardson (SolverControl            &control,
-                           VectorMemory<VectorType> &mem);
-  /**
-   * Since we use two pointers, we must implement a destructor.
-   */
-  ~InverseMatrixRichardson();
-
-  /**
-   * Initialization function. Provide a solver object, a matrix, and another
-   * preconditioner for this.
-   */
-  template <typename MatrixType, typename PreconditionerType>
-  void initialize (const MatrixType &,
-                   const PreconditionerType &);
-
-  /**
-   * Access to the SolverControl object used by the solver.
-   */
-  SolverControl &control() const;
-  /**
-   * Execute solver.
-   */
-  void vmult (VectorType &, const VectorType &) const;
-
-  /**
-   * Execute solver.
-   */
-  void vmult_add (VectorType &, const VectorType &) const;
-
-  /**
-   * Execute transpose solver.
-   */
-  void Tvmult (VectorType &, const VectorType &) const;
-
-  /**
-   * Execute transpose solver.
-   */
-  void Tvmult_add (VectorType &, const VectorType &) const;
-
-private:
-  /**
-   * A reference to the provided VectorMemory object.
-   */
-  VectorMemory<VectorType> &mem;
-
-  /**
-   * The solver object.
-   */
-  mutable SolverRichardson<VectorType> solver;
-
-  /**
-   * The matrix in use.
-   */
-  PointerMatrixBase<VectorType> *matrix;
-
-  /**
-   * The preconditioner to use.
-   */
-  PointerMatrixBase<VectorType> *precondition;
-};
-
-
-
-
 /*@}*/
 //---------------------------------------------------------------------------
 
@@ -739,22 +632,6 @@ MeanValueFilter::Tvmult_add(VectorType &, const VectorType &) const
   Assert(false, ExcNotImplemented());
 }
 
-//-----------------------------------------------------------------------//
-
-template <typename VectorType>
-template <typename MatrixType, typename PreconditionerType>
-inline void
-InverseMatrixRichardson<VectorType>::initialize (const MatrixType &m,
-                                                 const PreconditionerType &p)
-{
-  if (matrix != 0)
-    delete matrix;
-  matrix = new PointerMatrix<MatrixType, VectorType>(&m);
-  if (precondition != 0)
-    delete precondition;
-  precondition = new PointerMatrix<PreconditionerType, VectorType>(&p);
-}
-
 
 DEAL_II_NAMESPACE_CLOSE
 
index 58f07a0c6797266be4de334c73b6dfc3c32a1302..247d23234a6230edc7a5e0cb1cd2f9cb83a35787 100644 (file)
@@ -119,88 +119,6 @@ MeanValueFilter::vmult_add(BlockVector<number> &dst,
 }
 
 
-//----------------------------------------------------------------------//
-
-
-template <typename VectorType>
-InverseMatrixRichardson<VectorType>::InverseMatrixRichardson(
-  SolverControl &c,
-  VectorMemory<VectorType> &m)
-  :
-  mem(m),
-  solver(c,m),
-  matrix(0),
-  precondition(0)
-{}
-
-
-template <typename VectorType>
-InverseMatrixRichardson<VectorType>::~InverseMatrixRichardson()
-{
-  if (matrix != 0) delete matrix;
-  if (precondition != 0) delete precondition;
-}
-
-
-template <typename VectorType>
-void
-InverseMatrixRichardson<VectorType>::vmult(VectorType &dst, const VectorType &src) const
-{
-  Assert (matrix != 0, ExcNotInitialized());
-  Assert (precondition != 0, ExcNotInitialized());
-  dst = 0.;
-  solver.solve(*matrix, dst, src, *precondition);
-}
-
-
-
-template <typename VectorType>
-void
-InverseMatrixRichardson<VectorType>::vmult_add(VectorType &dst, const VectorType &src) const
-{
-  Assert (matrix != 0, ExcNotInitialized());
-  Assert (precondition != 0, ExcNotInitialized());
-  VectorType *aux = mem.alloc();
-  aux->reinit(dst);
-
-  solver.solve(*matrix, *aux, src, *precondition);
-
-  dst += *aux;
-  mem.free(aux);
-}
-
-
-
-template <typename VectorType>
-void
-InverseMatrixRichardson<VectorType>::Tvmult(VectorType &dst, const VectorType &src) const
-{
-  Assert (matrix != 0, ExcNotInitialized());
-  Assert (precondition != 0, ExcNotInitialized());
-  dst = 0.;
-  solver.Tsolve(*matrix, dst, src, *precondition);
-}
-
-
-
-template <typename VectorType>
-void
-InverseMatrixRichardson<VectorType>::Tvmult_add(VectorType &dst, const VectorType &src) const
-{
-  Assert (matrix != 0, ExcNotInitialized());
-  Assert (precondition != 0, ExcNotInitialized());
-  VectorType *aux = mem.alloc();
-  aux->reinit(dst);
-
-  solver.Tsolve(*matrix, *aux, src, *precondition);
-
-  dst += *aux;
-  mem.free(aux);
-}
-
-
-
-
 DEAL_II_NAMESPACE_CLOSE
 
 #endif
index b8ea15167093a2eeb1d5ee680866dd838b6f44dc..6c4ead13d90b9e07bcbfdb7fff6fb0f63e110742 100644 (file)
@@ -161,9 +161,4 @@ template void MeanValueFilter::vmult_add(BlockVector<float> &,
 template void MeanValueFilter::vmult_add(BlockVector<double> &,
                                          const BlockVector<double> &) const;
 
-template class InverseMatrixRichardson<Vector<float> >;
-template class InverseMatrixRichardson<Vector<double> >;
-template class InverseMatrixRichardson<BlockVector<float> >;
-template class InverseMatrixRichardson<BlockVector<double> >;
-
 DEAL_II_NAMESPACE_CLOSE

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.