]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
use Table for quadrature values
authorkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 8 Aug 2011 10:29:43 +0000 (10:29 +0000)
committerkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 8 Aug 2011 10:29:43 +0000 (10:29 +0000)
git-svn-id: https://svn.dealii.org/trunk@24027 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/numerics/mesh_worker.h
deal.II/source/numerics/mesh_worker.cc

index 6fd140744e4d169cbe2005ac5b1d572db63c2705..76e8b6ed8a0722db8fe7bd744a9b84379234e154 100644 (file)
@@ -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<FullMatrix<number> >& 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 <i>i</i>th value
                                        * at quadrature point <i>k</i>
@@ -453,7 +464,7 @@ namespace MeshWorker
                                        *
                                        * Values in quadrature points.
                                        */
-      std::vector<std::vector<number> > quadrature_values;
+      Table<2, number> quadrature_data;
   };
 
 //----------------------------------------------------------------------//
@@ -552,7 +563,7 @@ namespace MeshWorker
   inline void
   LocalResults<number>::initialize_quadrature(unsigned int np, unsigned int nv)
   {
-    quadrature_values.resize(np, std::vector<number>(nv));
+    quadrature_data.reinit(np, nv);
   }
   
   
@@ -588,7 +599,7 @@ namespace MeshWorker
   unsigned int
   LocalResults<number>::n_quadrature_points() const
   {
-    return quadrature_values.size();
+    return quadrature_data.n_rows();
   }
 
   
@@ -597,8 +608,7 @@ namespace MeshWorker
   unsigned int
   LocalResults<number>::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<number>::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 <typename number>
+  inline
+  Table<2, number>&
+  LocalResults<number>::quadrature_values()
+  {
+    return quadrature_data;
   }
   
   
@@ -688,9 +705,7 @@ namespace MeshWorker
   number
   LocalResults<number>::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);
   }
 }
 
index 7043f29877be409f8dc74b40afc2a73a338e3997..9b134940d68a0c9bf96b3178b97a6e5bc8bdede8 100644 (file)
@@ -31,9 +31,7 @@ namespace MeshWorker
     for (unsigned int i=0;i<M2.size();++i)
       M2[i].matrix.reinit(bi.block_size(M2[i].row),
                          bi.block_size(M2[i].column));
-    for (unsigned int k=0;k<quadrature_values.size();++k)
-      for (unsigned int i=0;i<quadrature_values[k].size();++i)
-       quadrature_values[k][i] = 0.;
+    quadrature_data.reset_values();
   }
 
 
@@ -46,7 +44,7 @@ namespace MeshWorker
                       + MemoryConsumption::memory_consumption(R)
                       + MemoryConsumption::memory_consumption(M1)
                       + MemoryConsumption::memory_consumption(M2)
-                      + MemoryConsumption::memory_consumption(quadrature_values);
+                      + MemoryConsumption::memory_consumption(quadrature_data);
     return mem;
   }
 

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.