]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add DataOutResample 12408/head
authorPeter Munch <peterrmuench@gmail.com>
Tue, 8 Jun 2021 12:09:29 +0000 (14:09 +0200)
committerPeter Munch <peterrmuench@gmail.com>
Sat, 12 Jun 2021 19:31:21 +0000 (21:31 +0200)
Review comments

doc/news/changes/major/20210608Munch [new file with mode: 0644]
include/deal.II/numerics/data_out_dof_data.h
include/deal.II/numerics/data_out_resample.h [new file with mode: 0644]
source/numerics/CMakeLists.txt
source/numerics/data_out_resample.cc [new file with mode: 0644]
source/numerics/data_out_resample.inst.in [new file with mode: 0644]
tests/remote_point_evaluation/data_out_resample_01.cc [new file with mode: 0644]
tests/remote_point_evaluation/data_out_resample_01.mpirun=1.output [new file with mode: 0644]
tests/remote_point_evaluation/data_out_resample_01.mpirun=4.output [new file with mode: 0644]

diff --git a/doc/news/changes/major/20210608Munch b/doc/news/changes/major/20210608Munch
new file mode 100644 (file)
index 0000000..8dba487
--- /dev/null
@@ -0,0 +1,5 @@
+New: The new postprocessing class DataOutResample is similar to
+DataOut but allows to interpolate the result onto a second 
+triangulation.
+<br>
+(Peter Munch, Martin Kronbichler, Magdalena Schreter, 2021/06/08)
index 7ab9a7764a0d8b7754455c7234be51ecf69ac6bb..e66bc5208c820d64a2adda528ba785aa44ace15d 100644 (file)
@@ -1001,6 +1001,7 @@ public:
   virtual const std::vector<Patch> &
   get_patches() const override;
 
+protected:
   /**
    * Virtual function through which the names of data sets are obtained by the
    * output functions of the base class.
diff --git a/include/deal.II/numerics/data_out_resample.h b/include/deal.II/numerics/data_out_resample.h
new file mode 100644 (file)
index 0000000..b873051
--- /dev/null
@@ -0,0 +1,168 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2021 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+#ifndef dealii_data_out_resample_h
+#define dealii_data_out_resample_h
+
+
+
+#include <deal.II/base/config.h>
+
+#include <deal.II/base/mpi_remote_point_evaluation.h>
+
+#include <deal.II/numerics/data_out.h>
+#include <deal.II/numerics/data_out_dof_data.h>
+
+#include <memory>
+
+DEAL_II_NAMESPACE_OPEN
+
+/**
+ * A DataOut-like class that does not output a numerical solution on
+ * the cells of the original triangulation but interpolates the result onto a
+ * second triangulation (that can be completely unrelated).
+ * By using this class, one can output the result obtained on an unstructured
+ * mesh onto a structured one or one can create a slice in 3D.
+ *
+ * The following code snippet shows the steps how to use the class when the
+ * solution is given for a three dimensional triangulation and the result
+ * should be outputted on a (2D) slice:
+ * @code
+ * // setup and first usage
+ * DataOutResample<3, 2, 3> data_out(patch_tria,patch_mapping);
+ * data_out.add_data_vector(dof_handler, vector, "solution");
+ * data_out.build_patches(mapping);
+ *
+ * // ... no changes in triangulation and mapping -> reuse internal data
+ * structures data_out.build_patches();
+ *
+ * // ... changes in triangulation or mapping -> reinitialize internal data
+ * structures data_out.build_patches(mapping);
+ * @endcode
+ *
+ * @note While the dimension of the two triangulations might differ, their
+ *   space dimension need to coincide.
+ */
+template <int dim, int patch_dim, int spacedim>
+class DataOutResample
+  : public DataOut_DoFData<dim, patch_dim, spacedim, spacedim>
+{
+public:
+  /**
+   * Constructor taking the triangulation and mapping for which the patches
+   * should be generated.
+   */
+  DataOutResample(const Triangulation<patch_dim, spacedim> &patch_tria,
+                  const Mapping<patch_dim, spacedim> &      patch_mapping);
+
+  /**
+   * Update the @p mapping of original triangulation. One needs to call this
+   * function if the mapping has changed. Just like in the DataOut context,
+   * @p n_subdivisions determines how many "patches" this function will build
+   * out of every cell.
+   *
+   * This function involves an expensive setup: evaluation points are generated
+   * and their owners are determined, which is used to set up the communication
+   * pattern.
+   *
+   * @note If you use the version of build_patches() that does not take a
+   *   mapping, this function has to be called before its first usage.
+   */
+  void
+  update_mapping(const Mapping<dim, spacedim> &mapping,
+                 const unsigned int            n_subdivisions = 0);
+
+  /**
+   * This is the central function of this class since it builds the list of
+   * patches to be written by the low-level functions of the base class. A
+   * patch is, in essence, some intermediate representation of the data on
+   * each cell of a triangulation and DoFHandler object that can then be used
+   * to write files in some format that is readable by visualization programs.
+   *
+   * Since this function calls internally at the beginning update_mapping(),
+   * this function also involves an expensive setup.
+   *
+   * Just like in the DataOut::build_patches() context, @p n_subdivisions
+   * determines how many "patches" this function will build out of every cell.
+   */
+  void
+  build_patches(
+    const Mapping<dim, spacedim> &mapping,
+    const unsigned int            n_subdivisions = 0,
+    const typename DataOut<patch_dim, spacedim>::CurvedCellRegion
+      curved_region =
+        DataOut<patch_dim, spacedim>::CurvedCellRegion::curved_boundary);
+
+  /**
+   * Just like the above function, this function builds a list of
+   * patches to be written by the low-level functions of the base class.
+   * However it skips the update of the mapping and reuses the one registered
+   * via update_mapping(). This allows to skip the expensive setup of the
+   * internal communication routines.
+   *
+   * @note This function can be only used if a mapping has been registered via
+   *   update_mapping() or the other build_patches() function. The same
+   *   n_subdivisions previously passed to these functions is used.
+   */
+  void
+  build_patches(
+    const typename DataOut<patch_dim, spacedim>::CurvedCellRegion
+      curved_region =
+        DataOut<patch_dim, spacedim>::CurvedCellRegion::curved_boundary);
+
+protected:
+  virtual const std::vector<typename DataOutBase::Patch<patch_dim, spacedim>> &
+  get_patches() const override;
+
+private:
+  /**
+   * Intermediate DoFHandler
+   */
+  DoFHandler<patch_dim, spacedim> patch_dof_handler;
+
+  /**
+   * Mapping used in connection with patch_tria.
+   */
+  const SmartPointer<const Mapping<patch_dim, spacedim>> patch_mapping;
+
+  /**
+   * DataOut object that does the actual building of the patches.
+   */
+  DataOut<patch_dim, spacedim> patch_data_out;
+
+  /**
+   * Object to evaluate
+   */
+  Utilities::MPI::RemotePointEvaluation<dim, spacedim> rpe;
+
+  /**
+   * Partitioner to create internally distributed vectors.
+   */
+  std::shared_ptr<Utilities::MPI::Partitioner> partitioner;
+
+  /**
+   * Process local indices to access efficiently internal distributed vectors.
+   */
+  std::vector<types::global_dof_index> point_to_local_vector_indices;
+
+  /**
+   * Mapping of the original triangulation provided in update_mapping().
+   */
+  SmartPointer<const Mapping<dim, spacedim>> mapping;
+};
+
+DEAL_II_NAMESPACE_CLOSE
+
+#endif
index 513ace04d7bbeaf813233e98ab58ec6464790533..9b0031d40aa45ebdb8625ff7ef77bbb53e1d08a1 100644 (file)
@@ -18,8 +18,8 @@ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
 SET(_unity_include_src
   data_out.cc
   data_out_faces.cc
-  data_out_stack.cc
   data_out_rotation.cc
+  data_out_stack.cc
   data_postprocessor.cc
   dof_output_operator.cc
   histogram.cc
@@ -38,6 +38,7 @@ SET(_separate_src
   data_out_dof_data.cc
   data_out_dof_data_inst2.cc
   data_out_dof_data_codim.cc
+  data_out_resample.cc
   derivative_approximation.cc
   error_estimator_1d.cc
   error_estimator.cc
@@ -77,6 +78,7 @@ SET(_inst
   data_out_dof_data_codim.inst.in
   data_out_faces.inst.in
   data_out.inst.in
+  data_out_resample.inst.in
   data_out_rotation.inst.in
   data_out_stack.inst.in
   data_postprocessor.inst.in
diff --git a/source/numerics/data_out_resample.cc b/source/numerics/data_out_resample.cc
new file mode 100644 (file)
index 0000000..a2d564a
--- /dev/null
@@ -0,0 +1,202 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2021 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+#include <deal.II/dofs/dof_tools.h>
+
+#include <deal.II/fe/fe_q_iso_q1.h>
+#include <deal.II/fe/fe_tools.h>
+
+#include <deal.II/lac/la_parallel_block_vector.h>
+#include <deal.II/lac/la_parallel_vector.h>
+
+#include <deal.II/numerics/data_out_dof_data.templates.h>
+#include <deal.II/numerics/data_out_resample.h>
+#include <deal.II/numerics/vector_tools.h>
+
+#include <sstream>
+
+DEAL_II_NAMESPACE_OPEN
+
+
+template <int dim, int patch_dim, int spacedim>
+DataOutResample<dim, patch_dim, spacedim>::DataOutResample(
+  const Triangulation<patch_dim, spacedim> &patch_tria,
+  const Mapping<patch_dim, spacedim> &      patch_mapping)
+  : patch_dof_handler(patch_tria)
+  , patch_mapping(&patch_mapping)
+{}
+
+
+
+template <int dim, int patch_dim, int spacedim>
+void
+DataOutResample<dim, patch_dim, spacedim>::update_mapping(
+  const Mapping<dim, spacedim> &mapping,
+  const unsigned int            n_subdivisions)
+{
+  this->mapping = &mapping;
+  this->point_to_local_vector_indices.clear();
+
+  FE_Q_iso_Q1<patch_dim, spacedim> fe(
+    std::max<unsigned int>(1, n_subdivisions));
+  patch_dof_handler.distribute_dofs(fe);
+
+  std::vector<std::pair<types::global_dof_index, Point<spacedim>>> points_all;
+
+  Quadrature<patch_dim> quadrature(fe.get_unit_support_points());
+
+  FEValues<patch_dim, spacedim> fe_values(*patch_mapping,
+                                          fe,
+                                          quadrature,
+                                          update_quadrature_points);
+
+  std::vector<types::global_dof_index> dof_indices(fe.n_dofs_per_cell());
+
+  IndexSet active_dofs;
+  DoFTools::extract_locally_active_dofs(patch_dof_handler, active_dofs);
+  partitioner = std::make_shared<Utilities::MPI::Partitioner>(
+    patch_dof_handler.locally_owned_dofs(), active_dofs, MPI_COMM_WORLD);
+
+  for (const auto &cell : patch_dof_handler.active_cell_iterators())
+    {
+      if (cell->is_locally_owned() == false)
+        continue;
+
+      fe_values.reinit(cell);
+
+      cell->get_dof_indices(dof_indices);
+
+      for (unsigned int i = 0; i < dof_indices.size(); ++i)
+        points_all.emplace_back(partitioner->global_to_local(dof_indices[i]),
+                                fe_values.quadrature_point(i));
+    }
+
+  std::sort(points_all.begin(),
+            points_all.end(),
+            [](const auto &a, const auto &b) { return a.first < b.first; });
+  points_all.erase(std::unique(points_all.begin(),
+                               points_all.end(),
+                               [](const auto &a, const auto &b) {
+                                 return a.first == b.first;
+                               }),
+                   points_all.end());
+
+  std::vector<Point<spacedim>> points;
+
+  for (const auto &i : points_all)
+    {
+      point_to_local_vector_indices.push_back(i.first);
+      points.push_back(i.second);
+    }
+
+  rpe.reinit(points, *this->triangulation, *this->mapping);
+}
+
+
+
+template <int dim, int patch_dim, int spacedim>
+void
+DataOutResample<dim, patch_dim, spacedim>::build_patches(
+  const Mapping<dim, spacedim> &                                mapping,
+  const unsigned int                                            n_subdivisions,
+  const typename DataOut<patch_dim, spacedim>::CurvedCellRegion curved_region)
+{
+  this->update_mapping(mapping, n_subdivisions);
+  this->build_patches(curved_region);
+}
+
+
+
+template <int dim, int patch_dim, int spacedim>
+void
+DataOutResample<dim, patch_dim, spacedim>::build_patches(
+  const typename DataOut<patch_dim, spacedim>::CurvedCellRegion curved_region)
+{
+  patch_data_out.clear();
+
+  if (rpe.is_ready() == false)
+    {
+      Assert(
+        this->mapping,
+        ExcMessage(
+          "Mapping is not valid anymore! Please register a new mapping via "
+          "update_mapping() or the other build_patches() function."));
+      update_mapping(*this->mapping, patch_dof_handler.get_fe().degree);
+    }
+
+  std::vector<std::shared_ptr<LinearAlgebra::distributed::Vector<double>>>
+    vectors;
+
+  patch_data_out.attach_dof_handler(patch_dof_handler);
+
+  unsigned int counter = 0;
+
+  for (const auto &data : this->dof_data)
+    {
+      const auto data_ptr = dynamic_cast<
+        internal::DataOutImplementation::DataEntry<dim, spacedim, double> *>(
+        data.get());
+
+      Assert(data_ptr, ExcNotImplemented());
+
+      const auto &dh = *data_ptr->dof_handler;
+
+      // TODO: enable more components
+      AssertDimension(dh.get_fe_collection().n_components(), 1);
+
+      const auto values =
+        VectorTools::point_values<1>(rpe, dh, data_ptr->vector);
+
+      vectors.emplace_back(
+        std::make_shared<LinearAlgebra::distributed::Vector<double>>(
+          partitioner));
+
+      for (unsigned int j = 0; j < values.size(); ++j)
+        vectors.back()->local_element(point_to_local_vector_indices[j]) =
+          values[j];
+
+      vectors.back()->set_ghost_state(true);
+
+      // we can give the vectors arbitrary names ("temp_*") here, since these
+      // are only used internally (by patch_data_out) but not later on during
+      // the actual output to file
+      patch_data_out.add_data_vector(
+        *vectors.back(),
+        std::string("temp_" + std::to_string(counter)),
+        DataOut_DoFData<patch_dim, patch_dim, spacedim, spacedim>::
+          DataVectorType::type_dof_data);
+
+      counter++;
+    }
+
+  patch_data_out.build_patches(*patch_mapping,
+                               patch_dof_handler.get_fe().degree,
+                               curved_region);
+}
+
+
+
+template <int dim, int patch_dim, int spacedim>
+const std::vector<typename DataOutBase::Patch<patch_dim, spacedim>> &
+DataOutResample<dim, patch_dim, spacedim>::get_patches() const
+{
+  return patch_data_out.get_patches();
+}
+
+
+// explicit instantiations
+#include "data_out_resample.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/source/numerics/data_out_resample.inst.in b/source/numerics/data_out_resample.inst.in
new file mode 100644 (file)
index 0000000..853119f
--- /dev/null
@@ -0,0 +1,26 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2021 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+
+for (deal_II_dimension : DIMENSIONS; deal_II_patch_dimension : DIMENSIONS;
+     deal_II_space_dimension : DIMENSIONS)
+  {
+#if deal_II_dimension == deal_II_space_dimension && \
+  deal_II_patch_dimension <= deal_II_space_dimension
+    template class DataOutResample<deal_II_dimension,
+                                   deal_II_patch_dimension,
+                                   deal_II_space_dimension>;
+#endif
+  }
diff --git a/tests/remote_point_evaluation/data_out_resample_01.cc b/tests/remote_point_evaluation/data_out_resample_01.cc
new file mode 100644 (file)
index 0000000..7d55c87
--- /dev/null
@@ -0,0 +1,121 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2021 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+// Test DataOutResample to create a slice.
+
+#include <deal.II/base/conditional_ostream.h>
+#include <deal.II/base/mpi_remote_point_evaluation.h>
+
+#include <deal.II/distributed/tria.h>
+
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/dofs/dof_tools.h>
+
+#include <deal.II/fe/fe_q.h>
+
+#include <deal.II/grid/grid_generator.h>
+
+#include <deal.II/numerics/data_out_resample.h>
+#include <deal.II/numerics/vector_tools.h>
+
+#include "../tests.h"
+
+using namespace dealii;
+
+template <int dim>
+class AnalyticalFunction : public Function<dim>
+{
+public:
+  AnalyticalFunction()
+    : Function<dim>(1)
+  {}
+
+  virtual double
+  value(const Point<dim> &p, const unsigned int component = 0) const
+  {
+    (void)component;
+
+    return p[0] * p[0] + p[1] * p[1] + p[2] * p[2];
+  }
+};
+
+
+template <int dim, int spacedim>
+std::shared_ptr<const Utilities::MPI::Partitioner>
+create_partitioner(const DoFHandler<dim, spacedim> &dof_handler)
+{
+  IndexSet locally_relevant_dofs;
+
+  DoFTools::extract_locally_relevant_dofs(dof_handler, locally_relevant_dofs);
+
+  return std::make_shared<const Utilities::MPI::Partitioner>(
+    dof_handler.locally_owned_dofs(),
+    locally_relevant_dofs,
+    dof_handler.get_communicator());
+}
+
+
+
+int
+main(int argc, char **argv)
+{
+  Utilities::MPI::MPI_InitFinalize mpi(argc, argv, 1);
+  MPILogInitAll                    all;
+
+  const int dim       = 3;
+  const int patch_dim = 2;
+  const int spacedim  = 3;
+
+  const unsigned int n_refinements_1 = 3;
+  const unsigned int n_refinements_2 = 3;
+  const MPI_Comm     comm            = MPI_COMM_WORLD;
+
+  parallel::distributed::Triangulation<patch_dim, spacedim> tria_slice(comm);
+  GridGenerator::hyper_cube(tria_slice, -1.0, +1.0);
+  tria_slice.refine_global(n_refinements_2);
+
+  MappingQ1<patch_dim, spacedim> mapping_slice;
+
+  parallel::distributed::Triangulation<dim, spacedim> tria_backround(comm);
+  GridGenerator::hyper_cube(tria_backround, -1.0, +1.0);
+  tria_backround.refine_global(n_refinements_1);
+
+  DoFHandler<dim, spacedim> dof_handler(tria_backround);
+  dof_handler.distribute_dofs(FE_Q<dim, spacedim>{1});
+
+  MappingQ1<dim, spacedim> mapping;
+
+  LinearAlgebra::distributed::Vector<double> vector(
+    create_partitioner(dof_handler));
+
+  VectorTools::interpolate(mapping,
+                           dof_handler,
+                           AnalyticalFunction<dim>(),
+                           vector);
+
+  vector.update_ghost_values();
+
+  DataOutResample<dim, patch_dim, spacedim> data_out(tria_slice, mapping_slice);
+  data_out.add_data_vector(dof_handler, vector, "solution_0");
+  data_out.add_data_vector(dof_handler, vector, "solution_1");
+  data_out.update_mapping(mapping);
+  data_out.build_patches();
+
+#if 1
+  data_out.write_vtk(deallog.get_file_stream());
+#else
+  data_out.write_vtu_with_pvtu_record("./", "data_out_01", 0, comm, 1, 1);
+#endif
+}
diff --git a/tests/remote_point_evaluation/data_out_resample_01.mpirun=1.output b/tests/remote_point_evaluation/data_out_resample_01.mpirun=1.output
new file mode 100644 (file)
index 0000000..c939428
--- /dev/null
@@ -0,0 +1,339 @@
+
+# vtk DataFile Version 3.0
+#This file was generated 
+ASCII
+DATASET UNSTRUCTURED_GRID
+
+POINTS 256 double
+-1.00000 -1.00000 0.00000
+-0.750000 -1.00000 0.00000
+-1.00000 -0.750000 0.00000
+-0.750000 -0.750000 0.00000
+-0.750000 -1.00000 0.00000
+-0.500000 -1.00000 0.00000
+-0.750000 -0.750000 0.00000
+-0.500000 -0.750000 0.00000
+-1.00000 -0.750000 0.00000
+-0.750000 -0.750000 0.00000
+-1.00000 -0.500000 0.00000
+-0.750000 -0.500000 0.00000
+-0.750000 -0.750000 0.00000
+-0.500000 -0.750000 0.00000
+-0.750000 -0.500000 0.00000
+-0.500000 -0.500000 0.00000
+-0.500000 -1.00000 0.00000
+-0.250000 -1.00000 0.00000
+-0.500000 -0.750000 0.00000
+-0.250000 -0.750000 0.00000
+-0.250000 -1.00000 0.00000
+0.00000 -1.00000 0.00000
+-0.250000 -0.750000 0.00000
+0.00000 -0.750000 0.00000
+-0.500000 -0.750000 0.00000
+-0.250000 -0.750000 0.00000
+-0.500000 -0.500000 0.00000
+-0.250000 -0.500000 0.00000
+-0.250000 -0.750000 0.00000
+0.00000 -0.750000 0.00000
+-0.250000 -0.500000 0.00000
+0.00000 -0.500000 0.00000
+-1.00000 -0.500000 0.00000
+-0.750000 -0.500000 0.00000
+-1.00000 -0.250000 0.00000
+-0.750000 -0.250000 0.00000
+-0.750000 -0.500000 0.00000
+-0.500000 -0.500000 0.00000
+-0.750000 -0.250000 0.00000
+-0.500000 -0.250000 0.00000
+-1.00000 -0.250000 0.00000
+-0.750000 -0.250000 0.00000
+-1.00000 0.00000 0.00000
+-0.750000 0.00000 0.00000
+-0.750000 -0.250000 0.00000
+-0.500000 -0.250000 0.00000
+-0.750000 0.00000 0.00000
+-0.500000 0.00000 0.00000
+-0.500000 -0.500000 0.00000
+-0.250000 -0.500000 0.00000
+-0.500000 -0.250000 0.00000
+-0.250000 -0.250000 0.00000
+-0.250000 -0.500000 0.00000
+0.00000 -0.500000 0.00000
+-0.250000 -0.250000 0.00000
+0.00000 -0.250000 0.00000
+-0.500000 -0.250000 0.00000
+-0.250000 -0.250000 0.00000
+-0.500000 0.00000 0.00000
+-0.250000 0.00000 0.00000
+-0.250000 -0.250000 0.00000
+0.00000 -0.250000 0.00000
+-0.250000 0.00000 0.00000
+0.00000 0.00000 0.00000
+0.00000 -1.00000 0.00000
+0.250000 -1.00000 0.00000
+0.00000 -0.750000 0.00000
+0.250000 -0.750000 0.00000
+0.250000 -1.00000 0.00000
+0.500000 -1.00000 0.00000
+0.250000 -0.750000 0.00000
+0.500000 -0.750000 0.00000
+0.00000 -0.750000 0.00000
+0.250000 -0.750000 0.00000
+0.00000 -0.500000 0.00000
+0.250000 -0.500000 0.00000
+0.250000 -0.750000 0.00000
+0.500000 -0.750000 0.00000
+0.250000 -0.500000 0.00000
+0.500000 -0.500000 0.00000
+0.500000 -1.00000 0.00000
+0.750000 -1.00000 0.00000
+0.500000 -0.750000 0.00000
+0.750000 -0.750000 0.00000
+0.750000 -1.00000 0.00000
+1.00000 -1.00000 0.00000
+0.750000 -0.750000 0.00000
+1.00000 -0.750000 0.00000
+0.500000 -0.750000 0.00000
+0.750000 -0.750000 0.00000
+0.500000 -0.500000 0.00000
+0.750000 -0.500000 0.00000
+0.750000 -0.750000 0.00000
+1.00000 -0.750000 0.00000
+0.750000 -0.500000 0.00000
+1.00000 -0.500000 0.00000
+0.00000 -0.500000 0.00000
+0.250000 -0.500000 0.00000
+0.00000 -0.250000 0.00000
+0.250000 -0.250000 0.00000
+0.250000 -0.500000 0.00000
+0.500000 -0.500000 0.00000
+0.250000 -0.250000 0.00000
+0.500000 -0.250000 0.00000
+0.00000 -0.250000 0.00000
+0.250000 -0.250000 0.00000
+0.00000 0.00000 0.00000
+0.250000 0.00000 0.00000
+0.250000 -0.250000 0.00000
+0.500000 -0.250000 0.00000
+0.250000 0.00000 0.00000
+0.500000 0.00000 0.00000
+0.500000 -0.500000 0.00000
+0.750000 -0.500000 0.00000
+0.500000 -0.250000 0.00000
+0.750000 -0.250000 0.00000
+0.750000 -0.500000 0.00000
+1.00000 -0.500000 0.00000
+0.750000 -0.250000 0.00000
+1.00000 -0.250000 0.00000
+0.500000 -0.250000 0.00000
+0.750000 -0.250000 0.00000
+0.500000 0.00000 0.00000
+0.750000 0.00000 0.00000
+0.750000 -0.250000 0.00000
+1.00000 -0.250000 0.00000
+0.750000 0.00000 0.00000
+1.00000 0.00000 0.00000
+-1.00000 0.00000 0.00000
+-0.750000 0.00000 0.00000
+-1.00000 0.250000 0.00000
+-0.750000 0.250000 0.00000
+-0.750000 0.00000 0.00000
+-0.500000 0.00000 0.00000
+-0.750000 0.250000 0.00000
+-0.500000 0.250000 0.00000
+-1.00000 0.250000 0.00000
+-0.750000 0.250000 0.00000
+-1.00000 0.500000 0.00000
+-0.750000 0.500000 0.00000
+-0.750000 0.250000 0.00000
+-0.500000 0.250000 0.00000
+-0.750000 0.500000 0.00000
+-0.500000 0.500000 0.00000
+-0.500000 0.00000 0.00000
+-0.250000 0.00000 0.00000
+-0.500000 0.250000 0.00000
+-0.250000 0.250000 0.00000
+-0.250000 0.00000 0.00000
+0.00000 0.00000 0.00000
+-0.250000 0.250000 0.00000
+0.00000 0.250000 0.00000
+-0.500000 0.250000 0.00000
+-0.250000 0.250000 0.00000
+-0.500000 0.500000 0.00000
+-0.250000 0.500000 0.00000
+-0.250000 0.250000 0.00000
+0.00000 0.250000 0.00000
+-0.250000 0.500000 0.00000
+0.00000 0.500000 0.00000
+-1.00000 0.500000 0.00000
+-0.750000 0.500000 0.00000
+-1.00000 0.750000 0.00000
+-0.750000 0.750000 0.00000
+-0.750000 0.500000 0.00000
+-0.500000 0.500000 0.00000
+-0.750000 0.750000 0.00000
+-0.500000 0.750000 0.00000
+-1.00000 0.750000 0.00000
+-0.750000 0.750000 0.00000
+-1.00000 1.00000 0.00000
+-0.750000 1.00000 0.00000
+-0.750000 0.750000 0.00000
+-0.500000 0.750000 0.00000
+-0.750000 1.00000 0.00000
+-0.500000 1.00000 0.00000
+-0.500000 0.500000 0.00000
+-0.250000 0.500000 0.00000
+-0.500000 0.750000 0.00000
+-0.250000 0.750000 0.00000
+-0.250000 0.500000 0.00000
+0.00000 0.500000 0.00000
+-0.250000 0.750000 0.00000
+0.00000 0.750000 0.00000
+-0.500000 0.750000 0.00000
+-0.250000 0.750000 0.00000
+-0.500000 1.00000 0.00000
+-0.250000 1.00000 0.00000
+-0.250000 0.750000 0.00000
+0.00000 0.750000 0.00000
+-0.250000 1.00000 0.00000
+0.00000 1.00000 0.00000
+0.00000 0.00000 0.00000
+0.250000 0.00000 0.00000
+0.00000 0.250000 0.00000
+0.250000 0.250000 0.00000
+0.250000 0.00000 0.00000
+0.500000 0.00000 0.00000
+0.250000 0.250000 0.00000
+0.500000 0.250000 0.00000
+0.00000 0.250000 0.00000
+0.250000 0.250000 0.00000
+0.00000 0.500000 0.00000
+0.250000 0.500000 0.00000
+0.250000 0.250000 0.00000
+0.500000 0.250000 0.00000
+0.250000 0.500000 0.00000
+0.500000 0.500000 0.00000
+0.500000 0.00000 0.00000
+0.750000 0.00000 0.00000
+0.500000 0.250000 0.00000
+0.750000 0.250000 0.00000
+0.750000 0.00000 0.00000
+1.00000 0.00000 0.00000
+0.750000 0.250000 0.00000
+1.00000 0.250000 0.00000
+0.500000 0.250000 0.00000
+0.750000 0.250000 0.00000
+0.500000 0.500000 0.00000
+0.750000 0.500000 0.00000
+0.750000 0.250000 0.00000
+1.00000 0.250000 0.00000
+0.750000 0.500000 0.00000
+1.00000 0.500000 0.00000
+0.00000 0.500000 0.00000
+0.250000 0.500000 0.00000
+0.00000 0.750000 0.00000
+0.250000 0.750000 0.00000
+0.250000 0.500000 0.00000
+0.500000 0.500000 0.00000
+0.250000 0.750000 0.00000
+0.500000 0.750000 0.00000
+0.00000 0.750000 0.00000
+0.250000 0.750000 0.00000
+0.00000 1.00000 0.00000
+0.250000 1.00000 0.00000
+0.250000 0.750000 0.00000
+0.500000 0.750000 0.00000
+0.250000 1.00000 0.00000
+0.500000 1.00000 0.00000
+0.500000 0.500000 0.00000
+0.750000 0.500000 0.00000
+0.500000 0.750000 0.00000
+0.750000 0.750000 0.00000
+0.750000 0.500000 0.00000
+1.00000 0.500000 0.00000
+0.750000 0.750000 0.00000
+1.00000 0.750000 0.00000
+0.500000 0.750000 0.00000
+0.750000 0.750000 0.00000
+0.500000 1.00000 0.00000
+0.750000 1.00000 0.00000
+0.750000 0.750000 0.00000
+1.00000 0.750000 0.00000
+0.750000 1.00000 0.00000
+1.00000 1.00000 0.00000
+
+CELLS 64 320
+4      0       1       3       2
+4      4       5       7       6
+4      8       9       11      10
+4      12      13      15      14
+4      16      17      19      18
+4      20      21      23      22
+4      24      25      27      26
+4      28      29      31      30
+4      32      33      35      34
+4      36      37      39      38
+4      40      41      43      42
+4      44      45      47      46
+4      48      49      51      50
+4      52      53      55      54
+4      56      57      59      58
+4      60      61      63      62
+4      64      65      67      66
+4      68      69      71      70
+4      72      73      75      74
+4      76      77      79      78
+4      80      81      83      82
+4      84      85      87      86
+4      88      89      91      90
+4      92      93      95      94
+4      96      97      99      98
+4      100     101     103     102
+4      104     105     107     106
+4      108     109     111     110
+4      112     113     115     114
+4      116     117     119     118
+4      120     121     123     122
+4      124     125     127     126
+4      128     129     131     130
+4      132     133     135     134
+4      136     137     139     138
+4      140     141     143     142
+4      144     145     147     146
+4      148     149     151     150
+4      152     153     155     154
+4      156     157     159     158
+4      160     161     163     162
+4      164     165     167     166
+4      168     169     171     170
+4      172     173     175     174
+4      176     177     179     178
+4      180     181     183     182
+4      184     185     187     186
+4      188     189     191     190
+4      192     193     195     194
+4      196     197     199     198
+4      200     201     203     202
+4      204     205     207     206
+4      208     209     211     210
+4      212     213     215     214
+4      216     217     219     218
+4      220     221     223     222
+4      224     225     227     226
+4      228     229     231     230
+4      232     233     235     234
+4      236     237     239     238
+4      240     241     243     242
+4      244     245     247     246
+4      248     249     251     250
+4      252     253     255     254
+
+CELL_TYPES 64
+ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+POINT_DATA 256
+SCALARS solution_0 double 1
+LOOKUP_TABLE default
+2.00000 1.56250 1.56250 1.12500 1.56250 1.25000 1.12500 0.812500 1.56250 1.12500 1.25000 0.812500 1.12500 0.812500 0.812500 0.500000 1.25000 1.06250 0.812500 0.625000 1.06250 1.00000 0.625000 0.562500 0.812500 0.625000 0.500000 0.312500 0.625000 0.562500 0.312500 0.250000 1.25000 0.812500 1.06250 0.625000 0.812500 0.500000 0.625000 0.312500 1.06250 0.625000 1.00000 0.562500 0.625000 0.312500 0.562500 0.250000 0.500000 0.312500 0.312500 0.125000 0.312500 0.250000 0.125000 0.0625000 0.312500 0.125000 0.250000 0.0625000 0.125000 0.0625000 0.0625000 0.00000 1.00000 1.06250 0.562500 0.625000 1.06250 1.25000 0.625000 0.812500 0.562500 0.625000 0.250000 0.312500 0.625000 0.812500 0.312500 0.500000 1.25000 1.56250 0.812500 1.12500 1.56250 2.00000 1.12500 1.56250 0.812500 1.12500 0.500000 0.812500 1.12500 1.56250 0.812500 1.25000 0.250000 0.312500 0.0625000 0.125000 0.312500 0.500000 0.125000 0.312500 0.0625000 0.125000 0.00000 0.0625000 0.125000 0.312500 0.0625000 0.250000 0.500000 0.812500 0.312500 0.625000 0.812500 1.25000 0.625000 1.06250 0.312500 0.625000 0.250000 0.562500 0.625000 1.06250 0.562500 1.00000 1.00000 0.562500 1.06250 0.625000 0.562500 0.250000 0.625000 0.312500 1.06250 0.625000 1.25000 0.812500 0.625000 0.312500 0.812500 0.500000 0.250000 0.0625000 0.312500 0.125000 0.0625000 0.00000 0.125000 0.0625000 0.312500 0.125000 0.500000 0.312500 0.125000 0.0625000 0.312500 0.250000 1.25000 0.812500 1.56250 1.12500 0.812500 0.500000 1.12500 0.812500 1.56250 1.12500 2.00000 1.56250 1.12500 0.812500 1.56250 1.25000 0.500000 0.312500 0.812500 0.625000 0.312500 0.250000 0.625000 0.562500 0.812500 0.625000 1.25000 1.06250 0.625000 0.562500 1.06250 1.00000 0.00000 0.0625000 0.0625000 0.125000 0.0625000 0.250000 0.125000 0.312500 0.0625000 0.125000 0.250000 0.312500 0.125000 0.312500 0.312500 0.500000 0.250000 0.562500 0.312500 0.625000 0.562500 1.00000 0.625000 1.06250 0.312500 0.625000 0.500000 0.812500 0.625000 1.06250 0.812500 1.25000 0.250000 0.312500 0.562500 0.625000 0.312500 0.500000 0.625000 0.812500 0.562500 0.625000 1.00000 1.06250 0.625000 0.812500 1.06250 1.25000 0.500000 0.812500 0.812500 1.12500 0.812500 1.25000 1.12500 1.56250 0.812500 1.12500 1.25000 1.56250 1.12500 1.56250 1.56250 2.00000 
+SCALARS solution_1 double 1
+LOOKUP_TABLE default
+2.00000 1.56250 1.56250 1.12500 1.56250 1.25000 1.12500 0.812500 1.56250 1.12500 1.25000 0.812500 1.12500 0.812500 0.812500 0.500000 1.25000 1.06250 0.812500 0.625000 1.06250 1.00000 0.625000 0.562500 0.812500 0.625000 0.500000 0.312500 0.625000 0.562500 0.312500 0.250000 1.25000 0.812500 1.06250 0.625000 0.812500 0.500000 0.625000 0.312500 1.06250 0.625000 1.00000 0.562500 0.625000 0.312500 0.562500 0.250000 0.500000 0.312500 0.312500 0.125000 0.312500 0.250000 0.125000 0.0625000 0.312500 0.125000 0.250000 0.0625000 0.125000 0.0625000 0.0625000 0.00000 1.00000 1.06250 0.562500 0.625000 1.06250 1.25000 0.625000 0.812500 0.562500 0.625000 0.250000 0.312500 0.625000 0.812500 0.312500 0.500000 1.25000 1.56250 0.812500 1.12500 1.56250 2.00000 1.12500 1.56250 0.812500 1.12500 0.500000 0.812500 1.12500 1.56250 0.812500 1.25000 0.250000 0.312500 0.0625000 0.125000 0.312500 0.500000 0.125000 0.312500 0.0625000 0.125000 0.00000 0.0625000 0.125000 0.312500 0.0625000 0.250000 0.500000 0.812500 0.312500 0.625000 0.812500 1.25000 0.625000 1.06250 0.312500 0.625000 0.250000 0.562500 0.625000 1.06250 0.562500 1.00000 1.00000 0.562500 1.06250 0.625000 0.562500 0.250000 0.625000 0.312500 1.06250 0.625000 1.25000 0.812500 0.625000 0.312500 0.812500 0.500000 0.250000 0.0625000 0.312500 0.125000 0.0625000 0.00000 0.125000 0.0625000 0.312500 0.125000 0.500000 0.312500 0.125000 0.0625000 0.312500 0.250000 1.25000 0.812500 1.56250 1.12500 0.812500 0.500000 1.12500 0.812500 1.56250 1.12500 2.00000 1.56250 1.12500 0.812500 1.56250 1.25000 0.500000 0.312500 0.812500 0.625000 0.312500 0.250000 0.625000 0.562500 0.812500 0.625000 1.25000 1.06250 0.625000 0.562500 1.06250 1.00000 0.00000 0.0625000 0.0625000 0.125000 0.0625000 0.250000 0.125000 0.312500 0.0625000 0.125000 0.250000 0.312500 0.125000 0.312500 0.312500 0.500000 0.250000 0.562500 0.312500 0.625000 0.562500 1.00000 0.625000 1.06250 0.312500 0.625000 0.500000 0.812500 0.625000 1.06250 0.812500 1.25000 0.250000 0.312500 0.562500 0.625000 0.312500 0.500000 0.625000 0.812500 0.562500 0.625000 1.00000 1.06250 0.625000 0.812500 1.06250 1.25000 0.500000 0.812500 0.812500 1.12500 0.812500 1.25000 1.12500 1.56250 0.812500 1.12500 1.25000 1.56250 1.12500 1.56250 1.56250 2.00000 
diff --git a/tests/remote_point_evaluation/data_out_resample_01.mpirun=4.output b/tests/remote_point_evaluation/data_out_resample_01.mpirun=4.output
new file mode 100644 (file)
index 0000000..a945c59
--- /dev/null
@@ -0,0 +1,399 @@
+
+# vtk DataFile Version 3.0
+#This file was generated 
+ASCII
+DATASET UNSTRUCTURED_GRID
+
+POINTS 64 double
+-1.00000 -1.00000 0.00000
+-0.750000 -1.00000 0.00000
+-1.00000 -0.750000 0.00000
+-0.750000 -0.750000 0.00000
+-0.750000 -1.00000 0.00000
+-0.500000 -1.00000 0.00000
+-0.750000 -0.750000 0.00000
+-0.500000 -0.750000 0.00000
+-1.00000 -0.750000 0.00000
+-0.750000 -0.750000 0.00000
+-1.00000 -0.500000 0.00000
+-0.750000 -0.500000 0.00000
+-0.750000 -0.750000 0.00000
+-0.500000 -0.750000 0.00000
+-0.750000 -0.500000 0.00000
+-0.500000 -0.500000 0.00000
+-0.500000 -1.00000 0.00000
+-0.250000 -1.00000 0.00000
+-0.500000 -0.750000 0.00000
+-0.250000 -0.750000 0.00000
+-0.250000 -1.00000 0.00000
+0.00000 -1.00000 0.00000
+-0.250000 -0.750000 0.00000
+0.00000 -0.750000 0.00000
+-0.500000 -0.750000 0.00000
+-0.250000 -0.750000 0.00000
+-0.500000 -0.500000 0.00000
+-0.250000 -0.500000 0.00000
+-0.250000 -0.750000 0.00000
+0.00000 -0.750000 0.00000
+-0.250000 -0.500000 0.00000
+0.00000 -0.500000 0.00000
+-1.00000 -0.500000 0.00000
+-0.750000 -0.500000 0.00000
+-1.00000 -0.250000 0.00000
+-0.750000 -0.250000 0.00000
+-0.750000 -0.500000 0.00000
+-0.500000 -0.500000 0.00000
+-0.750000 -0.250000 0.00000
+-0.500000 -0.250000 0.00000
+-1.00000 -0.250000 0.00000
+-0.750000 -0.250000 0.00000
+-1.00000 0.00000 0.00000
+-0.750000 0.00000 0.00000
+-0.750000 -0.250000 0.00000
+-0.500000 -0.250000 0.00000
+-0.750000 0.00000 0.00000
+-0.500000 0.00000 0.00000
+-0.500000 -0.500000 0.00000
+-0.250000 -0.500000 0.00000
+-0.500000 -0.250000 0.00000
+-0.250000 -0.250000 0.00000
+-0.250000 -0.500000 0.00000
+0.00000 -0.500000 0.00000
+-0.250000 -0.250000 0.00000
+0.00000 -0.250000 0.00000
+-0.500000 -0.250000 0.00000
+-0.250000 -0.250000 0.00000
+-0.500000 0.00000 0.00000
+-0.250000 0.00000 0.00000
+-0.250000 -0.250000 0.00000
+0.00000 -0.250000 0.00000
+-0.250000 0.00000 0.00000
+0.00000 0.00000 0.00000
+
+CELLS 16 80
+4      0       1       3       2
+4      4       5       7       6
+4      8       9       11      10
+4      12      13      15      14
+4      16      17      19      18
+4      20      21      23      22
+4      24      25      27      26
+4      28      29      31      30
+4      32      33      35      34
+4      36      37      39      38
+4      40      41      43      42
+4      44      45      47      46
+4      48      49      51      50
+4      52      53      55      54
+4      56      57      59      58
+4      60      61      63      62
+
+CELL_TYPES 16
+ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+POINT_DATA 64
+SCALARS solution_0 double 1
+LOOKUP_TABLE default
+2.00000 1.56250 1.56250 1.12500 1.56250 1.25000 1.12500 0.812500 1.56250 1.12500 1.25000 0.812500 1.12500 0.812500 0.812500 0.500000 1.25000 1.06250 0.812500 0.625000 1.06250 1.00000 0.625000 0.562500 0.812500 0.625000 0.500000 0.312500 0.625000 0.562500 0.312500 0.250000 1.25000 0.812500 1.06250 0.625000 0.812500 0.500000 0.625000 0.312500 1.06250 0.625000 1.00000 0.562500 0.625000 0.312500 0.562500 0.250000 0.500000 0.312500 0.312500 0.125000 0.312500 0.250000 0.125000 0.0625000 0.312500 0.125000 0.250000 0.0625000 0.125000 0.0625000 0.0625000 0.00000 
+SCALARS solution_1 double 1
+LOOKUP_TABLE default
+2.00000 1.56250 1.56250 1.12500 1.56250 1.25000 1.12500 0.812500 1.56250 1.12500 1.25000 0.812500 1.12500 0.812500 0.812500 0.500000 1.25000 1.06250 0.812500 0.625000 1.06250 1.00000 0.625000 0.562500 0.812500 0.625000 0.500000 0.312500 0.625000 0.562500 0.312500 0.250000 1.25000 0.812500 1.06250 0.625000 0.812500 0.500000 0.625000 0.312500 1.06250 0.625000 1.00000 0.562500 0.625000 0.312500 0.562500 0.250000 0.500000 0.312500 0.312500 0.125000 0.312500 0.250000 0.125000 0.0625000 0.312500 0.125000 0.250000 0.0625000 0.125000 0.0625000 0.0625000 0.00000 
+
+# vtk DataFile Version 3.0
+#This file was generated 
+ASCII
+DATASET UNSTRUCTURED_GRID
+
+POINTS 64 double
+0.00000 -1.00000 0.00000
+0.250000 -1.00000 0.00000
+0.00000 -0.750000 0.00000
+0.250000 -0.750000 0.00000
+0.250000 -1.00000 0.00000
+0.500000 -1.00000 0.00000
+0.250000 -0.750000 0.00000
+0.500000 -0.750000 0.00000
+0.00000 -0.750000 0.00000
+0.250000 -0.750000 0.00000
+0.00000 -0.500000 0.00000
+0.250000 -0.500000 0.00000
+0.250000 -0.750000 0.00000
+0.500000 -0.750000 0.00000
+0.250000 -0.500000 0.00000
+0.500000 -0.500000 0.00000
+0.500000 -1.00000 0.00000
+0.750000 -1.00000 0.00000
+0.500000 -0.750000 0.00000
+0.750000 -0.750000 0.00000
+0.750000 -1.00000 0.00000
+1.00000 -1.00000 0.00000
+0.750000 -0.750000 0.00000
+1.00000 -0.750000 0.00000
+0.500000 -0.750000 0.00000
+0.750000 -0.750000 0.00000
+0.500000 -0.500000 0.00000
+0.750000 -0.500000 0.00000
+0.750000 -0.750000 0.00000
+1.00000 -0.750000 0.00000
+0.750000 -0.500000 0.00000
+1.00000 -0.500000 0.00000
+0.00000 -0.500000 0.00000
+0.250000 -0.500000 0.00000
+0.00000 -0.250000 0.00000
+0.250000 -0.250000 0.00000
+0.250000 -0.500000 0.00000
+0.500000 -0.500000 0.00000
+0.250000 -0.250000 0.00000
+0.500000 -0.250000 0.00000
+0.00000 -0.250000 0.00000
+0.250000 -0.250000 0.00000
+0.00000 0.00000 0.00000
+0.250000 0.00000 0.00000
+0.250000 -0.250000 0.00000
+0.500000 -0.250000 0.00000
+0.250000 0.00000 0.00000
+0.500000 0.00000 0.00000
+0.500000 -0.500000 0.00000
+0.750000 -0.500000 0.00000
+0.500000 -0.250000 0.00000
+0.750000 -0.250000 0.00000
+0.750000 -0.500000 0.00000
+1.00000 -0.500000 0.00000
+0.750000 -0.250000 0.00000
+1.00000 -0.250000 0.00000
+0.500000 -0.250000 0.00000
+0.750000 -0.250000 0.00000
+0.500000 0.00000 0.00000
+0.750000 0.00000 0.00000
+0.750000 -0.250000 0.00000
+1.00000 -0.250000 0.00000
+0.750000 0.00000 0.00000
+1.00000 0.00000 0.00000
+
+CELLS 16 80
+4      0       1       3       2
+4      4       5       7       6
+4      8       9       11      10
+4      12      13      15      14
+4      16      17      19      18
+4      20      21      23      22
+4      24      25      27      26
+4      28      29      31      30
+4      32      33      35      34
+4      36      37      39      38
+4      40      41      43      42
+4      44      45      47      46
+4      48      49      51      50
+4      52      53      55      54
+4      56      57      59      58
+4      60      61      63      62
+
+CELL_TYPES 16
+ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+POINT_DATA 64
+SCALARS solution_0 double 1
+LOOKUP_TABLE default
+1.00000 1.06250 0.562500 0.625000 1.06250 1.25000 0.625000 0.812500 0.562500 0.625000 0.250000 0.312500 0.625000 0.812500 0.312500 0.500000 1.25000 1.56250 0.812500 1.12500 1.56250 2.00000 1.12500 1.56250 0.812500 1.12500 0.500000 0.812500 1.12500 1.56250 0.812500 1.25000 0.250000 0.312500 0.0625000 0.125000 0.312500 0.500000 0.125000 0.312500 0.0625000 0.125000 0.00000 0.0625000 0.125000 0.312500 0.0625000 0.250000 0.500000 0.812500 0.312500 0.625000 0.812500 1.25000 0.625000 1.06250 0.312500 0.625000 0.250000 0.562500 0.625000 1.06250 0.562500 1.00000 
+SCALARS solution_1 double 1
+LOOKUP_TABLE default
+1.00000 1.06250 0.562500 0.625000 1.06250 1.25000 0.625000 0.812500 0.562500 0.625000 0.250000 0.312500 0.625000 0.812500 0.312500 0.500000 1.25000 1.56250 0.812500 1.12500 1.56250 2.00000 1.12500 1.56250 0.812500 1.12500 0.500000 0.812500 1.12500 1.56250 0.812500 1.25000 0.250000 0.312500 0.0625000 0.125000 0.312500 0.500000 0.125000 0.312500 0.0625000 0.125000 0.00000 0.0625000 0.125000 0.312500 0.0625000 0.250000 0.500000 0.812500 0.312500 0.625000 0.812500 1.25000 0.625000 1.06250 0.312500 0.625000 0.250000 0.562500 0.625000 1.06250 0.562500 1.00000 
+
+
+# vtk DataFile Version 3.0
+#This file was generated 
+ASCII
+DATASET UNSTRUCTURED_GRID
+
+POINTS 64 double
+-1.00000 0.00000 0.00000
+-0.750000 0.00000 0.00000
+-1.00000 0.250000 0.00000
+-0.750000 0.250000 0.00000
+-0.750000 0.00000 0.00000
+-0.500000 0.00000 0.00000
+-0.750000 0.250000 0.00000
+-0.500000 0.250000 0.00000
+-1.00000 0.250000 0.00000
+-0.750000 0.250000 0.00000
+-1.00000 0.500000 0.00000
+-0.750000 0.500000 0.00000
+-0.750000 0.250000 0.00000
+-0.500000 0.250000 0.00000
+-0.750000 0.500000 0.00000
+-0.500000 0.500000 0.00000
+-0.500000 0.00000 0.00000
+-0.250000 0.00000 0.00000
+-0.500000 0.250000 0.00000
+-0.250000 0.250000 0.00000
+-0.250000 0.00000 0.00000
+0.00000 0.00000 0.00000
+-0.250000 0.250000 0.00000
+0.00000 0.250000 0.00000
+-0.500000 0.250000 0.00000
+-0.250000 0.250000 0.00000
+-0.500000 0.500000 0.00000
+-0.250000 0.500000 0.00000
+-0.250000 0.250000 0.00000
+0.00000 0.250000 0.00000
+-0.250000 0.500000 0.00000
+0.00000 0.500000 0.00000
+-1.00000 0.500000 0.00000
+-0.750000 0.500000 0.00000
+-1.00000 0.750000 0.00000
+-0.750000 0.750000 0.00000
+-0.750000 0.500000 0.00000
+-0.500000 0.500000 0.00000
+-0.750000 0.750000 0.00000
+-0.500000 0.750000 0.00000
+-1.00000 0.750000 0.00000
+-0.750000 0.750000 0.00000
+-1.00000 1.00000 0.00000
+-0.750000 1.00000 0.00000
+-0.750000 0.750000 0.00000
+-0.500000 0.750000 0.00000
+-0.750000 1.00000 0.00000
+-0.500000 1.00000 0.00000
+-0.500000 0.500000 0.00000
+-0.250000 0.500000 0.00000
+-0.500000 0.750000 0.00000
+-0.250000 0.750000 0.00000
+-0.250000 0.500000 0.00000
+0.00000 0.500000 0.00000
+-0.250000 0.750000 0.00000
+0.00000 0.750000 0.00000
+-0.500000 0.750000 0.00000
+-0.250000 0.750000 0.00000
+-0.500000 1.00000 0.00000
+-0.250000 1.00000 0.00000
+-0.250000 0.750000 0.00000
+0.00000 0.750000 0.00000
+-0.250000 1.00000 0.00000
+0.00000 1.00000 0.00000
+
+CELLS 16 80
+4      0       1       3       2
+4      4       5       7       6
+4      8       9       11      10
+4      12      13      15      14
+4      16      17      19      18
+4      20      21      23      22
+4      24      25      27      26
+4      28      29      31      30
+4      32      33      35      34
+4      36      37      39      38
+4      40      41      43      42
+4      44      45      47      46
+4      48      49      51      50
+4      52      53      55      54
+4      56      57      59      58
+4      60      61      63      62
+
+CELL_TYPES 16
+ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+POINT_DATA 64
+SCALARS solution_0 double 1
+LOOKUP_TABLE default
+1.00000 0.562500 1.06250 0.625000 0.562500 0.250000 0.625000 0.312500 1.06250 0.625000 1.25000 0.812500 0.625000 0.312500 0.812500 0.500000 0.250000 0.0625000 0.312500 0.125000 0.0625000 0.00000 0.125000 0.0625000 0.312500 0.125000 0.500000 0.312500 0.125000 0.0625000 0.312500 0.250000 1.25000 0.812500 1.56250 1.12500 0.812500 0.500000 1.12500 0.812500 1.56250 1.12500 2.00000 1.56250 1.12500 0.812500 1.56250 1.25000 0.500000 0.312500 0.812500 0.625000 0.312500 0.250000 0.625000 0.562500 0.812500 0.625000 1.25000 1.06250 0.625000 0.562500 1.06250 1.00000 
+SCALARS solution_1 double 1
+LOOKUP_TABLE default
+1.00000 0.562500 1.06250 0.625000 0.562500 0.250000 0.625000 0.312500 1.06250 0.625000 1.25000 0.812500 0.625000 0.312500 0.812500 0.500000 0.250000 0.0625000 0.312500 0.125000 0.0625000 0.00000 0.125000 0.0625000 0.312500 0.125000 0.500000 0.312500 0.125000 0.0625000 0.312500 0.250000 1.25000 0.812500 1.56250 1.12500 0.812500 0.500000 1.12500 0.812500 1.56250 1.12500 2.00000 1.56250 1.12500 0.812500 1.56250 1.25000 0.500000 0.312500 0.812500 0.625000 0.312500 0.250000 0.625000 0.562500 0.812500 0.625000 1.25000 1.06250 0.625000 0.562500 1.06250 1.00000 
+
+
+# vtk DataFile Version 3.0
+#This file was generated 
+ASCII
+DATASET UNSTRUCTURED_GRID
+
+POINTS 64 double
+0.00000 0.00000 0.00000
+0.250000 0.00000 0.00000
+0.00000 0.250000 0.00000
+0.250000 0.250000 0.00000
+0.250000 0.00000 0.00000
+0.500000 0.00000 0.00000
+0.250000 0.250000 0.00000
+0.500000 0.250000 0.00000
+0.00000 0.250000 0.00000
+0.250000 0.250000 0.00000
+0.00000 0.500000 0.00000
+0.250000 0.500000 0.00000
+0.250000 0.250000 0.00000
+0.500000 0.250000 0.00000
+0.250000 0.500000 0.00000
+0.500000 0.500000 0.00000
+0.500000 0.00000 0.00000
+0.750000 0.00000 0.00000
+0.500000 0.250000 0.00000
+0.750000 0.250000 0.00000
+0.750000 0.00000 0.00000
+1.00000 0.00000 0.00000
+0.750000 0.250000 0.00000
+1.00000 0.250000 0.00000
+0.500000 0.250000 0.00000
+0.750000 0.250000 0.00000
+0.500000 0.500000 0.00000
+0.750000 0.500000 0.00000
+0.750000 0.250000 0.00000
+1.00000 0.250000 0.00000
+0.750000 0.500000 0.00000
+1.00000 0.500000 0.00000
+0.00000 0.500000 0.00000
+0.250000 0.500000 0.00000
+0.00000 0.750000 0.00000
+0.250000 0.750000 0.00000
+0.250000 0.500000 0.00000
+0.500000 0.500000 0.00000
+0.250000 0.750000 0.00000
+0.500000 0.750000 0.00000
+0.00000 0.750000 0.00000
+0.250000 0.750000 0.00000
+0.00000 1.00000 0.00000
+0.250000 1.00000 0.00000
+0.250000 0.750000 0.00000
+0.500000 0.750000 0.00000
+0.250000 1.00000 0.00000
+0.500000 1.00000 0.00000
+0.500000 0.500000 0.00000
+0.750000 0.500000 0.00000
+0.500000 0.750000 0.00000
+0.750000 0.750000 0.00000
+0.750000 0.500000 0.00000
+1.00000 0.500000 0.00000
+0.750000 0.750000 0.00000
+1.00000 0.750000 0.00000
+0.500000 0.750000 0.00000
+0.750000 0.750000 0.00000
+0.500000 1.00000 0.00000
+0.750000 1.00000 0.00000
+0.750000 0.750000 0.00000
+1.00000 0.750000 0.00000
+0.750000 1.00000 0.00000
+1.00000 1.00000 0.00000
+
+CELLS 16 80
+4      0       1       3       2
+4      4       5       7       6
+4      8       9       11      10
+4      12      13      15      14
+4      16      17      19      18
+4      20      21      23      22
+4      24      25      27      26
+4      28      29      31      30
+4      32      33      35      34
+4      36      37      39      38
+4      40      41      43      42
+4      44      45      47      46
+4      48      49      51      50
+4      52      53      55      54
+4      56      57      59      58
+4      60      61      63      62
+
+CELL_TYPES 16
+ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
+POINT_DATA 64
+SCALARS solution_0 double 1
+LOOKUP_TABLE default
+0.00000 0.0625000 0.0625000 0.125000 0.0625000 0.250000 0.125000 0.312500 0.0625000 0.125000 0.250000 0.312500 0.125000 0.312500 0.312500 0.500000 0.250000 0.562500 0.312500 0.625000 0.562500 1.00000 0.625000 1.06250 0.312500 0.625000 0.500000 0.812500 0.625000 1.06250 0.812500 1.25000 0.250000 0.312500 0.562500 0.625000 0.312500 0.500000 0.625000 0.812500 0.562500 0.625000 1.00000 1.06250 0.625000 0.812500 1.06250 1.25000 0.500000 0.812500 0.812500 1.12500 0.812500 1.25000 1.12500 1.56250 0.812500 1.12500 1.25000 1.56250 1.12500 1.56250 1.56250 2.00000 
+SCALARS solution_1 double 1
+LOOKUP_TABLE default
+0.00000 0.0625000 0.0625000 0.125000 0.0625000 0.250000 0.125000 0.312500 0.0625000 0.125000 0.250000 0.312500 0.125000 0.312500 0.312500 0.500000 0.250000 0.562500 0.312500 0.625000 0.562500 1.00000 0.625000 1.06250 0.312500 0.625000 0.500000 0.812500 0.625000 1.06250 0.812500 1.25000 0.250000 0.312500 0.562500 0.625000 0.312500 0.500000 0.625000 0.812500 0.562500 0.625000 1.00000 1.06250 0.625000 0.812500 1.06250 1.25000 0.500000 0.812500 0.812500 1.12500 0.812500 1.25000 1.12500 1.56250 0.812500 1.12500 1.25000 1.56250 1.12500 1.56250 1.56250 2.00000 
+

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.