From: guido Date: Wed, 14 Apr 1999 12:13:15 +0000 (+0000) Subject: Test for abstract multigrid X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75115caefd6cf79cd7189073473ebf51f4fa7cc0;p=dealii-svn.git Test for abstract multigrid git-svn-id: https://svn.dealii.org/trunk@1136 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/tests/deal.II/mg1.cc b/tests/deal.II/mg1.cc new file mode 100644 index 0000000000..0497bec99b --- /dev/null +++ b/tests/deal.II/mg1.cc @@ -0,0 +1,85 @@ +// $Id$ + +// deal_II_libraries.g=-ldeal_II_2d.g +// deal_II_libraries=-ldeal_II_2d + +#include + +class TransferTest + : + public MGTransferBase +{ + virtual void prolongate(unsigned l, + Vector& dst, + const Vector& src) const; + virtual void restrict(unsigned l, + Vector& dst, + const Vector& src) const; + friend class MultiGridBase; +}; + +class MGTest + : + public MultiGridBase +{ + public: + MGTest(TransferTest& t) + : MultiGridBase(t, 9, 3, 2, 4) + {} + + virtual void level_residual(unsigned level, + Vector& dst, + const Vector& src, + const Vector& rhs); + + virtual void smooth(unsigned level, + Vector& x, + const Vector& b, + unsigned steps); + void doit() + { + level_mgstep(9); + } +}; + +main() +{ + TransferTest tr; + MGTest mg(tr); + mg.doit(); + +} + +void +TransferTest::prolongate(unsigned l, + Vector&, + const Vector&) const +{ + cout << "Prolongating " << l-1 << " to " << l << endl; +} + +void +TransferTest::restrict(unsigned l, + Vector&, + const Vector&) const +{ + cout << "Restricting " << l << " to " << l-1 << endl; +} + +void +MGTest::level_residual(unsigned l, + Vector&, + const Vector&, + const Vector&) +{ + cout << "Residual on " << l << endl; +} + +void +MGTest::smooth(unsigned l, + Vector&, + const Vector&, + unsigned steps) +{ + cout << "Smooth on " << l << " : " << steps << " steps" << endl; +}