From 0e97bc34779a97597eac7839082e3c7ddb2340ea Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Thu, 18 Mar 2010 15:03:08 +0000 Subject: [PATCH] make sure fill is not called if no vectors are selected git-svn-id: https://svn.dealii.org/trunk@20843 0785d39b-7218-0410-832d-ea1e28bc413d --- .../include/numerics/mesh_worker_info.h | 40 ++++++++++++------- .../numerics/mesh_worker_vector_selector.h | 6 ++- 2 files changed, 30 insertions(+), 16 deletions(-) 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 9b13df27d8..5ccd0a3f61 100644 --- a/deal.II/deal.II/include/numerics/mesh_worker_info.h +++ b/deal.II/deal.II/include/numerics/mesh_worker_info.h @@ -309,7 +309,7 @@ namespace MeshWorker DoFInfo(const BlockInfo& block_info); /** - * Default constructor + * Constructor * leaving the #block_info * pointer empty, but setting * the #aux_local_indices. @@ -733,19 +733,22 @@ namespace MeshWorker template void initialize(const WORKER&, const FiniteElement& el, - const Mapping& mapping); + const Mapping& mapping, + const BlockInfo* block_info = 0); template void initialize(const WORKER&, const FiniteElement& el, const Mapping& mapping, - const NamedData& data); + const NamedData& data, + const BlockInfo* block_info = 0); template void initialize(const WORKER&, const FiniteElement& el, const Mapping& mapping, - const NamedData*>& data); + const NamedData*>& data, + const BlockInfo* block_info = 0); boost::shared_ptr > cell_data; boost::shared_ptr > boundary_data; @@ -851,6 +854,9 @@ namespace MeshWorker for (unsigned int i=0;iempty()) + fill_local_data(info, split_fevalues); } @@ -1230,18 +1237,19 @@ namespace MeshWorker IntegrationInfoBox:: initialize(const WORKER& integrator, const FiniteElement& el, - const Mapping& mapping) + const Mapping& mapping, + const BlockInfo* block_info) { cell.initialize >(el, mapping, integrator.cell_quadrature, - integrator.cell_flags); + integrator.cell_flags, block_info); boundary.initialize >(el, mapping, integrator.boundary_quadrature, - integrator.boundary_flags); + integrator.boundary_flags, block_info); face.initialize >(el, mapping, integrator.face_quadrature, - integrator.face_flags); + integrator.face_flags, block_info); subface.initialize >(el, mapping, integrator.face_quadrature, - integrator.face_flags); + integrator.face_flags, block_info); neighbor.initialize >(el, mapping, integrator.face_quadrature, - integrator.neighbor_flags); + integrator.neighbor_flags, block_info); } @@ -1252,9 +1260,10 @@ namespace MeshWorker const WORKER& integrator, const FiniteElement& el, const Mapping& mapping, - const NamedData& data) + const NamedData& data, + const BlockInfo* block_info) { - initialize(integrator, el, mapping); + initialize(integrator, el, mapping, block_info); boost::shared_ptr > p; p = boost::shared_ptr >(new VectorData (integrator.cell_selector)); @@ -1283,9 +1292,10 @@ namespace MeshWorker const WORKER& integrator, const FiniteElement& el, const Mapping& mapping, - const NamedData*>& data) + const NamedData*>& data, + const BlockInfo* block_info) { - initialize(integrator, el, mapping); + initialize(integrator, el, mapping, block_info); boost::shared_ptr > p; p = boost::shared_ptr >(new MGVectorData (integrator.cell_selector)); diff --git a/deal.II/deal.II/include/numerics/mesh_worker_vector_selector.h b/deal.II/deal.II/include/numerics/mesh_worker_vector_selector.h index 125568eff8..80312e8f88 100644 --- a/deal.II/deal.II/include/numerics/mesh_worker_vector_selector.h +++ b/deal.II/deal.II/include/numerics/mesh_worker_vector_selector.h @@ -37,6 +37,7 @@ namespace MeshWorker * determine which values, derivatives or second derivatives are * actually computed. * + * @ingroup MeshWorker * @author Guido Kanschat 2009 */ class VectorSelector : @@ -177,6 +178,7 @@ namespace MeshWorker * Based on VectorSelector, this is the class used by IntegrationInfo * to compute values of source vectors in quadrature points. * + * @ingroup MeshWorker * @author Guido Kanschat, 2009 */ template @@ -308,6 +310,7 @@ namespace MeshWorker * function VectorDataBase::fill() for a certain type of vector, using * NamedData to identify vectors by name. * + * @ingroup MeshWorker * @author Guido Kanschat, 2009 */ template @@ -373,7 +376,8 @@ namespace MeshWorker * function VectorDataBase::fill() for a certain type of multilevel vectors, using * NamedData to identify vectors by name. * - * @author Guido Kanschat, 2009 + * @ingroup MeshWorker + * @author Guido Kanschat, 2010 */ template class MGVectorData : -- 2.39.5