]> https://gitweb.dealii.org/ - dealii.git/commitdiff
call mg_fill for level cells and fill otherwise
authorBaerbel Jannsen <baerbel.janssen@gmail.com>
Tue, 16 Mar 2010 15:52:39 +0000 (15:52 +0000)
committerBaerbel Jannsen <baerbel.janssen@gmail.com>
Tue, 16 Mar 2010 15:52:39 +0000 (15:52 +0000)
git-svn-id: https://svn.dealii.org/trunk@20832 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/numerics/mesh_worker_info.h
deal.II/deal.II/include/numerics/mesh_worker_info.templates.h
deal.II/deal.II/include/numerics/mesh_worker_vector_selector.templates.h

index b591f74641636a8a4257b4a42452dd5a3722a147..5e69d90ee39f1affe84bead7cba04ee2c66514a3 100644 (file)
@@ -351,6 +351,7 @@ namespace MeshWorker
                                       /// The block structure of the system
       SmartPointer<const BlockInfo,DoFInfo<dim,spacedim> > block_info;
 
+      bool level_cell;
     private:
                                       /**
                                        * Standard constructor, not
index 26eccbb9edd0ff2c0c67c12ff6bd8ded5b83a012..dadacaa15db199a289ecb8a9e8666e71a06a677f 100644 (file)
@@ -50,6 +50,8 @@ namespace MeshWorker
       }
     else
       indices.resize(0);
+
+    level_cell = false;
   }
 
 
@@ -68,6 +70,7 @@ namespace MeshWorker
        for (unsigned int i=0;i<indices.size();++i)
          indices[this->block_info->renumber(i)] = indices_org[i];
       }
+    level_cell = true;
   }
 
 //----------------------------------------------------------------------//
@@ -224,6 +227,10 @@ namespace MeshWorker
            const unsigned int block_start = info.block_info->local().block_start(b);
            const unsigned int block_size = info.block_info->local().block_size(b);
            
+            if(info.level_cell)
+           this->global_data->mg_fill(values, gradients, hessians, fe, info.cell->level(), info.indices,
+                                   comp, n_comp, block_start, block_size);
+            else
            this->global_data->fill(values, gradients, hessians, fe, info.indices,
                                    comp, n_comp, block_start, block_size);
            comp += n_comp;
@@ -233,6 +240,10 @@ namespace MeshWorker
        {
         const FEValuesBase<dim>& fe = this->fe_values(0);
         const unsigned int n_comp = fe.get_fe().n_components();
+         if(info.level_cell)
+        this->global_data->mg_fill(values, gradients, hessians, fe, info.cell->level(), info.indices,
+                                0, n_comp, 0, info.indices.size());
+         else
         this->global_data->fill(values, gradients, hessians, fe, info.indices,
                                 0, n_comp, 0, info.indices.size());
        }
index b54dbe429494bfb58aa3b15e9dff574e8a4a43c8..5b8c3f826f2777bea2e902ef8d5e76b363055a4c 100644 (file)
@@ -48,7 +48,9 @@ namespace MeshWorker
        unsigned int,
        unsigned int,
        unsigned int) const
-  {}
+  {
+    Assert(false, ExcNotImplemented());
+  }
 
 
   template <int dim, int spacedim>
@@ -64,7 +66,9 @@ namespace MeshWorker
        unsigned int,
        unsigned int,
        unsigned int) const
-  {}
+  {
+    Assert(false, ExcNotImplemented());
+  }
 //----------------------------------------------------------------------//
 
   template <class VECTOR, int dim, int spacedim>

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.