// we use uint32_t and uint8_t below, which are declared here:
#include <cstdint>
+#include <vector>
#ifdef DEAL_II_WITH_ZLIB
# include <zlib.h>
72, // VTK_LAGRANGE_HEXAHEDRON
static_cast<unsigned int>(-1)};
+
+ /**
+ * Return the tuple (vtk cell type, number of cells, number of vertices)
+ * for a patch.
+ */
+ template <int dim, int spacedim>
+ std::array<unsigned int, 3>
+ extract_vtk_patch_info(const DataOutBase::Patch<dim, spacedim> &patch,
+ const bool write_higher_order_cells)
+ {
+ std::array<unsigned int, 3> vtk_cell_id{};
+
+ if (write_higher_order_cells &&
+ patch.reference_cell_type == ReferenceCell::get_hypercube(dim))
+ {
+ vtk_cell_id[0] = vtk_lagrange_cell_type[dim];
+ vtk_cell_id[1] = 1;
+ }
+ else if (patch.reference_cell_type == ReferenceCell::Type::Tri &&
+ patch.data.n_cols() == 3)
+ {
+ vtk_cell_id[0] = 5;
+ vtk_cell_id[1] = 1;
+ }
+ else if (patch.reference_cell_type == ReferenceCell::Type::Tri &&
+ patch.data.n_cols() == 6)
+ {
+ vtk_cell_id[0] = 22;
+ vtk_cell_id[1] = 1;
+ }
+ else if (patch.reference_cell_type == ReferenceCell::Type::Tet &&
+ patch.data.n_cols() == 4)
+ {
+ vtk_cell_id[0] = 10;
+ vtk_cell_id[1] = 1;
+ }
+ else if (patch.reference_cell_type == ReferenceCell::Type::Tet &&
+ patch.data.n_cols() == 10)
+ {
+ vtk_cell_id[0] = 24;
+ vtk_cell_id[1] = 1;
+ }
+ else if (patch.reference_cell_type == ReferenceCell::get_hypercube(dim))
+ {
+ vtk_cell_id[0] = vtk_cell_type[dim];
+ vtk_cell_id[1] = Utilities::pow(patch.n_subdivisions, dim);
+ }
+ else
+ {
+ Assert(false, ExcNotImplemented());
+ }
+
+ if (patch.reference_cell_type != ReferenceCell::get_hypercube(dim) ||
+ write_higher_order_cells)
+ vtk_cell_id[2] = patch.data.n_cols();
+ else
+ vtk_cell_id[2] = GeometryInfo<dim>::vertices_per_cell;
+
+ return vtk_cell_id;
+ }
+
//----------------------------------------------------------------------//
// Auxiliary functions
//----------------------------------------------------------------------//
}
}
+ template <int dim, int spacedim>
+ static void
+ compute_sizes(const std::vector<DataOutBase::Patch<dim, spacedim>> &patches,
+ const bool write_higher_order_cells,
+ unsigned int &n_nodes,
+ unsigned int &n_cells,
+ unsigned int &n_points_and_n_cells)
+ {
+ n_nodes = 0;
+ n_cells = 0;
+ n_points_and_n_cells = 0;
+
+ for (const auto &patch : patches)
+ {
+ // The following formulas don't hold for non-tensor products.
+ if (patch.reference_cell_type == ReferenceCell::get_hypercube(dim))
+ {
+ n_nodes += Utilities::fixed_power<dim>(patch.n_subdivisions + 1);
+
+ if (write_higher_order_cells)
+ {
+ n_cells += 1;
+ n_points_and_n_cells +=
+ 1 + Utilities::fixed_power<dim>(patch.n_subdivisions + 1);
+ }
+ else
+ {
+ n_cells += Utilities::fixed_power<dim>(patch.n_subdivisions);
+ n_points_and_n_cells +=
+ Utilities::fixed_power<dim>(patch.n_subdivisions) *
+ (1 + GeometryInfo<dim>::vertices_per_cell);
+ }
+ }
+ else
+ {
+ n_nodes += patch.data.n_cols();
+ n_cells += 1;
+ n_points_and_n_cells += patch.data.n_cols() + 1;
+ }
+ }
+ }
+
/**
* Class describing common functionality between different output streams.
*
const unsigned int y_offset,
const unsigned int z_offset);
+ /**
+ * Print vertices [start, start+n_points[
+ */
+ void
+ write_cell_single(const unsigned int index,
+ const unsigned int start,
+ const unsigned int n_points);
+
/**
* Write a high-order cell type, i.e., a Lagrange cell
* in the VTK terminology.
#endif
}
+ void
+ VtuStream::write_cell_single(const unsigned int index,
+ const unsigned int start,
+ const unsigned int n_points)
+ {
+ (void)index;
+
+#if !defined(DEAL_II_WITH_ZLIB)
+ for (unsigned int i = 0; i < n_points; ++i)
+ stream << '\t' << start + i;
+ stream << '\n';
+#else
+ for (unsigned int i = 0; i < n_points; ++i)
+ cells.push_back(start + i);
+#endif
+ }
+
template <int dim>
void
VtuStream::write_high_order_cell(const unsigned int,
}
// first count the number of cells and cells for later use
- unsigned int n_nodes = 0;
- unsigned int n_cells = 0;
- unsigned int n_points_an_n_cell = 0;
-
- // compute_sizes<dim, spacedim>(patches, n_nodes, n_cells);
-
- for (const auto &patch : patches)
- {
- // The following formulas don't hold for non-tensor products.
- if (patch.reference_cell_type == ReferenceCell::get_hypercube(dim))
- {
- n_nodes += Utilities::fixed_power<dim>(patch.n_subdivisions + 1);
-
- if (flags.write_higher_order_cells)
- {
- n_cells += 1;
- n_points_an_n_cell +=
- 1 + Utilities::fixed_power<dim>(patch.n_subdivisions + 1);
- }
- else
- {
- n_cells += Utilities::fixed_power<dim>(patch.n_subdivisions);
- n_points_an_n_cell +=
- Utilities::fixed_power<dim>(patch.n_subdivisions) *
- (1 + GeometryInfo<dim>::vertices_per_cell);
- }
- }
- else
- {
- n_nodes += patch.data.n_cols();
- n_cells += 1;
- n_points_an_n_cell += patch.data.n_cols() + 1;
- }
- }
+ unsigned int n_nodes, n_cells, n_points_and_n_cells;
+ compute_sizes(patches,
+ flags.write_higher_order_cells,
+ n_nodes,
+ n_cells,
+ n_points_and_n_cells);
// in gmv format the vertex coordinates and the data have an order that is a
// bit unpleasant (first all x coordinates, then all y coordinate, ...;
out << '\n';
/////////////////////////////////
// now for the cells
- out << "CELLS " << n_cells << ' ' << n_points_an_n_cell << '\n';
+ out << "CELLS " << n_cells << ' ' << n_points_and_n_cells << '\n';
if (flags.write_higher_order_cells)
write_high_order_cells(patches, vtk_out);
else
// quadratic), and high order cells
for (const auto &patch : patches)
{
- std::pair<unsigned int, unsigned int> vtk_cell_id = {-1, -1};
-
- if (flags.write_higher_order_cells &&
- patch.reference_cell_type == ReferenceCell::get_hypercube(dim))
- vtk_cell_id = {vtk_lagrange_cell_type[dim], 1};
- else if (patch.reference_cell_type == ReferenceCell::Type::Tri &&
- patch.data.n_cols() == 3)
- vtk_cell_id = {5, 1};
- else if (patch.reference_cell_type == ReferenceCell::Type::Tri &&
- patch.data.n_cols() == 6)
- vtk_cell_id = {22, 1};
- else if (patch.reference_cell_type == ReferenceCell::Type::Tet &&
- patch.data.n_cols() == 4)
- vtk_cell_id = {10, 1};
- else if (patch.reference_cell_type == ReferenceCell::Type::Tet &&
- patch.data.n_cols() == 10)
- vtk_cell_id = {24, 1};
- else if (patch.reference_cell_type == ReferenceCell::get_hypercube(dim))
- vtk_cell_id = {vtk_cell_type[dim],
- Utilities::pow(patch.n_subdivisions, dim)};
- else
- {
- Assert(false, ExcNotImplemented());
- }
+ const auto vtk_cell_id =
+ extract_vtk_patch_info(patch, flags.write_higher_order_cells);
- for (unsigned int i = 0; i < vtk_cell_id.second; ++i)
- out << ' ' << vtk_cell_id.first;
+ for (unsigned int i = 0; i < vtk_cell_id[1]; ++i)
+ out << ' ' << vtk_cell_id[0];
}
out << '\n';
#ifdef DEAL_II_WITH_ZLIB
const char *ascii_or_binary = "binary";
#else
- const char *ascii_or_binary = "ascii";
+ const char * ascii_or_binary = "ascii";
#endif
// first count the number of cells and cells for later use
- unsigned int n_nodes;
- unsigned int n_cells;
- compute_sizes<dim, spacedim>(patches, n_nodes, n_cells);
-
- // If a user set to output high order cells, we treat n_subdivisions
- // as a cell order and adjust variables accordingly, otherwise
- // each patch is written as a linear cell.
- const unsigned int n_points_per_cell =
- (flags.write_higher_order_cells == false ?
- ReferenceCell::internal::Info::get_cell(patches[0].reference_cell_type)
- .n_vertices() :
- n_nodes / patches.size());
- if (flags.write_higher_order_cells)
- n_cells = patches.size();
+ unsigned int n_nodes, n_cells, n_points_and_n_cells;
+ compute_sizes(patches,
+ flags.write_higher_order_cells,
+ n_nodes,
+ n_cells,
+ n_points_and_n_cells);
// in gmv format the vertex coordinates and the data have an order that is a
// bit unpleasant (first all x coordinates, then all y coordinate, ...;
out << " <DataArray type=\"Int32\" Name=\"offsets\" format=\""
<< ascii_or_binary << "\">\n";
- std::vector<int32_t> offsets(n_cells);
- for (unsigned int i = 0; i < n_cells; ++i)
- offsets[i] = (i + 1) * n_points_per_cell;
+ std::vector<int32_t> offsets;
+ offsets.reserve(n_cells);
+
+ // uint8_t might be an alias to unsigned char which is then not printed
+ // as ascii integers
+#ifdef DEAL_II_WITH_ZLIB
+ std::vector<uint8_t> cell_types;
+#else
+ std::vector<unsigned int> cell_types;
+#endif
+ cell_types.reserve(n_cells);
+
+ unsigned int first_vertex_of_patch = 0;
+
+ for (const auto &patch : patches)
+ {
+ const auto vtk_cell_id =
+ extract_vtk_patch_info(patch, flags.write_higher_order_cells);
+
+ for (unsigned int i = 0; i < vtk_cell_id[1]; ++i)
+ {
+ cell_types.push_back(vtk_cell_id[0]);
+ first_vertex_of_patch += vtk_cell_id[2];
+ offsets.push_back(first_vertex_of_patch);
+ }
+ }
+
vtu_out << offsets;
out << "\n";
out << " </DataArray>\n";
out << " <DataArray type=\"UInt8\" Name=\"types\" format=\""
<< ascii_or_binary << "\">\n";
- {
- // need to distinguish between linear and high order cells
- const unsigned int vtk_cell_id = flags.write_higher_order_cells ?
- vtk_lagrange_cell_type[dim] :
- vtk_cell_type[dim];
-
- // uint8_t might be an alias to unsigned char which is then not printed
- // as ascii integers
-#ifdef DEAL_II_WITH_ZLIB
- std::vector<uint8_t> cell_types(n_cells,
- static_cast<uint8_t>(vtk_cell_id));
-#else
- std::vector<unsigned int> cell_types(n_cells, vtk_cell_id);
-#endif
- // this should compress well :-)
- vtu_out << cell_types;
- }
+ // this should compress well :-)
+ vtu_out << cell_types;
out << "\n";
out << " </DataArray>\n";
out << " </Cells>\n";
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2020 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 DataOut::write_vtu() for simplex meshes.
+
+#include <deal.II/dofs/dof_handler.h>
+
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/fe/mapping_fe.h>
+
+#include <deal.II/grid/grid_in.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/grid/tria.h>
+
+#include <deal.II/numerics/data_out.h>
+#include <deal.II/numerics/vector_tools.h>
+
+#include <deal.II/simplex/fe_lib.h>
+#include <deal.II/simplex/grid_generator.h>
+
+#include "../tests.h"
+
+using namespace dealii;
+
+template <int dim>
+class RightHandSideFunction : public Function<dim>
+{
+public:
+ RightHandSideFunction(const unsigned int n_components)
+ : Function<dim>(n_components)
+ {}
+
+ virtual double
+ value(const Point<dim> &p, const unsigned int component = 0) const
+ {
+ return p[component % dim] * p[component % dim];
+ }
+};
+
+template <int dim, int spacedim = dim>
+void
+test(const FiniteElement<dim, spacedim> &fe, const unsigned int n_components)
+{
+ Triangulation<dim, spacedim> tria;
+ GridGenerator::subdivided_hyper_cube_with_simplices(tria, dim == 2 ? 4 : 2);
+
+ DoFHandler<dim> dof_handler(tria);
+
+ dof_handler.distribute_dofs(fe);
+
+ Vector<double> solution(dof_handler.n_dofs());
+
+ MappingFE<dim> mapping(Simplex::FE_P<dim>(1));
+
+ VectorTools::interpolate(mapping,
+ dof_handler,
+ RightHandSideFunction<dim>(n_components),
+ solution);
+
+ static unsigned int counter = 0;
+
+ for (unsigned int n_subdivisions = 1; n_subdivisions <= 2; ++n_subdivisions)
+ {
+ DataOut<dim> data_out;
+
+ data_out.attach_dof_handler(dof_handler);
+ data_out.add_data_vector(solution, "solution");
+
+
+ data_out.build_patches(mapping, n_subdivisions);
+
+ //#if false
+ std::ofstream output("test." + std::to_string(dim) + "." +
+ std::to_string(counter++) + ".vtu");
+ data_out.write_vtu(output);
+ //#else
+ data_out.write_vtu(deallog.get_file_stream());
+ //#endif
+ }
+}
+
+int
+main()
+{
+ initlog();
+
+ {
+ const unsigned int dim = 2;
+ test<dim>(Simplex::FE_P<dim>(2) /*=degree*/, 1);
+ test<dim>(FESystem<dim>(Simplex::FE_P<dim>(2 /*=degree*/), dim), dim);
+ test<dim>(FESystem<dim>(Simplex::FE_P<dim>(2 /*=degree*/),
+ dim,
+ Simplex::FE_P<dim>(1 /*=degree*/),
+ 1),
+ dim + 1);
+ }
+ {
+ const unsigned int dim = 3;
+ test<dim>(Simplex::FE_P<dim>(2) /*=degree*/, 1);
+ test<dim>(FESystem<dim>(Simplex::FE_P<dim>(2 /*=degree*/), dim), dim);
+ test<dim>(FESystem<dim>(Simplex::FE_P<dim>(2 /*=degree*/),
+ dim,
+ Simplex::FE_P<dim>(1 /*=degree*/),
+ 1),
+ dim + 1);
+ }
+}
--- /dev/null
+
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="96" NumberOfCells="32" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAIAEAACABAAAlAAAAA==eNqNklEOgDAMQnsy4Wg9ulGzhRlY5s/iWyGDtEq/vsr+P6feKbdarHzeIXjCa/njY57wngza/vH5huCp87sexltfBs9T3qVDiA6ep7xLh5Ds8DzlXTqE9ADPT3qgcAae8pbTInhu8pbREt6Tm7xltB08dX7XQ+ueBM6DHlr3JHAe9NC6J4HzoIfWPQn8m78BMupZKQ==
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAIABAACAAQAAnQAAAA==eNoNw4c2QgEAANCnSJJVRsmmYUV2SLISQigz/v8v3HvODYIg6DFk2F77jNhv1AFjDhp3yGFHHHXMhEnHnXDSKVOmnTbjjLPOOe+Ciy657IpZc+YtuOqa6264adEtty2546577nvgoUeWPfbEUyueWfXcmhdeeuW1N9a9teGd9z7Y9NEnn2354qtvtu347oeffvntj11//fMfAccR0Q==
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAIAAAACAAAAASQAAAA==eNoNw4EGg1AAAMBHRMSIiIiIEREREREREWPEiP3/V3THRSGE2MTUl5m5haWVtY1vWzt7B0cnZxdXN3cPTz9+vfx5+/cBGQ8GMQ==
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACAAAAAgAAAACwAAAA==eNpjZcUPAApwAKE=
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution" format="binary">
+AQAAAIABAACAAQAAIgAAAA==eNpjYACBBlsGDBqM7bDQQCxgj0mD2VjoUfPxmQ8AfZ4z5Q== </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="192" NumberOfCells="32" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAAAJAAAACQAAPQEAAA==eNp1lNENAyEMQxmFSUhGYRSPdqNVXEuVOE6/OLCfLJwyRvxhDf0d95f4/mmjH0swFzGjRukt8+7ZEzRPwzleqGyWvYkZNULvlrNd7wz70zTHLWfAqszJzKgRelC2691hfzccUAasytzMjJqma9kf9V76uwyrXvDMWOWA1mhm4Hq5d8V5tSayGc2MVc7Ze5quIfjcu+K45Qx37TwzVjlOazQzcL3cu+KAMvzvimfGKgeWZ0Dec5x16r38335eF16Q1wUHtFb3HPncu+Kcc1fZLHtdcM75bLoegs+9K45bzuCCOYkZvbPpegg+9644oAwumJuY0TubruX7SL2X9/G+G8IL8kJwQGtvZgBN74rzvhsqm2UvBOdodtO1Cz73rjhuOQMEcxIzenfTtQs+9644oAwQzE3M6P2uP5vyviE=
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAAADAAAAAwAANwEAAA==eNoNwwdXiAEAAMDPCKFCkWjYMrJTRkj2pihE9kwoUkZWVvaWEiIlpCQi6a91994FQRD0sKe97G2IfexrP0Pt7wAHGma4EQ5ysEOMNMqhDjPa4cY4wpHGGme8CY5ytGMc6zjHO8GJJjrJyU5xqklOc7oznOksZzvHZOeaYqrznO8CF5rmIhe7xHSXmuEyl7vCla5ytWtc6zrXu8GNbnKzW8w0y61uM9sct7vDnea6y93muce97nO/BzzoIQ97xKMe87j5nrDAk57ytIUWecazFnvOEks97wUveskyL3vFq17zuuXe8Ka3vO0dK7zrPe/7wIc+8rFPfOozn/vCl76y0tdWWe0ba3zrO99b6wc/Wucn623ws41+8avfbPK7zbb4w1Z/2uYvf9vuH//a4T87/W+X3Qa4R6E=
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAIAAAACAAAAAUQAAAA==eNoNwxEXg2AAAMCPoiiKRlEURVEUjaIoiqIoiqIoiqLRKBpF+2ndvXdRCCE2MfVlZm5haWVt49vWzt7B0cnZxdXN3cPTj18vf97+fQAxngxh
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACAAAAAgAAAACwAAAA==eNoTE8MPAC2AAsE=
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution" format="binary">
+AQAAAAADAAAAAwAASgAAAA==eNpjYACBBlsGCG0DwShitghxMBuE7SC0gB0EI4s12CGJQ7GAPYQ+AcXIYiAaJg5ig8WhtAsUI4s1IImD2KPuH3U/+e4HADT8bmE= </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="96" NumberOfCells="32" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAIAEAACABAAAlAAAAA==eNqNklEOgDAMQnsy4Wg9ulGzhRlY5s/iWyGDtEq/vsr+P6feKbdarHzeIXjCa/njY57wngza/vH5huCp87sexltfBs9T3qVDiA6ep7xLh5Ds8DzlXTqE9ADPT3qgcAae8pbTInhu8pbREt6Tm7xltB08dX7XQ+ueBM6DHlr3JHAe9NC6J4HzoIfWPQn8m78BMupZKQ==
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAIABAACAAQAAnQAAAA==eNoNw4c2QgEAANCnSJJVRsmmYUV2SLISQigz/v8v3HvODYIg6DFk2F77jNhv1AFjDhp3yGFHHHXMhEnHnXDSKVOmnTbjjLPOOe+Ciy657IpZc+YtuOqa6264adEtty2546577nvgoUeWPfbEUyueWfXcmhdeeuW1N9a9teGd9z7Y9NEnn2354qtvtu347oeffvntj11//fMfAccR0Q==
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAIAAAACAAAAASQAAAA==eNoNw4EGg1AAAMBHRMSIiIiIEREREREREWPEiP3/V3THRSGE2MTUl5m5haWVtY1vWzt7B0cnZxdXN3cPTz9+vfx5+/cBGQ8GMQ==
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACAAAAAgAAAACwAAAA==eNpjZcUPAApwAKE=
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAIABAACAAQAAIgAAAA==eNpjYACBBlsGDBqM7bDQQCxgj0mD2VjoUfPxmQ8AfZ4z5Q== </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAIABAACAAQAALAAAAA==eNpjYICBBlsERgaUisP5dkjYloriULaAPQIjq6FUHM5GwihqKBIHAJ0fM+U= </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="192" NumberOfCells="32" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAAAJAAAACQAAPQEAAA==eNp1lNENAyEMQxmFSUhGYRSPdqNVXEuVOE6/OLCfLJwyRvxhDf0d95f4/mmjH0swFzGjRukt8+7ZEzRPwzleqGyWvYkZNULvlrNd7wz70zTHLWfAqszJzKgRelC2691hfzccUAasytzMjJqma9kf9V76uwyrXvDMWOWA1mhm4Hq5d8V5tSayGc2MVc7Ze5quIfjcu+K45Qx37TwzVjlOazQzcL3cu+KAMvzvimfGKgeWZ0Dec5x16r38335eF16Q1wUHtFb3HPncu+Kcc1fZLHtdcM75bLoegs+9K45bzuCCOYkZvbPpegg+9644oAwumJuY0TubruX7SL2X9/G+G8IL8kJwQGtvZgBN74rzvhsqm2UvBOdodtO1Cz73rjhuOQMEcxIzenfTtQs+9644oAwQzE3M6P2uP5vyviE=
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAAADAAAAAwAANwEAAA==eNoNwwdXiAEAAMDPCKFCkWjYMrJTRkj2pihE9kwoUkZWVvaWEiIlpCQi6a91994FQRD0sKe97G2IfexrP0Pt7wAHGma4EQ5ysEOMNMqhDjPa4cY4wpHGGme8CY5ytGMc6zjHO8GJJjrJyU5xqklOc7oznOksZzvHZOeaYqrznO8CF5rmIhe7xHSXmuEyl7vCla5ytWtc6zrXu8GNbnKzW8w0y61uM9sct7vDnea6y93muce97nO/BzzoIQ97xKMe87j5nrDAk57ytIUWecazFnvOEks97wUveskyL3vFq17zuuXe8Ka3vO0dK7zrPe/7wIc+8rFPfOozn/vCl76y0tdWWe0ba3zrO99b6wc/Wucn623ws41+8avfbPK7zbb4w1Z/2uYvf9vuH//a4T87/W+X3Qa4R6E=
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAIAAAACAAAAAUQAAAA==eNoNwxEXg2AAAMCPoiiKRlEURVEUjaIoiqIoiqIoiqLRKBpF+2ndvXdRCCE2MfVlZm5haWVt49vWzt7B0cnZxdXN3cPTj18vf97+fQAxngxh
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACAAAAAgAAAACwAAAA==eNoTE8MPAC2AAsE=
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAAADAAAAAwAASgAAAA==eNpjYACBBlsGCG0DwShitghxMBuE7SC0gB0EI4s12CGJQ7GAPYQ+AcXIYiAaJg5ig8WhtAsUI4s1IImD2KPuH3U/+e4HADT8bmE= </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAAADAAAAAwAASgAAAA==eNrNisENACAIxBiBgQQ/DnbjOZYxHMoIkDQNzYnkwehBrDT7vds+OzysHsB/g5febU90hje5f7br7N32r9OLoDSU3mt/AIlvbmE= </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="96" NumberOfCells="32" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAIAEAACABAAAlAAAAA==eNqNklEOgDAMQnsy4Wg9ulGzhRlY5s/iWyGDtEq/vsr+P6feKbdarHzeIXjCa/njY57wngza/vH5huCp87sexltfBs9T3qVDiA6ep7xLh5Ds8DzlXTqE9ADPT3qgcAae8pbTInhu8pbREt6Tm7xltB08dX7XQ+ueBM6DHlr3JHAe9NC6J4HzoIfWPQn8m78BMupZKQ==
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAIABAACAAQAAnQAAAA==eNoNw4c2QgEAANCnSJJVRsmmYUV2SLISQigz/v8v3HvODYIg6DFk2F77jNhv1AFjDhp3yGFHHHXMhEnHnXDSKVOmnTbjjLPOOe+Ciy657IpZc+YtuOqa6264adEtty2546577nvgoUeWPfbEUyueWfXcmhdeeuW1N9a9teGd9z7Y9NEnn2354qtvtu347oeffvntj11//fMfAccR0Q==
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAIAAAACAAAAASQAAAA==eNoNw4EGg1AAAMBHRMSIiIiIEREREREREWPEiP3/V3THRSGE2MTUl5m5haWVtY1vWzt7B0cnZxdXN3cPTz9+vfx5+/cBGQ8GMQ==
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACAAAAAgAAAACwAAAA==eNpjZcUPAApwAKE=
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAIABAACAAQAAIgAAAA==eNpjYACBBlsGDBqM7bDQQCxgj0mD2VjoUfPxmQ8AfZ4z5Q== </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAIABAACAAQAALAAAAA==eNpjYICBBlsERgaUisP5dkjYloriULaAPQIjq6FUHM5GwihqKBIHAJ0fM+U= </DataArray>
+ <DataArray type="Float32" Name="solution_2" format="binary">
+AQAAAIABAACAAQAAIgAAAA==eNpjYACBBlsGDBqM7bDQQCxgj0mD2VjoUfPxmQ8AfZ4z5Q== </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="192" NumberOfCells="32" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAAAJAAAACQAAPQEAAA==eNp1lNENAyEMQxmFSUhGYRSPdqNVXEuVOE6/OLCfLJwyRvxhDf0d95f4/mmjH0swFzGjRukt8+7ZEzRPwzleqGyWvYkZNULvlrNd7wz70zTHLWfAqszJzKgRelC2691hfzccUAasytzMjJqma9kf9V76uwyrXvDMWOWA1mhm4Hq5d8V5tSayGc2MVc7Ze5quIfjcu+K45Qx37TwzVjlOazQzcL3cu+KAMvzvimfGKgeWZ0Dec5x16r38335eF16Q1wUHtFb3HPncu+Kcc1fZLHtdcM75bLoegs+9K45bzuCCOYkZvbPpegg+9644oAwumJuY0TubruX7SL2X9/G+G8IL8kJwQGtvZgBN74rzvhsqm2UvBOdodtO1Cz73rjhuOQMEcxIzenfTtQs+9644oAwQzE3M6P2uP5vyviE=
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAAADAAAAAwAANwEAAA==eNoNwwdXiAEAAMDPCKFCkWjYMrJTRkj2pihE9kwoUkZWVvaWEiIlpCQi6a91994FQRD0sKe97G2IfexrP0Pt7wAHGma4EQ5ysEOMNMqhDjPa4cY4wpHGGme8CY5ytGMc6zjHO8GJJjrJyU5xqklOc7oznOksZzvHZOeaYqrznO8CF5rmIhe7xHSXmuEyl7vCla5ytWtc6zrXu8GNbnKzW8w0y61uM9sct7vDnea6y93muce97nO/BzzoIQ97xKMe87j5nrDAk57ytIUWecazFnvOEks97wUveskyL3vFq17zuuXe8Ka3vO0dK7zrPe/7wIc+8rFPfOozn/vCl76y0tdWWe0ba3zrO99b6wc/Wucn623ws41+8avfbPK7zbb4w1Z/2uYvf9vuH//a4T87/W+X3Qa4R6E=
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAIAAAACAAAAAUQAAAA==eNoNwxEXg2AAAMCPoiiKRlEURVEUjaIoiqIoiqIoiqLRKBpF+2ndvXdRCCE2MfVlZm5haWVt49vWzt7B0cnZxdXN3cPTj18vf97+fQAxngxh
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACAAAAAgAAAACwAAAA==eNoTE8MPAC2AAsE=
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAAADAAAAAwAASgAAAA==eNpjYACBBlsGCG0DwShitghxMBuE7SC0gB0EI4s12CGJQ7GAPYQ+AcXIYiAaJg5ig8WhtAsUI4s1IImD2KPuH3U/+e4HADT8bmE= </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAAADAAAAAwAASgAAAA==eNrNisENACAIxBiBgQQ/DnbjOZYxHMoIkDQNzYnkwehBrDT7vds+OzysHsB/g5febU90hje5f7br7N32r9OLoDSU3mt/AIlvbmE= </DataArray>
+ <DataArray type="Float32" Name="solution_2" format="binary">
+AQAAAAADAAAAAwAASgAAAA==eNpjYACBBlsGCLCFYiSxBluEeAMM20FoBTsIRhZrsEMSh2IBewh9AYqRxUA0TBzEBotDaQ8oRhZrQBIHsUfdP+p+8t0PAMN4aDE= </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="160" NumberOfCells="40" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAIAHAACABwAArwAAAA==eNqdk1ECwCAIQr0ZV+Po+20OQrevVpRP1KrXh5r9Q5yj7aPt1UILo3f3ErPhYV+j7Ss9Fvke5zRaF5cw7ImnxyrPTOel0lz8kn3Q3qTju3kx4cEg5qQGogfY1wieH+uUr9RgxsyuS/2Ib/2uMyW8rsGscFn7CQ9/1FPFlbGF92r2Yy/A6F1fBGZimV+ZPsa8R2vhDY3e+RSZDY/jdf67mbL5hre5PJvwvO8817uUmQ==
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAIACAACAAgAABQEAAA==eNoNwwc3kAEAAMAvSSVpCCklKSlCSEZLISsNyoqsFEIyk5KUZIdUWn/V3XsXBEGwwxB3Guouw9ztHvca7j4j3G+kBzzoIQ8b5RGjjTHWo8Z5zOPGe8KTJnjKRE+b5BnPmuw5UzzvBVNN86LpZpjpJbPMNsfL5nrFPPMtsNCrXvO6N7xpkbe8bbEllnrHMsutsNIq71rtPe/7wIfWWOsjH1tnvQ022uQTm23xqa222W6HnT6zy+e+sNsee31pn/0O+MpBXzvksCOOOua4b5zwrZO+871TfnDaj874yc/O+sU5vzrvgosuueyKq35zzXU3/O6mP/zpL7f87R//+s//bgOvJzGx
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAKAAAACgAAAAYgAAAA==eNoNwxEXwmAAAMAPBoNgMBgEQRAEwSAYBIPBYBAEQTAIgkEwCAZBMAgGg2A/tbv3LgohxK5MTM1cu3Hrzr0Hc48WniytrG08e/Hqzda7Dzuf9r4cfPtx9Ovk7M/FP84+DNE=
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACgAAAAoAAAADAAAAA==eNrj4iIOAAAgMAGR
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution" format="binary">
+AQAAAIACAACAAgAAQwAAAA==eNpjYACBBjsGFADiI2NkMWQ16HrheuyRsB0SbYemBptaNDl092BzL7p78LkVq3vscbgZh5uQxYaK+wZn/AIAtdZZOQ== </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="400" NumberOfCells="40" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAMASAADAEgAAJAIAAA==eNqNloGOAyEIRPmywqfx6XeXS1sc36xu0uhal5FhQCKWJ+P43q/v699c3+cz/5/jZ18CTsp6fnHnd4vdXOdz/Pyf697NT8BUnOXcgDl/iJkGl/CDbS6j4WLi38TU8ixncP7S+8Rpnaes/44le954JfPPmWS+YAOWi/FmP0Hrw37lzvGmq2nD6GrGuIAH0vB7rKkDw2cnY06uGuyojyW4pKt2OSt+Kc/qY5mYlsujPHOt3xXwTnmzce3iavRN/ryfkvkWD8kBrI+qI9Au+WPzSmL/pN0m3PRaIc2pzjYNOZ6hXpFulFuKqfpruTR1472nknM4TE5hDkNtbJ3nitVjXmN/Tc6nv7Juc3bGTfxFjQBWzW/yrKsGbNXVtDl9DJnrHtXszRkopqTZud5wzpseY4n5a9cO3gOxa1Dz4abH0Pzc+gfosbY8hzs8Lu78hjpI9z/Va60pjzUx+W60NQhqmb0zDzw3xJfq0cZt8D1MudsXuiItR3K8S+oK5b3jNCTn6pCjYXK6JBeb+mNTI7UuFuynfLU1Mg2u8xtsVnq/dU9fxtTxrGdw/s46t/Qotz2GwdSaRLpz8XE9q9Zo1SPlMXHv7qS40HKfenDDq9NyG1zUdbDNxUfTE0xdX/U6jmc5QzzoiHw/9Rj90C9QDOmer7Gf6lUfzlHGLuVuCZ7V1cHXBrvkd5jzzXM8YbRZUz+e/nN7TzxTvSI/lNsw+P9rPw9B6mw=
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAEAGAABABgAAZQIAAA==eNol01V3FgQAANCPHjkYzegRo7u7R43u7u7ukRvdKKmgdKeCAUoqjUGjYJIG3dxzeLg/4QYCgUAsYhOHuMQjPgkIIiGJSEwSkpKMYJKTghBSkorUpCEt6UhPBkLJSCYyk4WsZCM7YeQgJ7nITTh5yEs+8lOAghSiMEUoSjGKU4KSlKI0ZShLOcpTgYpUojJVqEo1qlODmtQigtrUoS71qE8kDWhIIxrThKY0ozktaEkrWtOGtrSjPR3oSCc604WudKM7PehJL3rTh770oz8DGMggBjOEoQxjOCMYyShGM4axjGM8E4hiIpOYzBSmMo1oYpjODGYyi9nMYS7zmM8CFrKIxSzhAz5kKctYzgpWsoqP+JjVrOETPmUt61jPBjayic1sYSvb2M4OdrKL3exhL/v4jM/ZzwG+4Eu+4msOcohv+JbDHOEoxzjOCb7je05yitOc4SznOM8FfuBHfuJnLnKJy1zhKte4zg1+4Vducovf+J0/+JO/+Jvb3OEu97jPA/7hX/7jfx7yiMc84SnPeM4LXvKK17zhbeB9/ljEJg5xiUd8EhBEQhKRmCQkJRnBJCcFIaQkFalJQ1rSkZ4MhJKRTGQmC1nJRnbCyEFOcpGbcPKQl3zkpwAFKURhilCUYhSnBCUpRWnKUJZylKcCFalEZapQlWpUpwY1qUUEtalDXepRn0ga0JBGNKYJTWlGc1rQkla0pg1taUd7OtCRTnSmC13pRnd60JNe9KYPfelHfwYwkEEMZghDGcZwRjCSUYxmDGMZx3gmEMVEJjGZKUxlGtHEMJ0ZzGQWs5nDXN4BrwioSQ==
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAKAAAACgAAAAYwAAAA==eNoNwxEQwgAUANC/u2gQBdFgFETBKIiCaDAaRIPRIAqiIApGcRzH4ziO43jUe3cvjYiZmQtXrt1aWtvYefTs1Zt3Hz4dfPn249efo5MkYurc3KWFG3dW7m09ePJi7x8kfBEY
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACgAAAAoAAAADAAAAA==eNqTkCAOAABNCAPB
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution" format="binary">
+AQAAAEAGAABABgAAgwAAAA==eNrtlEsOwCAIRD0CF0Kv5tGbpi0dRhJx50IT4mcIo7zEUu7Ra7HR9Qnc27pCKMzqNZfLupLfxJtzPz30b38IzALnlvfex3TYu3fOcqPa5C3sS+d412yfV7hl+xzyQ2/1tVAbmKz0OcON+su6NO+X4lY9D2ZxeOzL4/xXO/xXFz1S2q0= </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="160" NumberOfCells="40" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAIAHAACABwAArwAAAA==eNqdk1ECwCAIQr0ZV+Po+20OQrevVpRP1KrXh5r9Q5yj7aPt1UILo3f3ErPhYV+j7Ss9Fvke5zRaF5cw7ImnxyrPTOel0lz8kn3Q3qTju3kx4cEg5qQGogfY1wieH+uUr9RgxsyuS/2Ib/2uMyW8rsGscFn7CQ9/1FPFlbGF92r2Yy/A6F1fBGZimV+ZPsa8R2vhDY3e+RSZDY/jdf67mbL5hre5PJvwvO8817uUmQ==
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAIACAACAAgAABQEAAA==eNoNwwc3kAEAAMAvSSVpCCklKSlCSEZLISsNyoqsFEIyk5KUZIdUWn/V3XsXBEGwwxB3Guouw9ztHvca7j4j3G+kBzzoIQ8b5RGjjTHWo8Z5zOPGe8KTJnjKRE+b5BnPmuw5UzzvBVNN86LpZpjpJbPMNsfL5nrFPPMtsNCrXvO6N7xpkbe8bbEllnrHMsutsNIq71rtPe/7wIfWWOsjH1tnvQ022uQTm23xqa222W6HnT6zy+e+sNsee31pn/0O+MpBXzvksCOOOua4b5zwrZO+871TfnDaj874yc/O+sU5vzrvgosuueyKq35zzXU3/O6mP/zpL7f87R//+s//bgOvJzGx
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAKAAAACgAAAAYgAAAA==eNoNwxEXwmAAAMAPBoNgMBgEQRAEwSAYBIPBYBAEQTAIgkEwCAZBMAgGg2A/tbv3LgohxK5MTM1cu3Hrzr0Hc48WniytrG08e/Hqzda7Dzuf9r4cfPtx9Ovk7M/FP84+DNE=
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACgAAAAoAAAADAAAAA==eNrj4iIOAAAgMAGR
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAIACAACAAgAAQwAAAA==eNpjYACBBjsGFADiI2NkMWQ16HrheuyRsB0SbYemBptaNDl092BzL7p78LkVq3vscbgZh5uQxYaK+wZn/AIAtdZZOQ== </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAIACAACAAgAAPQAAAA==eNpjYICBBjtMGsZGVoNNHp3GxibVPHR2gz0a2x5NzA5NDBcb3TxCanCZB6Wp7V9qxwe1/Uvd+AAAjnNZOQ== </DataArray>
+ <DataArray type="Float32" Name="solution_2" format="binary">
+AQAAAIACAACAAgAAKQAAAA==eNpjYEAGDXYMWPkgGoax8ZHFRpp5KNgeB98eCWPj22HhjwjzAKsdWTk= </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="400" NumberOfCells="40" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAMASAADAEgAAJAIAAA==eNqNloGOAyEIRPmywqfx6XeXS1sc36xu0uhal5FhQCKWJ+P43q/v699c3+cz/5/jZ18CTsp6fnHnd4vdXOdz/Pyf697NT8BUnOXcgDl/iJkGl/CDbS6j4WLi38TU8ixncP7S+8Rpnaes/44le954JfPPmWS+YAOWi/FmP0Hrw37lzvGmq2nD6GrGuIAH0vB7rKkDw2cnY06uGuyojyW4pKt2OSt+Kc/qY5mYlsujPHOt3xXwTnmzce3iavRN/ryfkvkWD8kBrI+qI9Au+WPzSmL/pN0m3PRaIc2pzjYNOZ6hXpFulFuKqfpruTR1472nknM4TE5hDkNtbJ3nitVjXmN/Tc6nv7Juc3bGTfxFjQBWzW/yrKsGbNXVtDl9DJnrHtXszRkopqTZud5wzpseY4n5a9cO3gOxa1Dz4abH0Pzc+gfosbY8hzs8Lu78hjpI9z/Va60pjzUx+W60NQhqmb0zDzw3xJfq0cZt8D1MudsXuiItR3K8S+oK5b3jNCTn6pCjYXK6JBeb+mNTI7UuFuynfLU1Mg2u8xtsVnq/dU9fxtTxrGdw/s46t/Qotz2GwdSaRLpz8XE9q9Zo1SPlMXHv7qS40HKfenDDq9NyG1zUdbDNxUfTE0xdX/U6jmc5QzzoiHw/9Rj90C9QDOmer7Gf6lUfzlHGLuVuCZ7V1cHXBrvkd5jzzXM8YbRZUz+e/nN7TzxTvSI/lNsw+P9rPw9B6mw=
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAEAGAABABgAAZQIAAA==eNol01V3FgQAANCPHjkYzegRo7u7R43u7u7ukRvdKKmgdKeCAUoqjUGjYJIG3dxzeLg/4QYCgUAsYhOHuMQjPgkIIiGJSEwSkpKMYJKTghBSkorUpCEt6UhPBkLJSCYyk4WsZCM7YeQgJ7nITTh5yEs+8lOAghSiMEUoSjGKU4KSlKI0ZShLOcpTgYpUojJVqEo1qlODmtQigtrUoS71qE8kDWhIIxrThKY0ozktaEkrWtOGtrSjPR3oSCc604WudKM7PehJL3rTh770oz8DGMggBjOEoQxjOCMYyShGM4axjGM8E4hiIpOYzBSmMo1oYpjODGYyi9nMYS7zmM8CFrKIxSzhAz5kKctYzgpWsoqP+JjVrOETPmUt61jPBjayic1sYSvb2M4OdrKL3exhL/v4jM/ZzwG+4Eu+4msOcohv+JbDHOEoxzjOCb7je05yitOc4SznOM8FfuBHfuJnLnKJy1zhKte4zg1+4Vducovf+J0/+JO/+Jvb3OEu97jPA/7hX/7jfx7yiMc84SnPeM4LXvKK17zhbeB9/ljEJg5xiUd8EhBEQhKRmCQkJRnBJCcFIaQkFalJQ1rSkZ4MhJKRTGQmC1nJRnbCyEFOcpGbcPKQl3zkpwAFKURhilCUYhSnBCUpRWnKUJZylKcCFalEZapQlWpUpwY1qUUEtalDXepRn0ga0JBGNKYJTWlGc1rQkla0pg1taUd7OtCRTnSmC13pRnd60JNe9KYPfelHfwYwkEEMZghDGcZwRjCSUYxmDGMZx3gmEMVEJjGZKUxlGtHEMJ0ZzGQWs5nDXN4BrwioSQ==
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAKAAAACgAAAAYwAAAA==eNoNwxEQwgAUANC/u2gQBdFgFETBKIiCaDAaRIPRIAqiIApGcRzH4ziO43jUe3cvjYiZmQtXrt1aWtvYefTs1Zt3Hz4dfPn249efo5MkYurc3KWFG3dW7m09ePJi7x8kfBEY
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACgAAAAoAAAADAAAAA==eNqTkCAOAABNCAPB
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAEAGAABABgAAgwAAAA==eNrtlEsOwCAIRD0CF0Kv5tGbpi0dRhJx50IT4mcIo7zEUu7Ra7HR9Qnc27pCKMzqNZfLupLfxJtzPz30b38IzALnlvfex3TYu3fOcqPa5C3sS+d412yfV7hl+xzyQ2/1tVAbmKz0OcON+su6NO+X4lY9D2ZxeOzL4/xXO/xXFz1S2q0= </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAEAGAABABgAAfgAAAA==eNrdU0EOwCAI4wl8SPzanr5kbtAyk82DF0yIQGpLExF5zmESeRtBtQXuihZ9r4EjcyLvKh9hYTbHN/ntgzSNOVB/lw/P0+yvdz1y7SOwdswdCrdCn7ymWjPemE8n/KRrrDub9dPHiu4OH5ZwyVOVf1Vlz6v8qxp7fgKHjtqt </DataArray>
+ <DataArray type="Float32" Name="solution_2" format="binary">
+AQAAAEAGAABABgAAVAAAAA==eNpjYEAGDXYMqHxbBCZFHUgejm2RaFuEOCnqkNWi2wdTO+qPUX/Qwh8o2B6VL2CPwCSps0dgASRaAEmcJHV2qHxk+wTsMd0z6o9Rf1DHHwCpe9qt </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="160" NumberOfCells="40" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAIAHAACABwAArwAAAA==eNqdk1ECwCAIQr0ZV+Po+20OQrevVpRP1KrXh5r9Q5yj7aPt1UILo3f3ErPhYV+j7Ss9Fvke5zRaF5cw7ImnxyrPTOel0lz8kn3Q3qTju3kx4cEg5qQGogfY1wieH+uUr9RgxsyuS/2Ib/2uMyW8rsGscFn7CQ9/1FPFlbGF92r2Yy/A6F1fBGZimV+ZPsa8R2vhDY3e+RSZDY/jdf67mbL5hre5PJvwvO8817uUmQ==
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAIACAACAAgAABQEAAA==eNoNwwc3kAEAAMAvSSVpCCklKSlCSEZLISsNyoqsFEIyk5KUZIdUWn/V3XsXBEGwwxB3Guouw9ztHvca7j4j3G+kBzzoIQ8b5RGjjTHWo8Z5zOPGe8KTJnjKRE+b5BnPmuw5UzzvBVNN86LpZpjpJbPMNsfL5nrFPPMtsNCrXvO6N7xpkbe8bbEllnrHMsutsNIq71rtPe/7wIfWWOsjH1tnvQ022uQTm23xqa222W6HnT6zy+e+sNsee31pn/0O+MpBXzvksCOOOua4b5zwrZO+871TfnDaj874yc/O+sU5vzrvgosuueyKq35zzXU3/O6mP/zpL7f87R//+s//bgOvJzGx
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAKAAAACgAAAAYgAAAA==eNoNwxEXwmAAAMAPBoNgMBgEQRAEwSAYBIPBYBAEQTAIgkEwCAZBMAgGg2A/tbv3LgohxK5MTM1cu3Hrzr0Hc48WniytrG08e/Hqzda7Dzuf9r4cfPtx9Ovk7M/FP84+DNE=
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACgAAAAoAAAADAAAAA==eNrj4iIOAAAgMAGR
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAIACAACAAgAAQwAAAA==eNpjYACBBjsGFADiI2NkMWQ16HrheuyRsB0SbYemBptaNDl092BzL7p78LkVq3vscbgZh5uQxYaK+wZn/AIAtdZZOQ== </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAIACAACAAgAAPQAAAA==eNpjYICBBjtMGsZGVoNNHp3GxibVPHR2gz0a2x5NzA5NDBcb3TxCanCZB6Wp7V9qxwe1/Uvd+AAAjnNZOQ== </DataArray>
+ <DataArray type="Float32" Name="solution_2" format="binary">
+AQAAAIACAACAAgAAKQAAAA==eNpjYEAGDXYMWPkgGoax8ZHFRpp5KNgeB98eCWPj22HhjwjzAKsdWTk= </DataArray>
+ <DataArray type="Float32" Name="solution_3" format="binary">
+AQAAAIACAACAAgAAQwAAAA==eNpjYACBBjsGFADiI2NkMWQ16HrheuyRsB0SbYemBptaNDl092BzL7p78LkVq3vscbgZh5uQxYaK+wZn/AIAtdZZOQ== </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>
+<?xml version="1.0" ?>
+<!--
+# vtk DataFile Version 3.0
+#This file was generated
+-->
+<VTKFile type="UnstructuredGrid" version="0.1" compressor="vtkZLibDataCompressor" byte_order="LittleEndian">
+<UnstructuredGrid>
+<Piece NumberOfPoints="400" NumberOfCells="40" >
+ <Points>
+ <DataArray type="Float32" NumberOfComponents="3" format="binary">
+AQAAAMASAADAEgAAJAIAAA==eNqNloGOAyEIRPmywqfx6XeXS1sc36xu0uhal5FhQCKWJ+P43q/v699c3+cz/5/jZ18CTsp6fnHnd4vdXOdz/Pyf697NT8BUnOXcgDl/iJkGl/CDbS6j4WLi38TU8ixncP7S+8Rpnaes/44le954JfPPmWS+YAOWi/FmP0Hrw37lzvGmq2nD6GrGuIAH0vB7rKkDw2cnY06uGuyojyW4pKt2OSt+Kc/qY5mYlsujPHOt3xXwTnmzce3iavRN/ryfkvkWD8kBrI+qI9Au+WPzSmL/pN0m3PRaIc2pzjYNOZ6hXpFulFuKqfpruTR1472nknM4TE5hDkNtbJ3nitVjXmN/Tc6nv7Juc3bGTfxFjQBWzW/yrKsGbNXVtDl9DJnrHtXszRkopqTZud5wzpseY4n5a9cO3gOxa1Dz4abH0Pzc+gfosbY8hzs8Lu78hjpI9z/Va60pjzUx+W60NQhqmb0zDzw3xJfq0cZt8D1MudsXuiItR3K8S+oK5b3jNCTn6pCjYXK6JBeb+mNTI7UuFuynfLU1Mg2u8xtsVnq/dU9fxtTxrGdw/s46t/Qotz2GwdSaRLpz8XE9q9Zo1SPlMXHv7qS40HKfenDDq9NyG1zUdbDNxUfTE0xdX/U6jmc5QzzoiHw/9Rj90C9QDOmer7Gf6lUfzlHGLuVuCZ7V1cHXBrvkd5jzzXM8YbRZUz+e/nN7TzxTvSI/lNsw+P9rPw9B6mw=
+ </DataArray>
+ </Points>
+
+ <Cells>
+ <DataArray type="Int32" Name="connectivity" format="binary">
+AQAAAEAGAABABgAAZQIAAA==eNol01V3FgQAANCPHjkYzegRo7u7R43u7u7ukRvdKKmgdKeCAUoqjUGjYJIG3dxzeLg/4QYCgUAsYhOHuMQjPgkIIiGJSEwSkpKMYJKTghBSkorUpCEt6UhPBkLJSCYyk4WsZCM7YeQgJ7nITTh5yEs+8lOAghSiMEUoSjGKU4KSlKI0ZShLOcpTgYpUojJVqEo1qlODmtQigtrUoS71qE8kDWhIIxrThKY0ozktaEkrWtOGtrSjPR3oSCc604WudKM7PehJL3rTh770oz8DGMggBjOEoQxjOCMYyShGM4axjGM8E4hiIpOYzBSmMo1oYpjODGYyi9nMYS7zmM8CFrKIxSzhAz5kKctYzgpWsoqP+JjVrOETPmUt61jPBjayic1sYSvb2M4OdrKL3exhL/v4jM/ZzwG+4Eu+4msOcohv+JbDHOEoxzjOCb7je05yitOc4SznOM8FfuBHfuJnLnKJy1zhKte4zg1+4Vducovf+J0/+JO/+Jvb3OEu97jPA/7hX/7jfx7yiMc84SnPeM4LXvKK17zhbeB9/ljEJg5xiUd8EhBEQhKRmCQkJRnBJCcFIaQkFalJQ1rSkZ4MhJKRTGQmC1nJRnbCyEFOcpGbcPKQl3zkpwAFKURhilCUYhSnBCUpRWnKUJZylKcCFalEZapQlWpUpwY1qUUEtalDXepRn0ga0JBGNKYJTWlGc1rQkla0pg1taUd7OtCRTnSmC13pRnd60JNe9KYPfelHfwYwkEEMZghDGcZwRjCSUYxmDGMZx3gmEMVEJjGZKUxlGtHEMJ0ZzGQWs5nDXN4BrwioSQ==
+ </DataArray>
+ <DataArray type="Int32" Name="offsets" format="binary">
+AQAAAKAAAACgAAAAYwAAAA==eNoNwxEQwgAUANC/u2gQBdFgFETBKIiCaDAaRIPRIAqiIApGcRzH4ziO43jUe3cvjYiZmQtXrt1aWtvYefTs1Zt3Hz4dfPn249efo5MkYurc3KWFG3dW7m09ePJi7x8kfBEY
+ </DataArray>
+ <DataArray type="UInt8" Name="types" format="binary">
+AQAAACgAAAAoAAAADAAAAA==eNqTkCAOAABNCAPB
+ </DataArray>
+ </Cells>
+ <PointData Scalars="scalars">
+ <DataArray type="Float32" Name="solution_0" format="binary">
+AQAAAEAGAABABgAAgwAAAA==eNrtlEsOwCAIRD0CF0Kv5tGbpi0dRhJx50IT4mcIo7zEUu7Ra7HR9Qnc27pCKMzqNZfLupLfxJtzPz30b38IzALnlvfex3TYu3fOcqPa5C3sS+d412yfV7hl+xzyQ2/1tVAbmKz0OcON+su6NO+X4lY9D2ZxeOzL4/xXO/xXFz1S2q0= </DataArray>
+ <DataArray type="Float32" Name="solution_1" format="binary">
+AQAAAEAGAABABgAAfgAAAA==eNrdU0EOwCAI4wl8SPzanr5kbtAyk82DF0yIQGpLExF5zmESeRtBtQXuihZ9r4EjcyLvKh9hYTbHN/ntgzSNOVB/lw/P0+yvdz1y7SOwdswdCrdCn7ymWjPemE8n/KRrrDub9dPHiu4OH5ZwyVOVf1Vlz6v8qxp7fgKHjtqt </DataArray>
+ <DataArray type="Float32" Name="solution_2" format="binary">
+AQAAAEAGAABABgAAVAAAAA==eNpjYEAGDXYMqHxbBCZFHUgejm2RaFuEOCnqkNWi2wdTO+qPUX/Qwh8o2B6VL2CPwCSps0dgASRaAEmcJHV2qHxk+wTsMd0z6o9Rf1DHHwCpe9qt </DataArray>
+ <DataArray type="Float32" Name="solution_3" format="binary">
+AQAAAEAGAABABgAAgwAAAA==eNrtVEEOwCAI61N4CX7Npy8mTGtnNnbzIAkhQqVIE4Fm1THMw/kc1nC3gyJcaphxWN2jnm/cD6xLjfuX4UbRKN9xcafX6cxv+cSuegu3Ka/kedbsnv/olt3zSj/mhvBWyUNmTu85o5vsV+tWZr6Ubj7roVocPfbV4/xXO/xXF9iuvu0= </DataArray>
+ </PointData>
+ </Piece>
+ </UnstructuredGrid>
+</VTKFile>