]> https://gitweb.dealii.org/ - dealii.git/commitdiff
modified assembler_simple_mgmatrix_04 to test for FESystem(RT_0,DGP_0)
authorJoscha Gedicke <joscha.gedicke@iwr.uni-heidelberg.de>
Sun, 17 Apr 2016 12:21:35 +0000 (14:21 +0200)
committerJoscha Gedicke <joscha.gedicke@iwr.uni-heidelberg.de>
Sun, 17 Apr 2016 12:21:35 +0000 (14:21 +0200)
tests/integrators/assembler_simple_mgmatrix_04.cc
tests/integrators/assembler_simple_mgmatrix_04.output

index 5cda6acdb4644b1387bdaef0179d90f5f3879ea4..a5124d28042fcac832a4837ca87e307c514ab587 100644 (file)
@@ -66,7 +66,7 @@ LaplaceMatrix<dim>::LaplaceMatrix()
 template <int dim>
 void LaplaceMatrix<dim>::cell(MeshWorker::DoFInfo<dim> &dinfo, MeshWorker::IntegrationInfo<dim> &info) const
 {
-  Laplace::cell_matrix(dinfo.matrix(0,false).matrix, info.fe_values());
+  Laplace::cell_matrix(dinfo.matrix(0,false).matrix, info.fe_values(0));
 }
 
 
@@ -74,8 +74,8 @@ template <int dim>
 void LaplaceMatrix<dim>::boundary(MeshWorker::DoFInfo<dim> &dinfo,
                                   typename MeshWorker::IntegrationInfo<dim> &info) const
 {
-  const unsigned int deg = info.fe_values().get_fe().tensor_degree();
-  Laplace::nitsche_matrix(dinfo.matrix(0,false).matrix, info.fe_values(),
+  const unsigned int deg = info.fe_values(0).get_fe().tensor_degree();
+  Laplace::nitsche_matrix(dinfo.matrix(0,false).matrix, info.fe_values(0),
                           Laplace::compute_penalty(dinfo, dinfo, deg, deg));
 }
 
@@ -85,21 +85,21 @@ void LaplaceMatrix<dim>::face(
   MeshWorker::DoFInfo<dim> &dinfo1, MeshWorker::DoFInfo<dim> &dinfo2,
   MeshWorker::IntegrationInfo<dim> &info1, MeshWorker::IntegrationInfo<dim> &info2) const
 {
-  if (info1.fe_values().get_fe().conforms(FiniteElementData<dim>::H1))
+  if (info1.fe_values(0).get_fe().conforms(FiniteElementData<dim>::H1))
     return;
 
-  const unsigned int deg = info1.fe_values().get_fe().tensor_degree();
+  const unsigned int deg = info1.fe_values(0).get_fe().tensor_degree();
 
-  if (info1.fe_values().get_fe().conforms(FiniteElementData<dim>::Hdiv) &&
-      !info1.fe_values().get_fe().conforms(FiniteElementData<dim>::Hcurl))
+  if (info1.fe_values(0).get_fe().conforms(FiniteElementData<dim>::Hdiv) &&
+      !info1.fe_values(0).get_fe().conforms(FiniteElementData<dim>::Hcurl))
     Laplace::ip_tangential_matrix(dinfo1.matrix(0,false).matrix, dinfo1.matrix(0,true).matrix,
                                   dinfo2.matrix(0,true).matrix, dinfo2.matrix(0,false).matrix,
-                                  info1.fe_values(), info2.fe_values(),
+                                  info1.fe_values(0), info2.fe_values(0),
                                   Laplace::compute_penalty(dinfo1, dinfo2, deg, deg));
   else
     Laplace::ip_matrix(dinfo1.matrix(0,false).matrix, dinfo1.matrix(0,true).matrix,
                        dinfo2.matrix(0,true).matrix, dinfo2.matrix(0,false).matrix,
-                       info1.fe_values(), info2.fe_values(),
+                       info1.fe_values(0), info2.fe_values(0),
                        Laplace::compute_penalty(dinfo1, dinfo2, deg, deg));
 }
 
@@ -119,9 +119,9 @@ void assemble_mg_matrix(DoFHandler<dim> &dof_handler,
   MeshWorker::IntegrationInfoBox<dim> info_box;
   UpdateFlags update_flags = update_values | update_gradients | update_hessians;
   info_box.add_update_flags_all(update_flags);
-  info_box.initialize(dof_handler.get_fe(), mapping);
+  info_box.initialize(dof_handler.get_fe(), mapping, &dof_handler.block_info());
 
-  MeshWorker::DoFInfo<dim> dof_info(dof_handler);
+  MeshWorker::DoFInfo<dim> dof_info(dof_handler.block_info());
 
   MeshWorker::Assembler::MGMatrixSimple<SparseMatrix<double> > assembler;
   assembler.initialize(mg_constraints);
@@ -162,6 +162,7 @@ void test(FiniteElement<dim> &fe)
   DoFHandler<dim> dof(tr);
   dof.distribute_dofs(fe);
   dof.distribute_mg_dofs(fe);
+  dof.initialize_local_block_info();
   mg::SparseMatrixCollection<double> mg;
   mg.resize(0,tr.n_levels()-1);
   mg.reinit(dof);
@@ -203,14 +204,14 @@ int main()
 
   // FESystem<2> sys1(p0, 2, p1, 1);
   // FESystem<2> sys2(p0, 2, rt0, 1);
-  // FESystem<2> sys3(rt0, 1, p0, 2);
+  FESystem<2> sys3(rt0, 1, p0, 1);
   // FESystem<2> sys4(p1, 2, q2, 2);
   // FESystem<2> sys5(q2, 2, p1, 2);
 
   test(rt0);
   test(rt1);
 //  test(sys2);
-//  test(sys3);
+  test(sys3);
 //  test(sys4);
 //  test(sys5);
 }
index 0c198c3427a9f5d0c4609feebe416cda5d0c4c96..4dad034ac1b2910803c7af6100ee4a2f30025fbd 100644 (file)
@@ -260,3 +260,87 @@ DEAL::down
 0.    0.    0.000000 0.000000 0.    0.    0.    0.    0.    0.    0.    0.    0.000000 0.000000 2.700000 3.637307 -3.600000 -4.849742 0.000000 -18.900000 0.000000 -25.461147 0.    0.    0.000000 0.000000 0.    0.    0.    0.    0.    0.    0.000000 0.000000 2.700000 3.637307 0.000000 -18.900000 0.000000 -25.461147 
 0.    0.    0.000000 0.000000 0.    0.    0.    0.    0.    0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.000000 0.    0.    0.    0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
 0.    0.    0.000000 0.000000 0.    0.    0.    0.    0.    0.    0.    0.    0.000000 0.000000 -4.156922 -5.400000 5.542563 7.200000 0.000000 29.098454 0.000000 37.800000 0.    0.    0.000000 0.000000 0.    0.    0.    0.    0.    0.    0.000000 0.000000 -4.156922 -5.400000 0.000000 29.098454 0.000000 37.800000 
+DEAL::FESystem<2>[FE_RaviartThomas<2>(0)-FE_DGP<2>(0)]
+DEAL::Level 0
+DEAL::mg
+1.833333 0.166667 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.166667 1.666667 0.000000 0.000000 0.000000 0.166667 0.000000 0.000000 0.000000 
+0.000000 0.000000 6.166667 2.833333 0.000000 0.000000 -2.000000 -1.000000 0.000000 
+0.000000 0.000000 2.833333 6.166667 0.000000 0.000000 -1.000000 -2.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.166667 0.000000 0.000000 0.000000 1.833333 0.000000 0.000000 0.000000 
+0.000000 0.000000 -2.000000 -1.000000 0.000000 0.000000 6.166667 2.833333 0.000000 
+0.000000 0.000000 -1.000000 -2.000000 0.000000 0.000000 2.833333 6.166667 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 
+DEAL::Level 1
+DEAL::mg
+7.000000 0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.333333 -0.166667 0.000000 0.000000 0.    0.    0.    
+0.500000 6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.166667 -0.666667 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 22.000000 8.000000 0.000000 0.000000 -5.333333 -2.666667 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 0.000000 8.000000 36.000000 0.000000 0.000000 -2.666667 -10.666667 0.000000 0.000000 0.000000 8.000000 0.000000 0.000000 -2.666667 0.000000 
+0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 -5.333333 -2.666667 0.000000 0.000000 15.333333 4.666667 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 -2.666667 -10.666667 0.000000 0.000000 4.666667 22.666667 0.000000 0.000000 0.000000 -2.666667 0.000000 0.000000 4.666667 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+-0.333333 -0.166667 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    7.000000 0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 
+-0.166667 -0.666667 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.500000 6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 8.000000 0.000000 0.    0.    -2.666667 0.    0.000000 0.000000 22.000000 0.000000 0.000000 -5.333333 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 
+0.    0.000000 0.    -2.666667 0.    0.000000 0.000000 4.666667 0.000000 0.000000 0.000000 -5.333333 0.000000 0.000000 15.333333 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 
+DEAL::in
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 -1.666667 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 -1.666667 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+DEAL::out
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.    
+0.000000 -1.666667 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.000000 0.000000 0.000000 0.000000 0.000000 0.    0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 -1.666667 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.000000 0.    0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+DEAL::up
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.000000 0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.000000 0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.    0.    0.000000 -2.500000 -3.000000 0.000000 0.    0.000000 0.    0.    0.000000 -0.500000 0.000000 
+0.    0.000000 0.    0.    0.    0.000000 -0.500000 -3.000000 0.000000 0.    0.000000 0.    0.    0.000000 -2.500000 0.000000 
+0.    0.000000 0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+DEAL::down
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.000000 0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    
+0.    0.000000 0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 
+0.    0.000000 0.    0.    0.    0.000000 -2.500000 -3.000000 0.000000 0.    0.000000 0.    0.    0.000000 -0.500000 0.000000 
+0.    0.000000 0.    0.    0.    0.000000 -0.500000 -3.000000 0.000000 0.    0.000000 0.    0.    0.000000 -2.500000 0.000000 
+0.    0.000000 0.    0.    0.    0.000000 0.000000 0.000000 0.000000 0.    0.000000 0.    0.    0.000000 0.000000 0.000000 

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.