]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Move some code out of a loop where it is only called in the first iteration as this...
authorMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Wed, 20 Feb 2013 09:14:33 +0000 (09:14 +0000)
committerMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Wed, 20 Feb 2013 09:14:33 +0000 (09:14 +0000)
git-svn-id: https://svn.dealii.org/trunk@28489 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/multigrid/multigrid.templates.h

index cfee9c22a91726738ab16b44640f5f483bc02fab..17226ffdf07380d028c890833895196aa827ce22 100644 (file)
@@ -156,6 +156,16 @@ Multigrid<VECTOR>::level_v_step(const unsigned int level)
 //  std::cout<<std::endl;
 //  t[level].print(std::cout, 2,false);
 
+  if (edge_out != 0)
+    {
+      edge_out->vmult_add(level, t[level], solution[level]);
+      if (debug>2)
+        deallog << "Norm t[" << level << "] " << t[level].l2_norm() << std::endl;
+    }
+
+  if (edge_down != 0)
+    edge_down->vmult(level, t[level-1], solution[level]);
+
   // make t rhs of lower level The
   // non-refined parts of the
   // coarse-level defect already
@@ -164,15 +174,6 @@ Multigrid<VECTOR>::level_v_step(const unsigned int level)
   for (unsigned int l = level; l>minlevel; --l)
     {
       t[l-1] = 0.;
-      if (l==level && edge_out != 0)
-        {
-          edge_out->vmult_add(level, t[level], solution[level]);
-          if (debug>2)
-            deallog << "Norm t[" << level << "] " << t[level].l2_norm() << std::endl;
-        }
-
-      if (l==level && edge_down != 0)
-        edge_down->vmult(level, t[level-1], solution[level]);
 
       transfer->restrict_and_add (l, t[l-1], t[l]);
       if (debug>3)

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.