<h3>lac</h3>
<ol>
+ <li> <p>
+ Changed: Base class <code class="class">Solver</code> and all
+ <code class="class">Preconditioner</code> classes are now
+ derived from <code class="class">Subscriptor</code>.
+ Class <code class="class">PreconditionLACSolver</code> now uses
+ smartpointers to the given solver and preconditioner
+ objects. You will, therefore, have to derive your own
+ preconditioners and solvers from <code
+ class="class">Subscriptor</code> if you want to use it with
+ <code class="class">PreconditionLACSolver</code>.
+ <br>
+ (WB 2001/08/16)
+ </p>
+
<li> <p>
New: Classes <code class="class">Vector</code> and
<code class="class">BlockVector</code> now have member functions
* @author Guido Kanschat, Wolfgang Bangerth, 1999
*/
template<class MATRIX = SparseMatrix<double>, class VECTOR = Vector<double> >
-class PreconditionUseMatrix
+class PreconditionUseMatrix : public Subscriptor
{
public:
/**
* @author Guido Kanschat, 2000
*/
template<class MATRIX = SparseMatrix<double> >
-class PreconditionRelaxation
+class PreconditionRelaxation : public Subscriptor
{
public:
/**
/**
* The solver object to use.
*/
- SOLVER* solver;
+ SmartPointer<SOLVER> solver;
/**
* The matrix in use.
/**
* The preconditioner to use.
*/
- const PRECONDITION* precondition;
+ SmartPointer<const PRECONDITION> precondition;
};
-//TODO:[?] Use SmartPointer for SOLVER and PRECONDITION above?
-// Another Subscriptor?
/**
#ifndef __deal2__solver_h
#define __deal2__solver_h
-template<typename number> class Vector;
-template<class VECTOR> class VectorMemory;
+#include <base/subscriptor.h>
+
+template <typename number> class Vector;
+template <class VECTOR> class VectorMemory;
class SolverControl;
* @author Wolfgang Bangerth, Guido Kanschat, Ralf Hartmann, 1997-2001
*/
template <class Vector = ::Vector<double> >
-class Solver
+class Solver : public Subscriptor
{
public:
/**