From de00e40384a78cef8b28640a5e27bdf766f6ba8d Mon Sep 17 00:00:00 2001 From: kanschat Date: Mon, 15 Mar 2010 20:38:43 +0000 Subject: [PATCH] setup IntegrationInfoBox for multilevel vectors git-svn-id: https://svn.dealii.org/trunk@20830 0785d39b-7218-0410-832d-ea1e28bc413d --- .../include/numerics/mesh_worker_info.h | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/deal.II/deal.II/include/numerics/mesh_worker_info.h b/deal.II/deal.II/include/numerics/mesh_worker_info.h index 767a5c4142..f20fe04124 100644 --- a/deal.II/deal.II/include/numerics/mesh_worker_info.h +++ b/deal.II/deal.II/include/numerics/mesh_worker_info.h @@ -702,6 +702,12 @@ namespace MeshWorker const Mapping& mapping, const NamedData& data); + template + void initialize(const WORKER&, + const FiniteElement& el, + const Mapping& mapping, + const NamedData*>& data); + boost::shared_ptr > cell_data; boost::shared_ptr > boundary_data; boost::shared_ptr > face_data; @@ -1149,6 +1155,37 @@ namespace MeshWorker subface.initialize_data(p); neighbor.initialize_data(p); } + + + template + template + void + IntegrationInfoBox::initialize( + const WORKER& integrator, + const FiniteElement& el, + const Mapping& mapping, + const NamedData*>& data) + { + initialize(integrator, el, mapping); + boost::shared_ptr > p; + + p = boost::shared_ptr >(new MGVectorData (integrator.cell_selector)); + p->initialize(data); + cell_data = p; + cell.initialize_data(p); + + p = boost::shared_ptr >(new MGVectorData (integrator.boundary_selector)); + p->initialize(data); + boundary_data = p; + boundary.initialize_data(p); + + p = boost::shared_ptr >(new MGVectorData (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 -- 2.39.5