From a9cd7471c610d6a4f8436e46c0f1a193ffb0068c Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Sat, 9 Aug 2003 06:20:50 +0000 Subject: [PATCH] preconditionMG for mixed vectors git-svn-id: https://svn.dealii.org/trunk@7909 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/multigrid/multigrid.h | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/deal.II/deal.II/include/multigrid/multigrid.h b/deal.II/deal.II/include/multigrid/multigrid.h index 0a1e0f9978..b3b0329ec0 100644 --- a/deal.II/deal.II/include/multigrid/multigrid.h +++ b/deal.II/deal.II/include/multigrid/multigrid.h @@ -292,8 +292,9 @@ class PreconditionMG : public Subscriptor * This is the operator used by * LAC iterative solvers. */ - void vmult (VECTOR &dst, - const VECTOR &src) const; + template + void vmult (VECTOR2 &dst, + const VECTOR2 &src) const; /** * Preconditioning operator. @@ -301,8 +302,9 @@ class PreconditionMG : public Subscriptor * of the @p{MG} object passed to * the constructor. */ - void vmult_add (VECTOR &dst, - const VECTOR &src) const; + template + void vmult_add (VECTOR2 &dst, + const VECTOR2 &src) const; /** * Tranposed preconditioning operator. @@ -310,8 +312,9 @@ class PreconditionMG : public Subscriptor * Not implemented, but the * definition may be needed. */ - void Tvmult (VECTOR &dst, - const VECTOR &src) const; + template + void Tvmult (VECTOR2 &dst, + const VECTOR2 &src) const; /** * Tranposed preconditioning operator. @@ -319,8 +322,9 @@ class PreconditionMG : public Subscriptor * Not implemented, but the * definition may be needed. */ - void Tvmult_add (VECTOR &dst, - const VECTOR &src) const; + template + void Tvmult_add (VECTOR2 &dst, + const VECTOR2 &src) const; private: /** @@ -408,10 +412,11 @@ PreconditionMG::empty () const } template +template void PreconditionMG::vmult ( - VECTOR& dst, - const VECTOR& src) const + VECTOR2& dst, + const VECTOR2& src) const { transfer->copy_to_mg(*mg_dof_handler, multigrid->defect, @@ -426,10 +431,11 @@ PreconditionMG::vmult ( template +template void PreconditionMG::vmult_add ( - VECTOR& dst, - const VECTOR& src) const + VECTOR2& dst, + const VECTOR2& src) const { transfer->copy_to_mg(*mg_dof_handler, multigrid->defect, @@ -444,20 +450,22 @@ PreconditionMG::vmult_add ( template +template void PreconditionMG::Tvmult ( - VECTOR&, - const VECTOR&) const + VECTOR2&, + const VECTOR2&) const { Assert(false, ExcNotImplemented()); } template +template void PreconditionMG::Tvmult_add ( - VECTOR&, - const VECTOR&) const + VECTOR2&, + const VECTOR2&) const { Assert(false, ExcNotImplemented()); } -- 2.39.5