diff --git a/dune/vtk/datacollectors/yaspdatacollector.hh b/dune/vtk/datacollectors/yaspdatacollector.hh index 7f5b352b83ef2914aa81bd87db22f7297d44fce8..6902f61ed83fb2582a73569094d8d202f93cfef3 100644 --- a/dune/vtk/datacollectors/yaspdatacollector.hh +++ b/dune/vtk/datacollectors/yaspdatacollector.hh @@ -93,7 +93,7 @@ public: } - /// Extract the ordinates from the Coordinates object of the current level + /// Extract the ordinates from the coordinates object of the current level template <class T> std::array<std::vector<T>, 3> coordinatesImpl () const { @@ -119,7 +119,6 @@ private: std::array<int, 6> extent_; FieldVector<ctype,3> origin_; FieldVector<ctype,3> spacing_; - std::vector<std::size_t> indexMap_; int level_; }; diff --git a/dune/vtk/writers/vtkimagedatawriter.impl.hh b/dune/vtk/writers/vtkimagedatawriter.impl.hh index caff7e56de2b8d9190140463762e3040d651f5d8..468b785d3927be30687895d0ff6afbe77940aa2c 100644 --- a/dune/vtk/writers/vtkimagedatawriter.impl.hh +++ b/dune/vtk/writers/vtkimagedatawriter.impl.hh @@ -32,7 +32,7 @@ void VtkImageDataWriter<GV,DC> std::vector<pos_type> offsets; // pos => offset out << "<VTKFile" - << " type=\"StructuredGrid\"" + << " type=\"ImageData\"" << " version=\"1.0\"" << " byte_order=\"" << this->getEndian() << "\"" << " header_type=\"UInt64\"" @@ -110,7 +110,7 @@ void VtkImageDataWriter<GV,DC> assert(out.is_open()); out << "<VTKFile" - << " type=\"StructuredGrid\"" + << " type=\"PImageData\"" << " version=\"1.0\"" << " byte_order=\"" << this->getEndian() << "\"" << " header_type=\"UInt64\"" diff --git a/src/benchmark.cc b/src/benchmark.cc index 81a8eebf110c15fb305d641239142ff71b4f3596..3f2cf8fd11d1b5f59f1d6f65cf1584aeb65797c0 100644 --- a/src/benchmark.cc +++ b/src/benchmark.cc @@ -51,7 +51,7 @@ void writer_old (GridView const& gridView) for (auto const& test_case : test_cases_old) { t.reset(); VTKWriter<GridView> vtkWriter(gridView, std::get<2>(test_case)); - vtkWriter.write("/tmp/writer_old_" + std::get<0>(test_case) + ".vtu", + vtkWriter.write("writer_old_" + std::get<0>(test_case) + ".vtu", std::get<1>(test_case)); std::cout << " time (writer_old_" + std::get<0>(test_case) + ") = " << t.elapsed() << "\n"; } @@ -64,7 +64,7 @@ void writer_new (GridView const& gridView) experimental::VtkUnstructuredGridWriter<GridView> vtkWriter(gridView); for (auto const& test_case : test_cases_new) { t.reset(); - vtkWriter.write("/tmp/writer_new_" + std::get<0>(test_case) + ".vtu", + vtkWriter.write("writer_new_" + std::get<0>(test_case) + ".vtu", std::get<1>(test_case), std::get<2>(test_case)); std::cout << " time (writer_new_" + std::get<0>(test_case) + ") = " << t.elapsed() << "\n"; } @@ -103,7 +103,7 @@ int main (int argc, char** argv) using GridType = YaspGrid<dim.value>; FieldVector<double,dim.value> upperRight; upperRight = 1.0; auto numElements = filledArray<dim.value,int>(10); - GridType grid(upperRight, numElements); + GridType grid(upperRight, numElements, 0, 0); std::cout << "DIMENSION " << dim.value << "\n"; writer_old(grid.leafGridView()); diff --git a/src/structuredgridwriter.cc b/src/structuredgridwriter.cc index 7659dcd38b420ba80683f80397fba8728ed4e577..535ce1f68151bb61929bf3cbbf5e83e70adca2b8 100644 --- a/src/structuredgridwriter.cc +++ b/src/structuredgridwriter.cc @@ -23,6 +23,7 @@ #include <dune/vtk/writers/vtkimagedatawriter.hh> #include <dune/vtk/writers/vtkrectilineargridwriter.hh> #include <dune/vtk/writers/vtkstructuredgridwriter.hh> +#include <dune/vtk/writers/vtkunstructuredgridwriter.hh> #include <dune/vtk/datacollectors/yaspdatacollector.hh> #include <dune/vtk/datacollectors/spdatacollector.hh> @@ -36,7 +37,7 @@ using int_ = std::integral_constant<int,dim>; template <class GridView> void write(std::string prefix, GridView const& gridView) { - auto fct2 = makeAnalyticGridViewFunction([](auto const& x) { + auto fct2 = makeAnalyticGridViewFunction([](auto const& x) -> float { return std::sin(10*x[0]) * (x.size() > 1 ? std::cos(10*x[1]) : 1) + (x.size() > 2 ? std::sin(10*x[2]) : 0); }, gridView); @@ -44,21 +45,28 @@ void write(std::string prefix, GridView const& gridView) using Writer = VtkImageDataWriter<GridView>; Writer vtkWriter(gridView); vtkWriter.addPointData(fct2, "analytic"); - vtkWriter.write(prefix + "id_ascii_float32.vti", Vtk::ASCII); + vtkWriter.write(prefix + "id_ascii_float32.vti", Vtk::ASCII, Vtk::FLOAT32); } { using Writer = VtkRectilinearGridWriter<GridView>; Writer vtkWriter(gridView); vtkWriter.addPointData(fct2, "analytic"); - vtkWriter.write(prefix + "rg_ascii_float32.vtr", Vtk::ASCII); + vtkWriter.write(prefix + "rg_ascii_float32.vtr", Vtk::ASCII, Vtk::FLOAT32); } { using Writer = VtkStructuredGridWriter<GridView>; Writer vtkWriter(gridView); vtkWriter.addPointData(fct2, "analytic"); - vtkWriter.write(prefix + "sg_ascii_float32.vts", Vtk::ASCII); + vtkWriter.write(prefix + "sg_ascii_float32.vts", Vtk::ASCII, Vtk::FLOAT32); + } + + { + using Writer = VtkUnstructuredGridWriter<GridView>; + Writer vtkWriter(gridView); + vtkWriter.addPointData(fct2, "analytic"); + vtkWriter.write(prefix + "ug_ascii_float32.vts", Vtk::ASCII, Vtk::FLOAT32); } } @@ -67,9 +75,9 @@ void write_yaspgrid(std::integral_constant<int,dim>) { using GridType = YaspGrid<dim>; FieldVector<double,dim> upperRight; upperRight = 1.0; - auto numElements = filledArray<dim,int>(8); + auto numElements = filledArray<dim,int>(16); GridType grid(upperRight,numElements,0,0); - grid.globalRefine(1); + grid.globalRefine(3); write("yasp_" + std::to_string(dim) + "d_", grid.leafGridView()); } @@ -80,7 +88,7 @@ void write_spgrid(std::integral_constant<int,dim>) #if HAVE_DUNE_SPGRID using GridType = SPGrid<double,dim, SPIsotropicRefinement>; FieldVector<double,dim> upperRight; upperRight = 1.0; - auto numElements = filledArray<dim,int>(8); + auto numElements = filledArray<dim,int>(12); GridType grid(SPDomain<double,dim>::unitCube(),numElements); // grid.globalRefine(1);