From 04ae44bdb5f42022d00427616339031ed8982634 Mon Sep 17 00:00:00 2001 From: guido Date: Thu, 9 Jan 2003 14:10:44 +0000 Subject: [PATCH] introduce default constructor and initalize git-svn-id: https://svn.dealii.org/trunk@6892 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/multigrid/mg_coarse.h | 45 ++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/deal.II/deal.II/include/multigrid/mg_coarse.h b/deal.II/deal.II/include/multigrid/mg_coarse.h index 02c8b7993d..5db486ed6a 100644 --- a/deal.II/deal.II/include/multigrid/mg_coarse.h +++ b/deal.II/deal.II/include/multigrid/mg_coarse.h @@ -32,6 +32,11 @@ template { public: + /** + * Default constructor. + */ + MGCoarseGridLACIteration (); + /** * Constructor. * Store solver, matrix and @@ -41,6 +46,13 @@ class MGCoarseGridLACIteration : public MGCoarseGrid MGCoarseGridLACIteration (SOLVER &, const MATRIX &, const PRECOND &); + + /** + * Initialize new data. + */ + void initialize (SOLVER &, + const MATRIX &, + const PRECOND &); /** * Implementation of the abstract @@ -71,7 +83,7 @@ class MGCoarseGridLACIteration : public MGCoarseGrid /** * Reference to the solver. */ - SOLVER& solver; + SmartPointer solver; /** * Reference to the matrix. @@ -81,25 +93,48 @@ class MGCoarseGridLACIteration : public MGCoarseGrid /** * Reference to the preconditioner. */ - const PRECOND& precondition; + SmartPointer precondition; }; /* ------------------ Functions for MGCoarseGridLACIteration ------------ */ +template +MGCoarseGridLACIteration +::MGCoarseGridLACIteration() + : + solver(0), + matrix(0), + precondition(0) +{}; + + template MGCoarseGridLACIteration ::MGCoarseGridLACIteration(SOLVER& s, const MATRIX &m, const PRECOND &p) : - solver(s), + solver(&s), matrix(&m), - precondition(p) + precondition(&p) {}; +template +void +MGCoarseGridLACIteration +::initialize(SOLVER& s, + const MATRIX &m, + const PRECOND &p) +{ + solver = &s; + matrix = &m; + precondition = &p; +}; + + template void MGCoarseGridLACIteration @@ -108,7 +143,7 @@ MGCoarseGridLACIteration const VECTOR &src) const { Assert(matrix!=0, ExcNoMatrixGiven()); - solver.solve(*matrix, dst, src, precondition); + solver->solve(*matrix, dst, src, *precondition); } -- 2.39.5