From b50fa06c135d04c48873cbb705900864e3a7c01f Mon Sep 17 00:00:00 2001 From: kanschat Date: Mon, 8 Aug 2011 10:29:43 +0000 Subject: [PATCH] use Table for quadrature values git-svn-id: https://svn.dealii.org/trunk@24027 0785d39b-7218-0410-832d-ea1e28bc413d --- .../include/deal.II/numerics/mesh_worker.h | 43 +++++++++++++------ deal.II/source/numerics/mesh_worker.cc | 6 +-- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/deal.II/include/deal.II/numerics/mesh_worker.h b/deal.II/include/deal.II/numerics/mesh_worker.h index 6fd140744e..76e8b6ed8a 100644 --- a/deal.II/include/deal.II/numerics/mesh_worker.h +++ b/deal.II/include/deal.II/numerics/mesh_worker.h @@ -1,7 +1,7 @@ //--------------------------------------------------------------------------- // $Id$ // -// Copyright (C) 2006, 2007, 2008, 2009, 2010 by the deal.II authors +// Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -235,14 +235,14 @@ namespace MeshWorker /** * The number of quadrature - * points in #quadrature_values. + * points in quadrature_values(). */ unsigned int n_quadrature_points() const; /** * The number of values in each * quadrature point in - * #quadrature_values. + * quadrature_values(). */ unsigned int n_quadrature_values() const; @@ -290,6 +290,17 @@ namespace MeshWorker */ const MatrixBlock >& matrix(unsigned int i, bool external = false) const; + /** + * Access to the vector + * #quadrature_data of data + * in quadrature points, + * organized such that there is + * a vector for each point, + * containing one entry for + * each component. + */ + Table<2, number>& quadrature_values(); + /** * Access the ith value * at quadrature point k @@ -453,7 +464,7 @@ namespace MeshWorker * * Values in quadrature points. */ - std::vector > quadrature_values; + Table<2, number> quadrature_data; }; //----------------------------------------------------------------------// @@ -552,7 +563,7 @@ namespace MeshWorker inline void LocalResults::initialize_quadrature(unsigned int np, unsigned int nv) { - quadrature_values.resize(np, std::vector(nv)); + quadrature_data.reinit(np, nv); } @@ -588,7 +599,7 @@ namespace MeshWorker unsigned int LocalResults::n_quadrature_points() const { - return quadrature_values.size(); + return quadrature_data.n_rows(); } @@ -597,8 +608,7 @@ namespace MeshWorker unsigned int LocalResults::n_quadrature_values() const { - Assert(quadrature_values.size() != 0, ExcNotInitialized()); - return quadrature_values[0].size(); + return quadrature_data.n_cols(); } @@ -642,9 +652,16 @@ namespace MeshWorker number& LocalResults::quadrature_value(unsigned int k, unsigned int i) { - AssertIndexRange(k,quadrature_values.size()); - AssertIndexRange(i,quadrature_values[0].size()); - return quadrature_values[k][i]; + return quadrature_data(k,i); + } + + + template + inline + Table<2, number>& + LocalResults::quadrature_values() + { + return quadrature_data; } @@ -688,9 +705,7 @@ namespace MeshWorker number LocalResults::quadrature_value(unsigned int k, unsigned int i) const { - AssertIndexRange(k,quadrature_values.size()); - AssertIndexRange(i,quadrature_values[0].size()); - return quadrature_values[k][i]; + return quadrature_data(k,i); } } diff --git a/deal.II/source/numerics/mesh_worker.cc b/deal.II/source/numerics/mesh_worker.cc index 7043f29877..9b134940d6 100644 --- a/deal.II/source/numerics/mesh_worker.cc +++ b/deal.II/source/numerics/mesh_worker.cc @@ -31,9 +31,7 @@ namespace MeshWorker for (unsigned int i=0;i