From 31d9ed1b96eacf0c455884f194c0378865ed36c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dennis=20Gl=C3=A4ser?= <dennis.glaeser@iws.uni-stuttgart.de>
Date: Thu, 10 May 2018 14:37:31 +0200
Subject: [PATCH] [poroelastic] add test

---
 test/geomechanics/poroelastic/CMakeLists.txt  |  18 +
 .../poroelastic/poroelastic.input             |  13 +
 test/geomechanics/poroelastic/problem.hh      | 226 +++++++++++++
 .../geomechanics/poroelastic/spatialparams.hh |  72 ++++
 .../poroelastic/test_poroelastic.cc           | 244 ++++++++++++++
 test/references/poroelasticbox-reference.vtu  | 317 ++++++++++++++++++
 6 files changed, 890 insertions(+)
 create mode 100644 test/geomechanics/poroelastic/CMakeLists.txt
 create mode 100644 test/geomechanics/poroelastic/poroelastic.input
 create mode 100644 test/geomechanics/poroelastic/problem.hh
 create mode 100644 test/geomechanics/poroelastic/spatialparams.hh
 create mode 100644 test/geomechanics/poroelastic/test_poroelastic.cc
 create mode 100644 test/references/poroelasticbox-reference.vtu

diff --git a/test/geomechanics/poroelastic/CMakeLists.txt b/test/geomechanics/poroelastic/CMakeLists.txt
new file mode 100644
index 0000000000..df2361d674
--- /dev/null
+++ b/test/geomechanics/poroelastic/CMakeLists.txt
@@ -0,0 +1,18 @@
+dune_symlink_to_source_files(FILES "poroelastic.input")
+
+# using box and numeric differentiation
+dune_add_test(NAME test_poroelastic_box
+              SOURCES test_poroelastic.cc
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS  --script fuzzy
+                        --files ${CMAKE_SOURCE_DIR}/test/references/poroelasticbox-reference.vtu
+                                ${CMAKE_CURRENT_BINARY_DIR}/poroelastic-00001.vtu
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_poroelastic_box poroelastic.input")
+
+set(CMAKE_BUILD_TYPE Release)
+
+install(FILES
+problem.hh
+spatialparams.hh
+test_poroelastic.cc
+DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/test/geomechanics/poroelastic)
diff --git a/test/geomechanics/poroelastic/poroelastic.input b/test/geomechanics/poroelastic/poroelastic.input
new file mode 100644
index 0000000000..928149639f
--- /dev/null
+++ b/test/geomechanics/poroelastic/poroelastic.input
@@ -0,0 +1,13 @@
+[Grid]
+UpperRight = 1 1
+Cells = 10 10
+
+[Problem]
+Name = poroelastic
+EnableGravity = false
+
+[Assembly.NumericDifference]
+PriVarMagnitude = 1e5 1e5
+
+[Component]
+SolidDensity = 2700
diff --git a/test/geomechanics/poroelastic/problem.hh b/test/geomechanics/poroelastic/problem.hh
new file mode 100644
index 0000000000..c98f3c495c
--- /dev/null
+++ b/test/geomechanics/poroelastic/problem.hh
@@ -0,0 +1,226 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/**
+ * \file
+ * \brief Definition of a test problem for the poro-elastic model
+ */
+#ifndef DUMUX_POROELASTIC_PROBLEM_HH
+#define DUMUX_POROELASTIC_PROBLEM_HH
+
+#include <dune/common/fmatrix.hh>
+
+#include <dumux/discretization/box/properties.hh>
+#include <dumux/geomechanics/poroelastic/model.hh>
+#include <dumux/geomechanics/fvproblem.hh>
+
+#include <dumux/material/fluidsystems/1pliquid.hh>
+#include <dumux/material/components/constant.hh>
+
+#include "spatialparams.hh"
+
+namespace Dumux {
+
+template <class TypeTag>
+class PoroElasticProblem;
+
+namespace Properties {
+NEW_TYPE_TAG(PoroElasticTypeTag, INHERITS_FROM(BoxModel, PoroElastic));
+// Set the grid type
+SET_TYPE_PROP(PoroElasticTypeTag, Grid, Dune::YaspGrid<2>);
+// Set the problem property
+SET_TYPE_PROP(PoroElasticTypeTag, Problem, Dumux::PoroElasticProblem<TypeTag>);
+// The fluid phase consists of one constant component
+SET_TYPE_PROP(PoroElasticTypeTag,
+              FluidSystem,
+              Dumux::FluidSystems::OnePLiquid< typename GET_PROP_TYPE(TypeTag, Scalar),
+                                               Dumux::Components::Constant<0, typename GET_PROP_TYPE(TypeTag, Scalar)> >);
+// The spatial parameters property
+SET_TYPE_PROP(PoroElasticTypeTag, SpatialParams, PoroElasticSpatialParams< typename GET_PROP_TYPE(TypeTag, Scalar),
+                                                                           typename GET_PROP_TYPE(TypeTag, FVGridGeometry) >);
+}
+
+/*!
+ * \ingroup Geomechanics
+ * \ingroup PoroElastic
+ *
+ * \brief Problem definition for the deformation of a poro-elastic body
+ */
+template<class TypeTag>
+class PoroElasticProblem : public GeomechanicsFVProblem<TypeTag>
+{
+    using ParentType = GeomechanicsFVProblem<TypeTag>;
+
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, GridVolumeVariables)::LocalView;
+
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using FVElementGeometry = typename FVGridGeometry::LocalView;
+    using SubControlVolume = typename FVGridGeometry::SubControlVolume;
+    using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
+
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    static constexpr int dim = GridView::dimension;
+    static constexpr int dimWorld = GridView::dimensionworld;
+    using GradU = Dune::FieldMatrix<Scalar, dim, dimWorld>;
+
+public:
+    //! The constructor
+    PoroElasticProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
+    : ParentType(fvGridGeometry) {}
+
+    //! The temperature in the domain
+    static constexpr Scalar temperature() { return 273.15; }
+    //! Evaluate the initial value for a control volume.
+    PrimaryVariables initialAtPos(const GlobalPosition& globalPos) const { return PrimaryVariables(0.0); }
+    //! Evaluate the boundary conditions for a Dirichlet boundary segment.
+    PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const { return PrimaryVariables(0.0); }
+    //! Evaluate the boundary conditions for a Neumannboundary segment.
+    PrimaryVariables neumannAtPos(const GlobalPosition& globalPos) const { return PrimaryVariables(0.0); }
+
+    /*!
+     * \brief Returns the effective fluid density
+     * \param globalPos The global position
+     */
+    Scalar effectiveFluidDensityAtPos(const GlobalPosition& globalPos) const
+    {
+        // This test uses the constant component, obtain density only once
+        using FS = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+        static const Scalar rho = FS::density( effectivePorePressureAtPos(globalPos), temperature() );
+        return rho;
+    }
+
+    /*!
+     * \brief Returns the effective pore pressure
+     * \note We use the x-displacement as pressure solution. The shift to
+     *       higher values is done to see a mor pronounced effect in stresses.
+     *
+     * \param globalPos The global position
+     */
+    Scalar effectivePorePressureAtPos(const GlobalPosition& globalPos) const
+    { return exactSolution(globalPos)[0] + 10; }
+
+    /*!
+     * \brief Specifies which kind of boundary condition should be
+     *        used for which equation on a given boundary segment.
+     * \param globalPos The global position
+     */
+    BoundaryTypes boundaryTypesAtPos(const GlobalPosition& globalPos) const
+    {
+        BoundaryTypes values;
+        values.setAllDirichlet();
+        return values;
+    }
+
+    /*!
+     * \brief Evaluate the source term for all phases within a given
+     *        sub-control-volume.
+     */
+    PrimaryVariables source(const Element& element,
+                            const FVElementGeometry& fvGeometry,
+                            const ElementVolumeVariables& elemVolVars,
+                            const SubControlVolume& scv) const
+    {
+        using std::sin;
+        using std::cos;
+
+        static const Scalar pi = 3.14159265358979323846;
+        const auto ipGlobal = scv.center();
+        const auto x = ipGlobal[0];
+        const auto y = ipGlobal[1];
+
+        // the lame parameters (we know they only depend on position here)
+        const auto& lameParams = this->spatialParams().lameParamsAtPos(scv.center());
+        const auto lambda = lameParams.lambda();
+        const auto mu = lameParams.mu();
+
+        // precalculated products
+        const Scalar pi_2 = 2.0*pi;
+        const Scalar pi_2_square = pi_2*pi_2;
+        const Scalar cos_2pix = cos(pi_2*x);
+        const Scalar sin_2pix = sin(pi_2*x);
+        const Scalar cos_2piy = cos(pi_2*y);
+        const Scalar sin_2piy = sin(pi_2*y);
+
+        const Scalar dE11_dx = -2.0*sin_2piy;
+        const Scalar dE22_dx = pi_2_square*cos_2pix*cos_2piy;
+        const Scalar dE11_dy = pi_2*(1.0-2.0*x)*cos_2piy;
+        const Scalar dE22_dy = -1.0*pi_2_square*sin_2pix*sin_2piy;
+        const Scalar dE12_dy = 0.5*pi_2_square*(cos_2pix*cos_2piy - (x-x*x)*sin_2piy);
+        const Scalar dE21_dx = 0.5*((1.0-2*x)*pi_2*cos_2piy - pi_2_square*sin_2pix*sin_2piy);
+
+        // compute exact divergence of sigma
+        PrimaryVariables divSigma(0.0);
+        divSigma[Indices::momentum(/*x-dir*/0)] = lambda*(dE11_dx + dE22_dx) + 2*mu*(dE11_dx + dE12_dy);
+        divSigma[Indices::momentum(/*y-dir*/1)] = lambda*(dE11_dy + dE22_dy) + 2*mu*(dE21_dx + dE22_dy);
+        return divSigma;
+    }
+
+    /*!
+     * \brief Evaluate the exact displacement to this problem at a given position.
+     */
+    PrimaryVariables exactSolution(const GlobalPosition& globalPos) const
+    {
+        using std::sin;
+
+        static const Scalar pi = 3.14159265358979323846;
+        const auto x = globalPos[0];
+        const auto y = globalPos[1];
+
+        PrimaryVariables exact(0.0);
+        exact[Indices::momentum(/*x-dir*/0)] = (x-x*x)*sin(2*pi*y);
+        exact[Indices::momentum(/*y-dir*/1)] = sin(2*pi*x)*sin(2*pi*y);
+        return exact;
+    }
+
+    /*!
+     * \brief Evaluate the exact displacement gradient to this problem at a given position.
+     */
+    GradU exactGradient(const GlobalPosition& globalPos) const
+    {
+        using std::sin;
+        using std::cos;
+
+        static const Scalar pi = 3.14159265358979323846;
+        const auto x = globalPos[0];
+        const auto y = globalPos[1];
+
+        static constexpr int xIdx = Indices::momentum(/*x-dir*/0);
+        static constexpr int yIdx = Indices::momentum(/*y-dir*/1);
+
+        GradU exactGrad(0.0);
+        exactGrad[xIdx][xIdx] = (1-2*x)*sin(2*pi*y);
+        exactGrad[xIdx][yIdx] = (x - x*x)*2*pi*cos(2*pi*y);
+        exactGrad[yIdx][xIdx] = 2*pi*cos(2*pi*x)*sin(2*pi*y);
+        exactGrad[yIdx][yIdx] = 2*pi*sin(2*pi*x)*cos(2*pi*y);
+        return exactGrad;
+    }
+
+private:
+    static constexpr Scalar eps_ = 3e-6;
+};
+
+} //end namespace
+
+#endif
diff --git a/test/geomechanics/poroelastic/spatialparams.hh b/test/geomechanics/poroelastic/spatialparams.hh
new file mode 100644
index 0000000000..c1285f590a
--- /dev/null
+++ b/test/geomechanics/poroelastic/spatialparams.hh
@@ -0,0 +1,72 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \brief Definition of the spatial parameters for the poro-elastic problem
+ */
+#ifndef DUMUX_POROELASTIC_SPATIAL_PARAMS_HH
+#define DUMUX_POROELASTIC_SPATIAL_PARAMS_HH
+
+#include <dumux/geomechanics/lameparams.hh>
+#include <dumux/material/spatialparams/fvporoelastic.hh>
+
+namespace Dumux {
+
+/*!
+ * \ingroup Geomechanics
+ * \ingroup PoroElastic
+ * \brief Definition of the spatial parameters for the poro-elastic problem
+ */
+template<class Scalar, class FVGridGeometry>
+class PoroElasticSpatialParams : public FVSpatialParamsPoroElastic< Scalar,
+                                                                    FVGridGeometry,
+                                                                    PoroElasticSpatialParams<Scalar, FVGridGeometry> >
+{
+    using ThisType = PoroElasticSpatialParams<Scalar, FVGridGeometry>;
+    using ParentType = FVSpatialParamsPoroElastic<Scalar, FVGridGeometry, ThisType>;
+
+    using SubControlVolume = typename FVGridGeometry::SubControlVolume;
+    using GridView = typename FVGridGeometry::GridView;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+public:
+    //! export the type of the lame parameters
+    using LameParams = Dumux::LameParams<Scalar>;
+
+    //! The constructor
+    PoroElasticSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
+    : ParentType(fvGridGeometry)
+    {
+        lameParams_.setLambda(2);
+        lameParams_.setMu(2);
+    }
+
+    //! Define the Lame parameters
+    const LameParams& lameParamsAtPos(const GlobalPosition& globalPos) const { return lameParams_; }
+    //! Return the porosity of the porous medium
+    Scalar porosityAtPos(const GlobalPosition& globalPos) const { return 0.3; }
+    //! Return the biot coefficient of the porous medium
+    Scalar biotCoefficientAtPos(const GlobalPosition& globalPos) const { return 1.0; }
+
+private:
+    LameParams lameParams_;
+};
+} // end namespace Dumux
+#endif
diff --git a/test/geomechanics/poroelastic/test_poroelastic.cc b/test/geomechanics/poroelastic/test_poroelastic.cc
new file mode 100644
index 0000000000..61acaa7dd7
--- /dev/null
+++ b/test/geomechanics/poroelastic/test_poroelastic.cc
@@ -0,0 +1,244 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ *
+ * \brief test for the one-phase CC model
+ */
+#include <config.h>
+
+#include <ctime>
+#include <iostream>
+
+#include <dune/common/parallel/mpihelper.hh>
+#include <dune/common/timer.hh>
+#include <dune/common/fvector.hh>
+#include <dune/grid/io/file/dgfparser/dgfexception.hh>
+#include <dune/grid/io/file/vtk.hh>
+
+#include "problem.hh"
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/valgrind.hh>
+#include <dumux/common/dumuxmessage.hh>
+#include <dumux/common/defaultusagemessage.hh>
+
+#include <dumux/linear/amgbackend.hh>
+#include <dumux/nonlinear/newtonsolver.hh>
+
+#include <dumux/assembly/fvassembler.hh>
+#include <dumux/assembly/diffmethod.hh>
+
+#include <dumux/discretization/methods.hh>
+#include <dumux/discretization/elementsolution.hh>
+#include <dumux/io/vtkoutputmodule.hh>
+
+// function to evaluate the element stresses
+template< class StressType,
+          class Problem,
+          class GridVariables,
+          class SolutionVector,
+          class SigmaStorage >
+void assembleElementStresses(SigmaStorage& sigmaStorage,
+                             SigmaStorage& effSigmaStorage,
+                             const Problem& problem,
+                             const typename GridVariables::GridGeometry& fvGridGeometry,
+                             const GridVariables& gridVariables,
+                             const SolutionVector& x)
+{
+    for (const auto& element : elements(fvGridGeometry.gridView()))
+    {
+        auto fvGeometry = localView(fvGridGeometry);
+        auto elemVolVars = localView(gridVariables.curGridVolVars());
+
+        fvGeometry.bind(element);
+        elemVolVars.bind(element, fvGeometry, x);
+
+        // evaluate flux variables cache at cell center
+        using FluxVarsCache = typename GridVariables::GridFluxVariablesCache::FluxVariablesCache;
+        FluxVarsCache fluxVarsCache;
+        fluxVarsCache.update(problem, element, fvGeometry, elemVolVars, element.geometry().center());
+
+        // get lame parameters, the pressure and compute stress tensor
+        const auto sigma = StressType::stressTensor(problem, element, fvGeometry, elemVolVars, fluxVarsCache);
+        const auto effSigma = StressType::effectiveStressTensor(problem, element, fvGeometry, elemVolVars, fluxVarsCache);
+
+        // pass values into storage container
+        using FVGridGeometry = typename GridVariables::GridGeometry;
+        for (int dir = 0; dir < FVGridGeometry::GridView::dimension; ++dir)
+        {
+            const auto eIdx = fvGridGeometry.elementMapper().index(element);
+            sigmaStorage[dir][eIdx] = sigma[dir];
+            effSigmaStorage[dir][eIdx] = effSigma[dir];
+        }
+    }
+}
+
+// main function
+int main(int argc, char** argv) try
+{
+    using namespace Dumux;
+
+    // define the type tag for this problem
+    using TypeTag = TTAG(PoroElasticTypeTag);
+
+    // stop time for the entire computation
+    Dune::Timer timer;
+
+    // initialize MPI, finalize is done automatically on exit
+    const auto& mpiHelper = Dune::MPIHelper::instance(argc, argv);
+
+    // print dumux start message
+    if (mpiHelper.rank() == 0)
+        DumuxMessage::print(/*firstCall=*/true);
+
+    // parse command line arguments and input file
+    Parameters::init(argc, argv);
+
+    // try to create a grid (from the given grid file or the input file)
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
+    GridCreator::makeGrid();
+    GridCreator::loadBalance();
+
+    ////////////////////////////////////////////////////////////
+    // run non-linear problem on this grid
+    ////////////////////////////////////////////////////////////
+
+    // we compute on the leaf grid view
+    const auto& leafGridView = GridCreator::grid().leafGridView();
+
+    // create the finite volume grid geometry
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
+    fvGridGeometry->update();
+
+    // the problem (initial and boundary conditions)
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    auto problem = std::make_shared<Problem>(fvGridGeometry);
+
+    // the solution vector
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    SolutionVector x(fvGridGeometry->numDofs());
+    problem->applyInitialSolution(x);
+
+    // the grid variables
+    using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables);
+    auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
+    gridVariables->init(x);
+
+    // intialize the vtk output module and output fields
+    using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields);
+    using VtkOutputModule = VtkOutputModule<TypeTag>;
+    VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name());
+    VtkOutputFields::init(vtkWriter);
+
+    // also, add displacement and exact solution to the output
+    vtkWriter.addField(x, "u");
+    SolutionVector xExact(fvGridGeometry->numDofs());
+    for (const auto& v : vertices(leafGridView))
+        xExact[ fvGridGeometry->vertexMapper().index(v) ] = problem->exactSolution(v.geometry().center());
+    vtkWriter.addField(xExact, "u_exact");
+
+    // Furthermore, write out element stress tensors
+    static constexpr int dim = FVGridGeometry::GridView::dimension;
+    static constexpr int dimWorld = FVGridGeometry::GridView::dimensionworld;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using ForceVector = Dune::FieldVector< Scalar, dimWorld >;
+
+    // containers to store sigma/effective sigma
+    std::array< std::vector<ForceVector>, dim > sigmaStorage;
+    std::array< std::vector<ForceVector>, dim > effSigmaStorage;
+
+    const auto numCells = fvGridGeometry->gridView().size(0);
+    std::for_each(sigmaStorage.begin(), sigmaStorage.end(), [numCells] (auto& sigma) { sigma.resize(numCells); });
+    std::for_each(effSigmaStorage.begin(), effSigmaStorage.end(), [numCells] (auto& effSigma) { effSigma.resize(numCells); });
+
+    for (int dir = 0; dir < dim; ++dir)
+    {
+        vtkWriter.addField(sigmaStorage[dir], "sigma_" + std::to_string(dir), VtkOutputModule::FieldType::element);
+        vtkWriter.addField(effSigmaStorage[dir], "effSigma_" + std::to_string(dir), VtkOutputModule::FieldType::element);
+    }
+
+    // use convenience function to compute stresses
+    using StressType = GET_PROP_TYPE(TypeTag, StressType);
+    assembleElementStresses<StressType>(sigmaStorage, effSigmaStorage, *problem, *fvGridGeometry, *gridVariables, x);
+
+    // write initial solution
+    vtkWriter.write(0.0);
+
+    // the assembler with time loop for instationary problem
+    using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>;
+    auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables);
+
+    // the linear solver
+    using LinearSolver = AMGBackend<TypeTag>;
+    auto linearSolver = std::make_shared<LinearSolver>(leafGridView, fvGridGeometry->dofMapper());
+
+    // the non-linear solver
+    using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>;
+    NewtonSolver nonLinearSolver(assembler, linearSolver);
+
+    // linearize & solve
+    nonLinearSolver.solve(x);
+
+    // the grid variables need to be up to date for subsequent output
+    gridVariables->update(x);
+
+    // write vtk output
+    assembleElementStresses<StressType>(sigmaStorage, effSigmaStorage, *problem, *fvGridGeometry, *gridVariables, x);
+    vtkWriter.write(1.0);
+
+    // print time and say goodbye
+    const auto& comm = Dune::MPIHelper::getCollectiveCommunication();
+    if (mpiHelper.rank() == 0)
+        std::cout << "Simulation took " << timer.elapsed() << " seconds on "
+                  << comm.size() << " processes.\n"
+                  << "The cumulative CPU time was " << timer.elapsed()*comm.size() << " seconds.\n";
+
+    // print parameters
+    if (mpiHelper.rank() == 0)
+        Parameters::print();
+
+    return 0;
+} // end main
+catch (Dumux::ParameterException& e)
+{
+    std::cerr << std::endl << e << " ---> Abort!" << std::endl;
+    return 1;
+}
+catch (Dune::DGFException& e)
+{
+    std::cerr << "DGF exception thrown (" << e <<
+                 "). Most likely, the DGF file name is wrong "
+                 "or the DGF file is corrupted, "
+                 "e.g. missing hash at end of file or wrong number (dimensions) of entries."
+                 << " ---> Abort!" << std::endl;
+    return 2;
+}
+catch (Dune::Exception& e)
+{
+    std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl;
+    return 3;
+}
+catch (...)
+{
+    std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl;
+    return 4;
+}
diff --git a/test/references/poroelasticbox-reference.vtu b/test/references/poroelasticbox-reference.vtu
new file mode 100644
index 0000000000..086a6febbe
--- /dev/null
+++ b/test/references/poroelasticbox-reference.vtu
@@ -0,0 +1,317 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
+  <UnstructuredGrid>
+    <Piece NumberOfCells="100" NumberOfPoints="121">
+      <PointData Scalars="divU" Vectors="u">
+        <DataArray type="Float32" Name="divU" NumberOfComponents="1" format="ascii">
+          1.03018 4.31628 1.13699 3.12086 5.98734 4.05203 5.39399 3.56227 2.75709 1.7952 -0.925811 -0.623187
+          -4.25901 -2.82056 -5.98019 -4.00904 -5.44047 -3.78356 -2.85233 -2.26772 -1.03268 -1.14381 0.850548 0.691137
+          0.516076 0.32864 0.134554 -0.0631484 -0.262281 -0.461096 -0.657845 -0.854738 -0.858747 0.231992 -2.01571 -3.24177
+          -3.05161 -1.58592 0.528213 2.41507 3.28421 2.73113 0.889488 -0.239324 -0.485967 -3.96423 -5.77447 -5.27783
+          -2.70607 0.920505 4.17942 5.78745 5.08895 2.30371 0.481644 -1.02811 -4.40834 -6.1109 -5.49569 -2.79631
+          0.962682 4.35375 6.08967 5.51364 2.84813 1.02816 -1.18662 -3.17723 -4.1212 -3.6207 -1.82134 0.638844
+          2.8712 4.07498 3.84249 2.31448 1.19117 -0.901086 -0.740581 -0.565618 -0.369383 -0.153144 0.0738811 0.299603
+          0.514138 0.714246 0.906097 0.908948 -0.279364 1.97083 3.19458 3.01476 1.57185 -0.513503 -2.37511 -3.2301
+          -2.67608 -0.841163 0.288449 0.458683 3.91091 5.71737 5.23698 2.69765 -0.892034 -4.12352 -5.72345 -5.03643
+          -2.27321 -0.451072 0.760231 4.10763 5.83294 5.29515 2.7159 -0.907401 -4.17938 -5.83797 -5.23428 -2.57987
+          -0.757736
+        </DataArray>
+        <DataArray type="Float32" Name="porosity" NumberOfComponents="1" format="ascii">
+          0.309054 1.29488 0.341098 0.936259 1.7962 1.21561 1.6182 1.06868 0.827126 0.538561 -0.277743 -0.186956
+          -1.2777 -0.846167 -1.79406 -1.20271 -1.63214 -1.13507 -0.8557 -0.680316 -0.309803 -0.343143 0.255164 0.207341
+          0.154823 0.0985919 0.0403662 -0.0189445 -0.0786844 -0.138329 -0.197353 -0.256421 -0.257624 0.0695975 -0.604713 -0.972531
+          -0.915482 -0.475777 0.158464 0.724521 0.985262 0.819339 0.266846 -0.0717973 -0.14579 -1.18927 -1.73234 -1.58335
+          -0.81182 0.276152 1.25383 1.73624 1.52668 0.691113 0.144493 -0.308432 -1.3225 -1.83327 -1.64871 -0.838892
+          0.288805 1.30612 1.8269 1.65409 0.854439 0.308448 -0.355987 -0.953169 -1.23636 -1.08621 -0.546401 0.191653
+          0.861361 1.22249 1.15275 0.694345 0.357352 -0.270326 -0.222174 -0.169685 -0.110815 -0.0459431 0.0221643 0.0898809
+          0.154241 0.214274 0.271829 0.272684 -0.0838091 0.591249 0.958375 0.904428 0.471554 -0.154051 -0.712533 -0.96903
+          -0.802824 -0.252349 0.0865348 0.137605 1.17327 1.71521 1.57109 0.809294 -0.26761 -1.23706 -1.71704 -1.51093
+          -0.681962 -0.135322 0.228069 1.23229 1.74988 1.58854 0.81477 -0.27222 -1.25382 -1.75139 -1.57028 -0.773961
+          -0.227321
+        </DataArray>
+        <DataArray type="Float32" Name="u" NumberOfComponents="3" format="ascii">
+          0 0 0 0 0 0 0 0 0 0.0481153 0.363957 0
+          0 0 0 0.0934166 0.58934 0 0 0 0 0.130954 0.589376 0
+          0 0 0 0.155976 0.364446 0 0 0 0 0.164956 0.000518449 0
+          0 0 0 0.156554 -0.363477 0 0 0 0 0.131993 -0.588613 0
+          0 0 0 0.0946667 -0.588909 0 0 0 0 0.0491385 -0.363932 0
+          0 0 0 0 0 0 0 0 0 0.0838484 0.590559 0
+          0.152264 0.953557 0 0.20395 0.95324 0 0.236441 0.590205 0 0.247828 0.0029933 0
+          0.23735 -0.584491 0 0.205573 -0.948337 0 0.154177 -0.949978 0 0.0853257 -0.588714 0
+          0 0 0 0 0 0 0.0869138 0.59232 0 0.150812 0.955588 0
+          0.193915 0.955417 0 0.218695 0.592875 0 0.227034 0.00630311 0 0.219587 -0.580797 0
+          0.195501 -0.944912 0 0.152661 -0.947661 0 0.0883236 -0.587912 0 0 0 0
+          0 0 0 0.0556681 0.368707 0 0.0894817 0.594634 0 0.106461 0.595281 0
+          0.11319 0.371574 0 0.114957 0.00905389 0 0.113735 -0.354203 0 0.107428 -0.580103 0
+          0.0906056 -0.583065 0 0.0565214 -0.36215 0 0 0 0 0 0 0
+          0.00219115 0.00512468 0 -0.00779061 0.00822956 0 -0.0239508 0.00992753 0 -0.0381341 0.0105005 0
+          -0.043704 0.0101149 0 -0.0381341 0.00891322 0 -0.0239508 0.00705559 0 -0.00779061 0.00474666 0
+          0.00219115 0.00226344 0 0 0 0 0 0 0 -0.0529906 -0.3597 0
+          -0.103629 -0.580047 0 -0.147159 -0.577593 0 -0.177014 -0.352809 0 -0.187839 0.00905389 0
+          -0.177559 0.37018 0 -0.148126 0.592771 0 -0.104753 0.591616 0 -0.0538439 0.366257 0
+          0 0 0 0 0 0 -0.0888655 -0.586512 0 -0.161633 -0.945823 0
+          -0.216467 -0.943322 0 -0.250905 -0.579895 0 -0.262955 0.00630311 0 -0.251797 0.591973 0
+          -0.218052 0.953827 0 -0.163482 0.95375 0 -0.0902753 0.59092 0 0 0 0
+          0 0 0 -0.0918459 -0.588504 0 -0.160151 -0.949473 0 -0.206475 -0.947793 0
+          -0.233242 -0.584154 0 -0.242265 0.0029933 0 -0.234151 0.589868 0 -0.208099 0.952696 0
+          -0.162064 0.953053 0 -0.0933231 0.59035 0 0 0 0 0 0 0
+          -0.0603096 -0.364402 0 -0.0996524 -0.589188 0 -0.122767 -0.588728 0 -0.134401 -0.36351 0
+          -0.138052 0.000518449 0 -0.134979 0.364478 0 -0.123806 0.589491 0 -0.100902 0.589619 0
+          -0.0613327 0.364427 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0
+        </DataArray>
+        <DataArray type="Float32" Name="u_exact" NumberOfComponents="3" format="ascii">
+          0 0 0 0 0 0 0 0 0 0.0529007 0.345491 0
+          0 0 0 0.0940456 0.559017 0 0 0 0 0.123435 0.559017 0
+          0 0 0 0.141068 0.345491 0 0 0 0 0.146946 7.19829e-17 0
+          0 0 0 0.141068 -0.345491 0 0 -0 0 0.123435 -0.559017 0
+          0 -0 0 0.0940456 -0.559017 0 0 -0 0 0.0529007 -0.345491 0
+          0 -0 0 0 -1.43966e-16 0 0 0 0 0.0855951 0.559017 0
+          0.152169 0.904508 0 0.199722 0.904508 0 0.228254 0.559017 0 0.237764 1.16471e-16 0
+          0.228254 -0.559017 0 0.199722 -0.904508 0 0.152169 -0.904508 0 0.0855951 -0.559017 0
+          0 -2.32942e-16 0 0 0 0 0.0855951 0.559017 0 0.152169 0.904508 0
+          0.199722 0.904508 0 0.228254 0.559017 0 0.237764 1.16471e-16 0 0.228254 -0.559017 0
+          0.199722 -0.904508 0 0.152169 -0.904508 0 0.0855951 -0.559017 0 0 -2.32942e-16 0
+          0 0 0 0.0529007 0.345491 0 0.0940456 0.559017 0 0.123435 0.559017 0
+          0.141068 0.345491 0 0.146946 7.19829e-17 0 0.141068 -0.345491 0 0.123435 -0.559017 0
+          0.0940456 -0.559017 0 0.0529007 -0.345491 0 0 -1.43966e-16 0 0 0 0
+          1.10218e-17 7.19829e-17 0 1.95943e-17 1.16471e-16 0 2.57176e-17 1.16471e-16 0 2.93915e-17 7.19829e-17 0
+          3.06162e-17 1.49976e-32 0 2.93915e-17 -7.19829e-17 0 2.57176e-17 -1.16471e-16 0 1.95943e-17 -1.16471e-16 0
+          1.10218e-17 -7.19829e-17 0 0 -2.99952e-32 0 0 0 0 -0.0529007 -0.345491 0
+          -0.0940456 -0.559017 0 -0.123435 -0.559017 0 -0.141068 -0.345491 0 -0.146946 -7.19829e-17 0
+          -0.141068 0.345491 0 -0.123435 0.559017 0 -0.0940456 0.559017 0 -0.0529007 0.345491 0
+          0 1.43966e-16 0 -0 -0 0 -0.0855951 -0.559017 0 -0.152169 -0.904508 0
+          -0.199722 -0.904508 0 -0.228254 -0.559017 0 -0.237764 -1.16471e-16 0 -0.228254 0.559017 0
+          -0.199722 0.904508 0 -0.152169 0.904508 0 -0.0855951 0.559017 0 -0 2.32942e-16 0
+          -0 -0 0 -0.0855951 -0.559017 0 -0.152169 -0.904508 0 -0.199722 -0.904508 0
+          -0.228254 -0.559017 0 -0.237764 -1.16471e-16 0 -0.228254 0.559017 0 -0.199722 0.904508 0
+          -0.152169 0.904508 0 -0.0855951 0.559017 0 -0 2.32942e-16 0 -0 -0 0
+          -0.0529007 -0.345491 0 -0.0940456 -0.559017 0 -0.123435 -0.559017 0 -0.141068 -0.345491 0
+          -0.146946 -7.19829e-17 0 -0.141068 0.345491 0 -0.123435 0.559017 0 -0.0940456 0.559017 0
+          -0.0529007 0.345491 0 -0 1.43966e-16 0 -0 -0 0 -2.20436e-17 -1.43966e-16 0
+          -3.91887e-17 -2.32942e-16 0 -5.14352e-17 -2.32942e-16 0 -5.8783e-17 -1.43966e-16 0 -6.12323e-17 -2.99952e-32 0
+          -5.8783e-17 1.43966e-16 0 -5.14352e-17 2.32942e-16 0 -3.91887e-17 2.32942e-16 0 -2.20436e-17 1.43966e-16 0
+          -0 5.99904e-32 0
+        </DataArray>
+      </PointData>
+      <CellData Scalars="process rank" Vectors="sigma_0">
+        <DataArray type="Float32" Name="process rank" NumberOfComponents="1" format="ascii">
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0
+        </DataArray>
+        <DataArray type="Float32" Name="sigma_0" NumberOfComponents="3" format="ascii">
+          -4.93165 4.12072 0 0.852608 3.66916 0 2.85535 2.24407 0 0.218572 0.61999 0
+          -6.15744 -0.429951 0 -13.9581 -0.42486 0 -20.328 0.63411 0 -22.953 2.26364 0
+          -20.9337 3.68783 0 -15.1281 4.1307 0 -3.81349 9.90249 0 -0.78345 6.82962 0
+          -0.194182 1.31561 0 -2.56243 -4.34505 0 -7.30686 -7.87801 0 -12.952 -7.87811 0
+          -17.6815 -4.34606 0 -20.0213 1.31153 0 -19.393 6.81939 0 -16.3202 9.88833 0
+          -4.90703 11.8594 0 -6.12019 7.2788 0 -7.30173 -0.119743 0 -8.4609 -7.53357 0
+          -9.59592 -12.1232 0 -10.7152 -12.1314 0 -11.8322 -7.55796 0 -12.9572 -0.159769 0
+          -14.092 7.22495 0 -15.249 11.7962 0 -7.9971 9.29781 0 -13.0175 4.9662 0
+          -15.5601 -1.48308 0 -15.0532 -7.79209 0 -12.0826 -11.6667 0 -8.16684 -11.6829 0
+          -5.18181 -7.8394 0 -4.6475 -1.55839 0 -7.15222 4.86807 0 -12.1262 9.1826 0
+          -11.9147 3.20355 0 -18.8243 0.782829 0 -21.7509 -2.25339 0 -19.7582 -5.0487 0
+          -13.7907 -6.72891 0 -6.30428 -6.74989 0 -0.331271 -5.11006 0 1.6719 -2.35047 0
+          -1.24022 0.657061 0 -8.13192 3.05556 0 -15.1576 -4.09757 0 -21.3102 -3.68262 0
+          -23.4907 -2.14893 0 -20.7592 -0.367308 0 -14.0591 0.784621 0 -5.84597 0.763641 0
+          0.848633 -0.428665 0 3.56978 -2.24601 0 1.37475 -3.80839 0 -4.7958 -4.24556 0
+          -16.4854 -9.82087 0 -19.5249 -6.73537 0 -20.1143 -1.22357 0 -17.6729 4.45011 0
+          -12.7844 7.99054 0 -6.96622 7.97442 0 -2.09211 4.4028 0 0.321887 -1.29888 0
+          -0.305422 -6.8335 0 -3.39137 -9.93608 0 -15.3938 -11.78 0 -14.1611 -7.21778 0
+          -12.9285 0.156543 0 -11.696 7.5472 0 -10.4603 12.117 0 -9.22851 12.1088 0
+          -8.01093 7.52281 0 -6.81264 0.116517 0 -5.62675 -7.27163 0 -4.45025 -11.8432 0
+          -12.2852 -9.2137 0 -7.28242 -4.93719 0 -4.73798 1.46346 0 -5.17088 7.71407 0
+          -7.99828 11.5423 0 -11.7428 11.5422 0 -14.5851 7.71306 0 -15.0465 1.45938 0
+          -12.5411 -4.94742 0 -7.58112 -9.22786 0 -8.15059 -3.04093 0 -1.60499 -0.648233 0
+          1.14365 2.22879 0 -0.756332 4.82386 0 -6.40314 6.36481 0 -13.4813 6.3699 0
+          -19.1342 4.83798 0 -21.046 2.24836 0 -18.314 -0.629562 0 -11.7896 -3.03094 0
+        </DataArray>
+        <DataArray type="Float32" Name="effSigma_0" NumberOfComponents="3" format="ascii">
+          5.08303 4.12072 0 10.892 3.66916 0 12.9133 2.24407 0 10.2889 0.61999 0
+          3.91904 -0.429951 0 -3.88166 -0.42486 0 -10.2577 0.63411 0 -12.895 2.26364 0
+          -10.8943 3.68783 0 -5.11347 4.1307 0 6.22494 9.90249 0 9.3197 6.82962 0
+          9.95751 1.31561 0 7.62162 -4.34505 0 2.89337 -7.87801 0 -2.75182 -7.87811 0
+          -7.49749 -4.34606 0 -9.86961 1.31153 0 -9.28988 6.81939 0 -6.28175 9.88833 0
+          5.14047 11.8594 0 4.00731 7.2788 0 2.88577 -0.119743 0 1.7666 -7.53357 0
+          0.651581 -12.1232 0 -0.46772 -12.1314 0 -1.60472 -7.55796 0 -2.76967 -0.159769 0
+          -3.96447 7.22495 0 -5.20146 11.7962 0 2.04133 9.29781 0 -2.91432 4.9662 0
+          -5.40841 -1.48308 0 -4.86912 -7.79209 0 -1.88232 -11.6667 0 2.03339 -11.6829 0
+          5.00224 -7.8394 0 5.50419 -1.55839 0 2.95093 4.86807 0 -2.08773 9.1826 0
+          -1.90004 3.20355 0 -8.78491 0.782829 0 -11.693 -2.25339 0 -9.68791 -5.0487 0
+          -3.71419 -6.72891 0 3.7722 -6.74989 0 9.73903 -5.11006 0 11.7298 -2.35047 0
+          8.79918 0.657061 0 1.88275 3.05556 0 -5.17223 -4.09757 0 -11.3496 -3.68262 0
+          -13.5487 -2.14893 0 -10.8295 -0.367308 0 -4.13555 0.784621 0 4.07754 0.763641 0
+          10.7783 -0.428665 0 13.5118 -2.24601 0 11.3353 -3.80839 0 5.18952 -4.24556 0
+          -6.5238 -9.82087 0 -9.62804 -6.73537 0 -10.266 -1.22357 0 -7.85696 4.45011 0
+          -2.98462 7.99054 0 2.83355 7.97442 0 7.72384 4.4028 0 10.1702 -1.29888 0
+          9.59143 -6.8335 0 6.5702 -9.93608 0 -5.44126 -11.78 0 -4.28859 -7.21778 0
+          -3.11596 0.156543 0 -1.92345 7.5472 0 -0.707847 12.117 0 0.523986 12.1088 0
+          1.76157 7.52281 0 2.99986 0.116517 0 4.24575 -7.27163 0 5.50225 -11.8432 0
+          -2.32365 -9.2137 0 2.61443 -4.93719 0 5.11033 1.46346 0 4.64507 7.71407 0
+          1.80149 11.5423 0 -1.94305 11.5422 0 -4.7692 7.71306 0 -5.19823 1.45938 0
+          -2.64424 -4.94742 0 2.38045 -9.22786 0 1.83473 -3.04093 0 8.35561 -0.648233 0
+          11.0857 2.22879 0 9.17337 4.82386 0 3.52038 6.36481 0 -3.55777 6.3699 0
+          -9.20453 4.83798 0 -11.104 2.24836 0 -8.35336 -0.629562 0 -1.80429 -3.03094 0
+        </DataArray>
+        <DataArray type="Float32" Name="sigma_1" NumberOfComponents="3" format="ascii">
+          4.12072 1.38517 0 3.66916 19.0125 0 2.24407 25.6789 0 0.61999 18.7946 0
+          -0.429951 0.962239 0 -0.42486 -21.0493 0 0.63411 -38.8786 0 2.26364 -45.7569 0
+          3.68783 -39.0799 0 4.1307 -21.424 0 9.90249 -1.9207 0 6.82962 8.75862 0
+          1.31561 12.583 0 -4.34505 8.07977 0 -7.87801 -3.14952 0 -7.87811 -16.9452 0
+          -4.34606 -28.1695 0 1.31153 -32.6627 0 6.81939 -28.8225 0 9.88833 -18.1265 0
+          11.8594 -8.28707 0 7.2788 -8.69065 0 -0.119743 -9.11337 0 -7.53357 -9.50936 0
+          -12.1232 -9.87084 0 -12.1314 -10.2167 0 -7.55796 -10.5726 0 -0.159769 -10.9576 0
+          7.22495 -11.3658 0 11.7962 -11.7599 0 9.29781 -15.321 0 4.9662 -26.663 0
+          -1.48308 -31.1836 0 -7.79209 -27.3121 0 -11.6667 -16.6557 0 -11.6829 -3.40656 0
+          -7.8394 7.25414 0 -1.55839 11.1338 0 4.86807 6.62336 0 9.1826 -4.71401 0
+          3.20355 -20.3435 0 0.782829 -38.3007 0 -2.25339 -45.2025 0 -5.0487 -38.5377 0
+          -6.72891 -20.9149 0 -6.74989 0.892307 0 -5.11006 18.5167 0 -2.35047 25.1846 0
+          0.657061 18.2863 0 3.05556 0.330589 0 -4.09757 -21.4381 0 -3.68262 -39.1599 0
+          -2.14893 -45.8129 0 -0.367308 -38.895 0 0.784621 -21.0186 0 0.763641 1.04115 0
+          -0.428665 18.9159 0 -2.24601 25.8308 0 -3.80839 19.1742 0 -4.24556 1.45103 0
+          -9.82087 -18.1845 0 -6.73537 -28.9085 0 -1.22357 -32.7771 0 4.45011 -28.2434 0
+          7.99054 -16.9236 0 7.97442 -3.01412 0 4.4028 8.3013 0 -1.29888 12.8268 0
+          -6.8335 8.9482 0 -9.93608 -1.78051 0 -11.78 -11.8194 0 -7.21778 -11.4525 0
+          0.156543 -11.0677 0 7.5472 -10.6464 0 12.117 -10.1903 0 12.1088 -9.72223 0
+          7.52281 -9.2716 0 0.116517 -8.86131 0 -7.27163 -8.49105 0 -11.8432 -8.13362 0
+          -9.2137 -4.76007 0 -4.93719 6.55828 0 1.46346 11.0378 0 7.71407 7.19131 0
+          11.5423 -3.38143 0 11.5422 -16.5238 0 7.71306 -27.1015 0 1.45938 -30.9581 0
+          -4.94742 -26.4944 0 -9.22786 -15.1927 0 -3.04093 0.343648 0 -0.648233 18.2537 0
+          2.22879 25.1643 0 4.82386 18.5211 0 6.36481 0.929716 0 6.3699 -20.8427 0
+          4.83798 -38.4371 0 2.24836 -45.0863 0 -0.629562 -38.1863 0 -3.03094 -20.3048 0
+        </DataArray>
+        <DataArray type="Float32" Name="effSigma_1" NumberOfComponents="3" format="ascii">
+          4.12072 11.3998 0 3.66916 29.0519 0 2.24407 35.7369 0 0.61999 28.8649 0
+          -0.429951 11.0387 0 -0.42486 -10.9728 0 0.63411 -28.8083 0 2.26364 -35.6989 0
+          3.68783 -29.0405 0 4.1307 -11.4093 0 9.90249 8.11772 0 6.82962 18.8618 0
+          1.31561 22.7347 0 -4.34505 18.2638 0 -7.87801 7.05071 0 -7.87811 -6.74497 0
+          -4.34606 -17.9855 0 1.31153 -22.511 0 6.81939 -18.7193 0 9.88833 -8.08811 0
+          11.8594 1.76043 0 7.2788 1.43685 0 -0.119743 1.07413 0 -7.53357 0.71814 0
+          -12.1232 0.376661 0 -12.1314 0.0308437 0 -7.55796 -0.345099 0 -0.159769 -0.77012 0
+          7.22495 -1.23832 0 11.7962 -1.71244 0 9.29781 -5.28257 0 4.9662 -16.5599 0
+          -1.48308 -21.0319 0 -7.79209 -17.128 0 -11.6667 -6.45545 0 -11.6829 6.79367 0
+          -7.8394 17.4382 0 -1.55839 21.2855 0 4.86807 16.7265 0 9.1826 5.32442 0
+          3.20355 -10.3289 0 0.782829 -28.2613 0 -2.25339 -35.1446 0 -5.0487 -28.4674 0
+          -6.72891 -10.8384 0 -6.74989 10.9688 0 -5.11006 28.587 0 -2.35047 35.2425 0
+          0.657061 28.3257 0 3.05556 10.3453 0 -4.09757 -11.4527 0 -3.68262 -29.1993 0
+          -2.14893 -35.8708 0 -0.367308 -28.9653 0 0.784621 -11.0951 0 0.763641 10.9647 0
+          -0.428665 28.8456 0 -2.24601 35.7729 0 -3.80839 29.1348 0 -4.24556 11.4363 0
+          -9.82087 -8.22291 0 -6.73537 -19.0117 0 -1.22357 -22.9288 0 4.45011 -18.4274 0
+          7.99054 -7.12387 0 7.97442 6.78564 0 4.4028 18.1173 0 -1.29888 22.6751 0
+          -6.8335 18.845 0 -9.93608 8.18106 0 -11.78 -1.86687 0 -7.21778 -1.57997 0
+          0.156543 -1.25521 0 7.5472 -0.873941 0 12.117 -0.437774 0 12.1088 0.0302692 0
+          7.52281 0.5009 0 0.116517 0.951194 0 -7.27163 1.38145 0 -11.8432 1.81888 0
+          -9.2137 5.2015 0 -4.93719 16.4551 0 1.46346 20.8861 0 7.71407 17.0073 0
+          11.5423 6.41834 0 11.5422 -6.72407 0 7.71306 -17.2856 0 1.45938 -21.1098 0
+          -4.94742 -16.5976 0 -9.22786 -5.23111 0 -3.04093 10.329 0 -0.648233 28.2143 0
+          2.22879 35.1063 0 4.82386 28.4508 0 6.36481 10.8532 0 6.3699 -10.9192 0
+          4.83798 -28.5074 0 2.24836 -35.1443 0 -0.629562 -28.2257 0 -3.03094 -10.3195 0
+        </DataArray>
+      </CellData>
+      <Points>
+        <DataArray type="Float32" Name="Coordinates" NumberOfComponents="3" format="ascii">
+          0 0 0 0.1 0 0 0 0.1 0 0.1 0.1 0
+          0.2 0 0 0.2 0.1 0 0.3 0 0 0.3 0.1 0
+          0.4 0 0 0.4 0.1 0 0.5 0 0 0.5 0.1 0
+          0.6 0 0 0.6 0.1 0 0.7 0 0 0.7 0.1 0
+          0.8 0 0 0.8 0.1 0 0.9 0 0 0.9 0.1 0
+          1 0 0 1 0.1 0 0 0.2 0 0.1 0.2 0
+          0.2 0.2 0 0.3 0.2 0 0.4 0.2 0 0.5 0.2 0
+          0.6 0.2 0 0.7 0.2 0 0.8 0.2 0 0.9 0.2 0
+          1 0.2 0 0 0.3 0 0.1 0.3 0 0.2 0.3 0
+          0.3 0.3 0 0.4 0.3 0 0.5 0.3 0 0.6 0.3 0
+          0.7 0.3 0 0.8 0.3 0 0.9 0.3 0 1 0.3 0
+          0 0.4 0 0.1 0.4 0 0.2 0.4 0 0.3 0.4 0
+          0.4 0.4 0 0.5 0.4 0 0.6 0.4 0 0.7 0.4 0
+          0.8 0.4 0 0.9 0.4 0 1 0.4 0 0 0.5 0
+          0.1 0.5 0 0.2 0.5 0 0.3 0.5 0 0.4 0.5 0
+          0.5 0.5 0 0.6 0.5 0 0.7 0.5 0 0.8 0.5 0
+          0.9 0.5 0 1 0.5 0 0 0.6 0 0.1 0.6 0
+          0.2 0.6 0 0.3 0.6 0 0.4 0.6 0 0.5 0.6 0
+          0.6 0.6 0 0.7 0.6 0 0.8 0.6 0 0.9 0.6 0
+          1 0.6 0 0 0.7 0 0.1 0.7 0 0.2 0.7 0
+          0.3 0.7 0 0.4 0.7 0 0.5 0.7 0 0.6 0.7 0
+          0.7 0.7 0 0.8 0.7 0 0.9 0.7 0 1 0.7 0
+          0 0.8 0 0.1 0.8 0 0.2 0.8 0 0.3 0.8 0
+          0.4 0.8 0 0.5 0.8 0 0.6 0.8 0 0.7 0.8 0
+          0.8 0.8 0 0.9 0.8 0 1 0.8 0 0 0.9 0
+          0.1 0.9 0 0.2 0.9 0 0.3 0.9 0 0.4 0.9 0
+          0.5 0.9 0 0.6 0.9 0 0.7 0.9 0 0.8 0.9 0
+          0.9 0.9 0 1 0.9 0 0 1 0 0.1 1 0
+          0.2 1 0 0.3 1 0 0.4 1 0 0.5 1 0
+          0.6 1 0 0.7 1 0 0.8 1 0 0.9 1 0
+          1 1 0
+        </DataArray>
+      </Points>
+      <Cells>
+        <DataArray type="Int32" Name="connectivity" NumberOfComponents="1" format="ascii">
+          0 1 3 2 1 4 5 3 4 6 7 5
+          6 8 9 7 8 10 11 9 10 12 13 11
+          12 14 15 13 14 16 17 15 16 18 19 17
+          18 20 21 19 2 3 23 22 3 5 24 23
+          5 7 25 24 7 9 26 25 9 11 27 26
+          11 13 28 27 13 15 29 28 15 17 30 29
+          17 19 31 30 19 21 32 31 22 23 34 33
+          23 24 35 34 24 25 36 35 25 26 37 36
+          26 27 38 37 27 28 39 38 28 29 40 39
+          29 30 41 40 30 31 42 41 31 32 43 42
+          33 34 45 44 34 35 46 45 35 36 47 46
+          36 37 48 47 37 38 49 48 38 39 50 49
+          39 40 51 50 40 41 52 51 41 42 53 52
+          42 43 54 53 44 45 56 55 45 46 57 56
+          46 47 58 57 47 48 59 58 48 49 60 59
+          49 50 61 60 50 51 62 61 51 52 63 62
+          52 53 64 63 53 54 65 64 55 56 67 66
+          56 57 68 67 57 58 69 68 58 59 70 69
+          59 60 71 70 60 61 72 71 61 62 73 72
+          62 63 74 73 63 64 75 74 64 65 76 75
+          66 67 78 77 67 68 79 78 68 69 80 79
+          69 70 81 80 70 71 82 81 71 72 83 82
+          72 73 84 83 73 74 85 84 74 75 86 85
+          75 76 87 86 77 78 89 88 78 79 90 89
+          79 80 91 90 80 81 92 91 81 82 93 92
+          82 83 94 93 83 84 95 94 84 85 96 95
+          85 86 97 96 86 87 98 97 88 89 100 99
+          89 90 101 100 90 91 102 101 91 92 103 102
+          92 93 104 103 93 94 105 104 94 95 106 105
+          95 96 107 106 96 97 108 107 97 98 109 108
+          99 100 111 110 100 101 112 111 101 102 113 112
+          102 103 114 113 103 104 115 114 104 105 116 115
+          105 106 117 116 106 107 118 117 107 108 119 118
+          108 109 120 119
+        </DataArray>
+        <DataArray type="Int32" Name="offsets" NumberOfComponents="1" format="ascii">
+          4 8 12 16 20 24 28 32 36 40 44 48
+          52 56 60 64 68 72 76 80 84 88 92 96
+          100 104 108 112 116 120 124 128 132 136 140 144
+          148 152 156 160 164 168 172 176 180 184 188 192
+          196 200 204 208 212 216 220 224 228 232 236 240
+          244 248 252 256 260 264 268 272 276 280 284 288
+          292 296 300 304 308 312 316 320 324 328 332 336
+          340 344 348 352 356 360 364 368 372 376 380 384
+          388 392 396 400
+        </DataArray>
+        <DataArray type="UInt8" Name="types" NumberOfComponents="1" format="ascii">
+          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 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
+        </DataArray>
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+</VTKFile>
-- 
GitLab