]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Next step in identifying the problem on the tester: Output the some of the values...
authorMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Sun, 20 Apr 2014 20:35:35 +0000 (20:35 +0000)
committerMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Sun, 20 Apr 2014 20:35:35 +0000 (20:35 +0000)
git-svn-id: https://svn.dealii.org/trunk@32796 0785d39b-7218-0410-832d-ea1e28bc413d

tests/matrix_free/step-48b.cc
tests/matrix_free/step-48b.output

index 4b28f2366ba0a5c3183dd5c2c49eabbe8fd2fcaf..1a2e35acd67557270590f5004c19cd3305de73ec 100644 (file)
@@ -120,6 +120,7 @@ namespace Step48
   {
     AssertDimension (src.size(), 2);
     FEEvaluationGL<dim,fe_degree> current (data), old (data);
+    deallog << "submitted values: ";
     for (unsigned int cell=cell_range.first; cell<cell_range.second; ++cell)
       {
         current.reinit (cell);
@@ -141,10 +142,45 @@ namespace Step48
             current.submit_gradient (- delta_t_sqr *
                                      current.get_gradient(q), q);
           }
+        // output first value on quadrature point for all vector components
+        // (should be stable irrespective of vectorization width)
+        for (unsigned int v=0; v<VectorizedArray<double>::n_array_elements; ++v)
+          deallog << current.begin_values()[0][v] << " ";
 
         current.integrate (true,true);
         current.distribute_local_to_global (dst);
       }
+    deallog << std::endl;
+
+    deallog << "no sine term: ";
+    // now output similar terms again but without the sine term (and do not
+    // write anything back to the solution vector)
+    for (unsigned int cell=cell_range.first; cell<cell_range.second; ++cell)
+      {
+        current.reinit (cell);
+        old.reinit (cell);
+
+        current.read_dof_values (*src[0]);
+        old.read_dof_values     (*src[1]);
+
+        current.evaluate (true, true, false);
+        old.evaluate (true, false, false);
+
+        for (unsigned int q=0; q<current.n_q_points; ++q)
+          {
+            const VectorizedArray<double> current_value = current.get_value(q);
+            const VectorizedArray<double> old_value     = old.get_value(q);
+
+            current.submit_value (2.*current_value - old_value, q);
+            current.submit_gradient (- delta_t_sqr *
+                                     current.get_gradient(q), q);
+          }
+        // output first value on quadrature point for all vector components
+        // (should be stable irrespective of vectorization width)
+        for (unsigned int v=0; v<VectorizedArray<double>::n_array_elements; ++v)
+          deallog << current.begin_values()[0][v] << " ";
+      }
+    deallog << std::endl;
   }
 
 
@@ -250,7 +286,7 @@ namespace Step48
     QGaussLobatto<1> quadrature (fe_degree+1);
     typename MatrixFree<dim>::AdditionalData additional_data;
     additional_data.tasks_parallel_scheme =
-      MatrixFree<dim>::AdditionalData::partition_partition;
+      MatrixFree<dim>::AdditionalData::none;
 
     matrix_free_data.reinit (dof_handler, constraints,
                              quadrature, additional_data);
index 600934fc3de68af41929c3a1a4801c6a7782f129..20f0dcd6e1796b1f48e918d518686412b1693d03 100644 (file)
@@ -4,7 +4,11 @@ DEAL::   Number of degrees of freedom: 289
 DEAL::   Time step size: 0.2500, finest cell: 7.500
 DEAL::
 DEAL::   Time: -10.0 , solution norm: 7.11111164   
+DEAL::submitted values: 0 0 0 0 0 0 0 0 0 0 0 0 0.569151584 0 0 0 
+DEAL::no sine term: 0 0 0 0 0 0 0 0 0 0 0 0 0.562500000 0 0 0 
 DEAL::   Time: -9.75 , solution norm: 3.78861141   
+DEAL::submitted values: 0 0 0 0 0 0 -0.00121093741 0 0 -0.00121093741 0 0 0.222882619 -0.00121093741 -0.00121093741 0 
+DEAL::no sine term: 0 0 0 0 0 0 -0.00124999978 0 0 -0.00124999978 0 0 0.225803189 -0.00124999978 -0.00124999978 0 
 DEAL::   Time: -9.50 , solution norm: 0.869590104  
 DEAL::
 DEAL::   Performed 3 time steps.

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.