]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Make compile again. Currently fails, however.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 15 Jan 2010 19:11:49 +0000 (19:11 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 15 Jan 2010 19:11:49 +0000 (19:11 +0000)
git-svn-id: https://svn.dealii.org/trunk@20379 0785d39b-7218-0410-832d-ea1e28bc413d

tests/multigrid/transfer_compare_01.cc

index 989a04cbe259cebc1b92ea7003fc69f934326b55..63618076a176b6ac511b3605f11e94330b7bd859 100644 (file)
 using namespace std;
 
 
+template <int dim, typename number, int spacedim>
+void
+reinit_vector_by_blocks (
+  const dealii::MGDoFHandler<dim,spacedim> &mg_dof,
+  MGLevelObject<dealii::Vector<number> > &v,
+  const unsigned int selected_block,
+  std::vector<std::vector<unsigned int> >& ndofs)
+{
+  const unsigned int n_blocks = mg_dof.get_fe().n_blocks();
+  Assert(selected_block < n_blocks, ExcIndexRange(selected_block, 0, n_blocks));
+
+  std::vector<bool> selected(n_blocks, false);
+  selected[selected_block] = true;
+
+  if (ndofs.size() == 0)
+    {
+      std::vector<std::vector<unsigned int> >
+       new_dofs(mg_dof.get_tria().n_levels(),
+                std::vector<unsigned int>(selected.size()));
+      std::swap(ndofs, new_dofs);
+      MGTools::count_dofs_per_block (mg_dof, ndofs);
+    }
+
+  for (unsigned int level=v.get_minlevel();
+       level<=v.get_maxlevel();++level)
+    {
+      v[level].reinit(ndofs[level][selected_block]);
+    }
+}
+
+
 template <int dim, typename number, int spacedim>
 void
 reinit_vector_by_blocks (
@@ -82,6 +113,8 @@ reinit_vector_by_blocks (
 }
 
 
+
+
 template <int dim>
 void check_block(const FiniteElement<dim>& fe)
 {
@@ -112,7 +145,8 @@ void check_block(const FiniteElement<dim>& fe)
                                   // Store sizes
   vector<unsigned int> ndofs(fe.n_blocks());
   DoFTools::count_dofs_per_block(mgdof, ndofs);
-  std::vector<std::vector<unsigned int> > mg_ndofs(mgdof.get_tria().n_levels());
+  std::vector<std::vector<unsigned int> > mg_ndofs(mgdof.get_tria().n_levels(),
+                                                  std::vector<unsigned int>(fe.n_blocks()));
   MGTools::count_dofs_per_block(mgdof, mg_ndofs);
 
   MGTransferPrebuilt<BlockVector<double> > transfer;

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.