From 05c2aafe6c2500d46adf0da7add4636902aa6d2e Mon Sep 17 00:00:00 2001 From: wolf Date: Fri, 9 Apr 1999 15:06:03 +0000 Subject: [PATCH] Switch smooth to pre_smooth and post_smooth. git-svn-id: https://svn.dealii.org/trunk@1116 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/include/multigrid/mg_smoother.h | 21 +++++++++++++++++-- .../deal.II/include/numerics/mg_smoother.h | 21 +++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/deal.II/deal.II/include/multigrid/mg_smoother.h b/deal.II/deal.II/include/multigrid/mg_smoother.h index f09b72b237..4e412ee7c5 100644 --- a/deal.II/deal.II/include/multigrid/mg_smoother.h +++ b/deal.II/deal.II/include/multigrid/mg_smoother.h @@ -60,9 +60,26 @@ class MGSmoother : public Subscriptor * at the end of your derived function, * or another function doing similar * things. + * + * This function is responsible for the + * presmoothing, postsmoothing is done + * by another function, which, however, + * calls this function if not overloaded. + */ + virtual void pre_smooth (const unsigned int level, + Vector &u) const = 0; + + /** + * Postsmoothing; the same applies as for + * the presmoothing function. If you + * want pre- and postsmoothing to do the + * same operations, you may want to not + * overload this function, since its + * default implementation simply calls + * #pre_smooth#. */ - virtual void smooth (const unsigned int level, - Vector &u) const = 0; + virtual void post_smooth (const unsigned int level, + Vector &u) const; /** * Reset the values of the degrees of diff --git a/deal.II/deal.II/include/numerics/mg_smoother.h b/deal.II/deal.II/include/numerics/mg_smoother.h index f09b72b237..4e412ee7c5 100644 --- a/deal.II/deal.II/include/numerics/mg_smoother.h +++ b/deal.II/deal.II/include/numerics/mg_smoother.h @@ -60,9 +60,26 @@ class MGSmoother : public Subscriptor * at the end of your derived function, * or another function doing similar * things. + * + * This function is responsible for the + * presmoothing, postsmoothing is done + * by another function, which, however, + * calls this function if not overloaded. + */ + virtual void pre_smooth (const unsigned int level, + Vector &u) const = 0; + + /** + * Postsmoothing; the same applies as for + * the presmoothing function. If you + * want pre- and postsmoothing to do the + * same operations, you may want to not + * overload this function, since its + * default implementation simply calls + * #pre_smooth#. */ - virtual void smooth (const unsigned int level, - Vector &u) const = 0; + virtual void post_smooth (const unsigned int level, + Vector &u) const; /** * Reset the values of the degrees of -- 2.39.5