]> https://gitweb.dealii.org/ - dealii.git/commitdiff
setup IntegrationInfoBox for multilevel vectors
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Mon, 15 Mar 2010 20:38:43 +0000 (20:38 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Mon, 15 Mar 2010 20:38:43 +0000 (20:38 +0000)
git-svn-id: https://svn.dealii.org/trunk@20830 0785d39b-7218-0410-832d-ea1e28bc413d

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

index 767a5c4142718d85fc027e6891409b308abea43e..f20fe04124c509ed1449defeb83a8ef9fa5fb6b7 100644 (file)
@@ -702,6 +702,12 @@ namespace MeshWorker
                      const Mapping<dim, spacedim>& mapping,
                      const NamedData<VECTOR*>& data);
 
+      template <class WORKER, typename VECTOR>
+      void initialize(const WORKER&,
+                     const FiniteElement<dim, spacedim>& el,
+                     const Mapping<dim, spacedim>& mapping,
+                     const NamedData<MGLevelObject<VECTOR>*>& data);
+
       boost::shared_ptr<MeshWorker::VectorDataBase<dim, spacedim> > cell_data;
       boost::shared_ptr<MeshWorker::VectorDataBase<dim, spacedim> > boundary_data;
       boost::shared_ptr<MeshWorker::VectorDataBase<dim, spacedim> > face_data;
@@ -1149,6 +1155,37 @@ namespace MeshWorker
     subface.initialize_data(p);
     neighbor.initialize_data(p);
   }
+
+
+  template <int dim, int sdim>
+  template <class WORKER, typename VECTOR>
+  void
+  IntegrationInfoBox<dim,sdim>::initialize(
+    const WORKER& integrator,
+    const FiniteElement<dim,sdim>& el,
+    const Mapping<dim,sdim>& mapping,
+    const NamedData<MGLevelObject<VECTOR>*>& data)
+  {
+    initialize(integrator, el, mapping);
+    boost::shared_ptr<MGVectorData<VECTOR, dim, sdim> > p;
+
+    p = boost::shared_ptr<MGVectorData<VECTOR, dim, sdim> >(new MGVectorData<VECTOR, dim, sdim> (integrator.cell_selector));
+    p->initialize(data);
+    cell_data = p;
+    cell.initialize_data(p);
+
+    p = boost::shared_ptr<MGVectorData<VECTOR, dim, sdim> >(new MGVectorData<VECTOR, dim, sdim> (integrator.boundary_selector));
+    p->initialize(data);
+    boundary_data = p;
+    boundary.initialize_data(p);
+
+    p = boost::shared_ptr<MGVectorData<VECTOR, dim, sdim> >(new MGVectorData<VECTOR, dim, sdim> (integrator.face_selector));
+    p->initialize(data);
+    face_data = p;
+    face.initialize_data(p);
+    subface.initialize_data(p);
+    neighbor.initialize_data(p);
+  }
 }
 
 DEAL_II_NAMESPACE_CLOSE

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.