From d608f61c9434af6048bb05a9bbbf51245bce103f Mon Sep 17 00:00:00 2001 From: Oliver Sander <oliver.sander@tu-dresden.de> Date: Fri, 20 Dec 2019 10:34:48 +0100 Subject: [PATCH] Replace AmiraMesh output by VTK output Nobody I know still uses AmiraMesh. --- src/linear-elasticity.cc | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/linear-elasticity.cc b/src/linear-elasticity.cc index 43c7243..3893722 100644 --- a/src/linear-elasticity.cc +++ b/src/linear-elasticity.cc @@ -5,12 +5,13 @@ #include <dune/common/parametertreeparser.hh> #include <dune/grid/uggrid.hh> -#include <dune/grid/io/file/amirameshwriter.hh> #include <dune/grid/io/file/amirameshreader.hh> +#include <dune/grid/io/file/vtk.hh> #include <dune/istl/io.hh> #include <dune/functions/functionspacebases/lagrangebasis.hh> +#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh> #include <dune/fufem/functiontools/gridfunctionadaptor.hh> #include <dune/fufem/functions/coarsegridfunctionwrapper.hh> @@ -130,8 +131,13 @@ int main (int argc, char *argv[]) try for (int i=0; i<minLevel; i++) grid->globalRefine(1); - // initial solution - VectorType x(grid->size(dim)); + using P1Basis = Dune::Functions::LagrangeBasis<GridView,1>; + P1Basis p1Basis(grid->leafGridView()); + using FufemP1Basis = DuneFunctionsBasis<P1Basis>; + FufemP1Basis p1NodalBasis(p1Basis); + + // initial iterate + VectorType x(p1Basis.size()); x = 0; // ////////////////////////////////////////////////// @@ -140,10 +146,6 @@ int main (int argc, char *argv[]) try while (true) { - using P1Basis = Dune::Functions::LagrangeBasis<GridView,1>; - using FufemP1Basis = DuneFunctionsBasis<P1Basis>; - FufemP1Basis p1NodalBasis(grid->leafGridView()); - // Determine fine Dirichlet and Neumann dofs LeafBoundaryPatch leafDirichletBoundary(grid->leafGridView()); BoundaryPatchProlongator<GridType>::prolong(coarseDirichletBoundary, leafDirichletBoundary); @@ -301,15 +303,12 @@ int main (int argc, char *argv[]) try } - // Output result -#if HAVE_AMIRAMESH - LeafAmiraMeshWriter<GridType> amiramesh; - amiramesh.addLeafGrid(*grid,true); - amiramesh.addVertexData(x, grid->leafGridView(),true); - amiramesh.write("resultGrid",1); -#else -#warning You need libamiramesh for this code! -#endif + // Output result + auto displacementFunction = Dune::Functions::makeDiscreteGlobalBasisFunction<FieldVector<double,dim> >(p1Basis, x); + + VTKWriter<GridView> vtkWriter(grid->leafGridView()); + vtkWriter.addVertexData(displacementFunction, VTK::FieldInfo("displacement", VTK::FieldInfo::Type::vector, dim)); + vtkWriter.write("linear-elasticity-result"); } catch (Exception& e) { -- GitLab