]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Fix a problem with vertex numbering Guido introduced when re-ordering vertices and...
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 3 Apr 2006 22:47:06 +0000 (22:47 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 3 Apr 2006 22:47:06 +0000 (22:47 +0000)
git-svn-id: https://svn.dealii.org/trunk@12807 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/numerics/data_out_stack.cc
tests/bits/data_out_stack_03.cc [new file with mode: 0644]
tests/bits/data_out_stack_03/cmp/generic [new file with mode: 0644]

index 4a800adc67ebaa578f96dd28d9d047283b09da18..88443f0144bb89016588cef8d0c216e4e88743ec 100644 (file)
@@ -298,11 +298,21 @@ void DataOutStack<dim,DH>::build_patches (const unsigned int n_subdivisions)
       switch (dim)
        {
          case 1:
+                                                // use the following
+                                                // vertices. it
+                                                // probably just
+                                                // requires some
+                                                // playing around
+                                                // with the order of
+                                                // vertices to make
+                                                // sure the resulting
+                                                // output is as
+                                                // expected
                patch->vertices[0] = Point<dim+1>(cell->vertex(0)(0),
                                                  parameter-parameter_step);
-               patch->vertices[2] = Point<dim+1>(cell->vertex(0)(0),
+               patch->vertices[1] = Point<dim+1>(cell->vertex(0)(0),
                                                  parameter);
-               patch->vertices[1] = Point<dim+1>(cell->vertex(1)(0),
+               patch->vertices[2] = Point<dim+1>(cell->vertex(1)(0),
                                                  parameter-parameter_step);
                patch->vertices[3] = Point<dim+1>(cell->vertex(1)(0),
                                                  parameter);
diff --git a/tests/bits/data_out_stack_03.cc b/tests/bits/data_out_stack_03.cc
new file mode 100644 (file)
index 0000000..3e8e270
--- /dev/null
@@ -0,0 +1,76 @@
+//----------------------------  data_out_stack_01.cc  ---------------------------
+//    $Id$
+//    Version: $Name$ 
+//
+//    Copyright (C) 2006 by the deal.II authors
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//----------------------------  data_out_stack_03.cc  ---------------------------
+
+// the order of vertices on 1d cells was confused somewhere somewhen. fix this
+
+#include "../tests.h"
+#include <grid/tria.h>
+#include <dofs/dof_handler.h>
+#include <grid/grid_generator.h>
+#include <fe/fe_q.h>
+#include <lac/vector.h>
+
+#include <numerics/data_out_stack.h>
+#include <fstream>
+#include <iostream>
+
+#include <base/logstream.h>
+
+
+
+
+template <int dim>
+void run () 
+{
+  Triangulation<dim> triangulation;
+  GridGenerator::hyper_cube (triangulation, -1, 1);
+  triangulation.refine_global (1);
+  
+  FE_Q<dim> fe(1);
+  DoFHandler<dim> dof_handler(triangulation);
+  dof_handler.distribute_dofs (fe);
+
+                                  // create a continuous field over
+                                  // this DoFHandler
+  Vector<double> v(dof_handler.n_dofs());
+  v(v.size()/2) = 1;
+
+                                  // output this field using
+                                  // DataOutStack. the result should
+                                  // be a continuous field again
+  DataOutStack<dim> data_out_stack;
+  data_out_stack.declare_data_vector ("solution",
+                                     DataOutStack<dim>::dof_vector);
+  data_out_stack.new_parameter_value (1,1);
+  data_out_stack.attach_dof_handler (dof_handler);
+  data_out_stack.add_data_vector (v, "solution");
+  data_out_stack.build_patches (1);
+  data_out_stack.finish_parameter_value ();
+
+  std::ofstream out ("out.gpl");
+  data_out_stack.write_gnuplot (out);
+}
+
+
+
+int main () 
+{
+  std::ofstream logfile("data_out_stack_03/output");
+  deallog.attach(logfile);
+  deallog.depth_console(0);
+  deallog.threshold_double(1.e-10);
+
+  run<1> ();
+  
+  return 0;
+}
diff --git a/tests/bits/data_out_stack_03/cmp/generic b/tests/bits/data_out_stack_03/cmp/generic
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+

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.