]> https://gitweb.dealii.org/ - dealii.git/commitdiff
fix bug in local renumbering
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Fri, 23 Aug 2013 04:42:47 +0000 (04:42 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Fri, 23 Aug 2013 04:42:47 +0000 (04:42 +0000)
git-svn-id: https://svn.dealii.org/trunk@30445 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/fe/fe_tools.h
deal.II/source/fe/fe.cc
deal.II/source/fe/fe_tools.cc

index 0722155e82e676afb864ab8112e2cc806edbcdea..993a1cdcec2842c1dc582d37d02a4b8b8b414ea5 100644 (file)
@@ -160,7 +160,12 @@ namespace FETools
    * indices of each local block. If it is false, then the block sizes are
    * returned.
    *
-   * @todo Which way does this vector map the numbers?
+   * The vector <tt>renumbering</tt> will be indexed by the standard
+   * numbering of local degrees of freedom, namely first first vertex,
+   * then second vertex, after vertices lines, quads, and hexes. For
+   * each index, the entry indicates the index which this degree of
+   * freedom receives in a umbering scheme, where the first block is
+   * numbered completely before the second.
    */
   template<int dim, int spacedim>
   void compute_block_renumbering (
index 501e7e0d818874bfe071b15856a0bdcc6013b89f..1c4db8ffbc8f7a883195b73d923494b5436bb9d9 100644 (file)
@@ -190,16 +190,16 @@ FiniteElement<dim,spacedim>::FiniteElement (
       system_to_component_table.resize(this->dofs_per_cell);
       face_system_to_component_table.resize(this->dofs_per_face);
       for (unsigned int j=0 ; j<this->dofs_per_cell ; ++j)
-        {
-          system_to_component_table[j] = std::pair<unsigned,unsigned>(0,j);
-          system_to_base_table[j] = std::make_pair(std::make_pair(0U,0U),j);
-        }
+       system_to_component_table[j] = std::pair<unsigned,unsigned>(0,j);
       for (unsigned int j=0 ; j<this->dofs_per_face ; ++j)
-        {
-          face_system_to_component_table[j] = std::pair<unsigned,unsigned>(0,j);
-          face_system_to_base_table[j] = std::make_pair(std::make_pair(0U,0U),j);
-        }
+       face_system_to_component_table[j] = std::pair<unsigned,unsigned>(0,j);
     }
+  
+  for (unsigned int j=0 ; j<this->dofs_per_cell ; ++j)
+    system_to_base_table[j] = std::make_pair(std::make_pair(0U,0U),j);
+  for (unsigned int j=0 ; j<this->dofs_per_face ; ++j)
+    face_system_to_base_table[j] = std::make_pair(std::make_pair(0U,0U),j);
+  
   // Fill with default value; may be changed by constructor of derived class.
   base_to_block_indices.reinit(1,1);
 
index 0c5d607bb8d5e844c1f37641a1e8445432abeb51..4ba84c5a43c057826d4159b9a0df13f1fd4dabd3 100644 (file)
@@ -390,8 +390,7 @@ namespace FETools
           start_indices[i] = k;
           k += block_data[i];
         }
-
-//TODO:[GK] This does not work for a single RT
+    
     for (unsigned int i=0; i<element.dofs_per_cell; ++i)
       {
         std::pair<unsigned int, types::global_dof_index>

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.