From c74d579a48ea11f5ea52145c6af8247ff50b6702 Mon Sep 17 00:00:00 2001
From: Anna Mareike Kostelecky <anmako96@web.de>
Date: Fri, 28 Apr 2023 08:49:00 +0200
Subject: [PATCH] [test][pnm] add solid heat conduction test

---
 dumux/flux/porenetwork/grainfourierslaw.hh    |  10 +-
 test/porenetwork/CMakeLists.txt               |   1 +
 test/porenetwork/solid_energy/CMakeLists.txt  |  24 ++
 test/porenetwork/solid_energy/main.cc         | 183 +++++++++
 test/porenetwork/solid_energy/params.input    |  31 ++
 .../porenetwork/solid_energy/problem_solid.hh | 156 ++++++++
 test/porenetwork/solid_energy/properties.hh   |  87 +++++
 ..._pnm_solid_energy_stationary-reference.vtp | 350 ++++++++++++++++++
 ...t_pnm_solid_energy_transient-reference.vtp | 350 ++++++++++++++++++
 9 files changed, 1187 insertions(+), 5 deletions(-)
 create mode 100644 test/porenetwork/solid_energy/CMakeLists.txt
 create mode 100644 test/porenetwork/solid_energy/main.cc
 create mode 100644 test/porenetwork/solid_energy/params.input
 create mode 100644 test/porenetwork/solid_energy/problem_solid.hh
 create mode 100644 test/porenetwork/solid_energy/properties.hh
 create mode 100644 test/references/test_pnm_solid_energy_stationary-reference.vtp
 create mode 100644 test/references/test_pnm_solid_energy_transient-reference.vtp

diff --git a/dumux/flux/porenetwork/grainfourierslaw.hh b/dumux/flux/porenetwork/grainfourierslaw.hh
index 3838156350..0a4d6cc4e2 100644
--- a/dumux/flux/porenetwork/grainfourierslaw.hh
+++ b/dumux/flux/porenetwork/grainfourierslaw.hh
@@ -51,12 +51,12 @@ struct TruncatedPyramidGrainFouriersLaw
         const auto& outsideVolVars = elemVolVars[outsideScv];
         const auto& fluxVarsCache = elemFluxVarsCache[scvf];
 
-        const Scalar topSideLength = 2.0*fluxVarsCache.throatRadius(); // maybe contact radius?
+        const Scalar topSideLength = 2.0*fluxVarsCache.throatInscribedRadius();
 
         // We assume that the distance between pore centroid and throat
         // centroid (i.e., the height of the pyramid) equals the inscribed pore radius.
-        const Scalar insideHeight = insideVolVars.poreRadius();
-        const Scalar outsideHeight = outsideVolVars.poreRadius();
+        const Scalar insideHeight = insideVolVars.poreInscribedRadius();
+        const Scalar outsideHeight = outsideVolVars.poreInscribedRadius();
 
         auto getPyramidBaseLengthFromVolume = [&](const Scalar v, const Scalar h)
         {
@@ -73,7 +73,7 @@ struct TruncatedPyramidGrainFouriersLaw
             if (useAdaptedVolume)
                 return getPyramidBaseLengthFromVolume(0.5*insideVolVars.poreVolume(), insideHeight);
             else
-                return 2.0 * insideVolVars.poreRadius();
+                return 2.0 * insideVolVars.poreInscribedRadius();
         }();
 
         // the pyramid base length of the outside pore
@@ -84,7 +84,7 @@ struct TruncatedPyramidGrainFouriersLaw
             if (useAdaptedVolume)
                 return getPyramidBaseLengthFromVolume(0.5*outsideVolVars.poreVolume(), outsideHeight);
             else
-                return 2.0 * outsideVolVars.poreRadius();
+                return 2.0 * outsideVolVars.poreInscribedRadius();
         }();
 
         auto insideThermalConducitivity = insideVolVars.solidThermalConductivity();
diff --git a/test/porenetwork/CMakeLists.txt b/test/porenetwork/CMakeLists.txt
index c3eb5c37ae..3ede93f0a7 100644
--- a/test/porenetwork/CMakeLists.txt
+++ b/test/porenetwork/CMakeLists.txt
@@ -4,3 +4,4 @@
 add_subdirectory(1p)
 add_subdirectory(1pnc)
 add_subdirectory(2p)
+add_subdirectory(solid_energy)
\ No newline at end of file
diff --git a/test/porenetwork/solid_energy/CMakeLists.txt b/test/porenetwork/solid_energy/CMakeLists.txt
new file mode 100644
index 0000000000..3499c6778c
--- /dev/null
+++ b/test/porenetwork/solid_energy/CMakeLists.txt
@@ -0,0 +1,24 @@
+dune_symlink_to_source_files(FILES grids "params.input")
+
+dumux_add_test(NAME test_porenetwork_solid_energy_stationary
+              LABELS porenetwork solid energy
+              SOURCES main.cc
+              COMPILE_DEFINITIONS STATIONARY
+              CMAKE_GUARD "( dune-subgrid_FOUND AND dune-foamgrid_FOUND AND HAVE_UMFPACK )"
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS  --script fuzzy
+                        --files ${CMAKE_SOURCE_DIR}/test/references/test_pnm_solid_energy_stationary-reference.vtp
+                                ${CMAKE_CURRENT_BINARY_DIR}/test_pnm_solid_energy_stationary-00001.vtp
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_porenetwork_solid_energy_stationary params.input
+                                    -Problem.Name test_pnm_solid_energy_stationary")
+
+dumux_add_test(NAME test_porenetwork_solid_energy_transient
+              LABELS porenetwork solid energy
+              SOURCES main.cc
+              CMAKE_GUARD "( dune-subgrid_FOUND AND dune-foamgrid_FOUND AND HAVE_UMFPACK )"
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS  --script fuzzy
+                        --files ${CMAKE_SOURCE_DIR}/test/references/test_pnm_solid_energy_transient-reference.vtp
+                                ${CMAKE_CURRENT_BINARY_DIR}/test_pnm_solid_energy_transient-00033.vtp
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_porenetwork_solid_energy_transient params.input
+                                    -Problem.Name test_pnm_solid_energy_transient")
\ No newline at end of file
diff --git a/test/porenetwork/solid_energy/main.cc b/test/porenetwork/solid_energy/main.cc
new file mode 100644
index 0000000000..b7909397cf
--- /dev/null
+++ b/test/porenetwork/solid_energy/main.cc
@@ -0,0 +1,183 @@
+// -*- 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 3 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 pore network model
+ */
+#include <config.h>
+
+#include <iostream>
+#include <dune/common/parallel/mpihelper.hh>
+#include <dune/common/timer.hh>
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/dumuxmessage.hh>
+#include <dumux/common/initialize.hh>
+
+#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/assembly/fvassembler.hh>
+#include <dumux/nonlinear/newtonsolver.hh>
+
+#include <dumux/io/grid/porenetwork/gridmanager.hh>
+#include <dumux/io/grid/porenetwork/griddata.hh>
+
+#include <dumux/porenetwork/common/pnmvtkoutputmodule.hh>
+#include <dumux/porenetwork/common/boundaryflux.hh>
+
+#include "properties.hh"
+
+int main(int argc, char** argv)
+{
+    using namespace Dumux;
+
+    using SolidTypeTag = Properties::TTag::PNMSolidModel;
+
+    // initialize MPI, finalize is done automatically on exit
+    Dumux::initialize(argc, argv);
+    const auto& mpiHelper = Dune::MPIHelper::instance(argc, argv);
+
+    // print dumux start message
+    if (mpiHelper.rank() == 0)
+        DumuxMessage::print(/*firstCall=*/true);
+
+    ////////////////////////////////////////////////////////////
+    // parse the command line arguments and input file
+    ////////////////////////////////////////////////////////////
+
+    // parse command line arguments
+    Parameters::init(argc, argv);
+
+    //////////////////////////////////////////////////////////////////////
+    // try to create a grid (from the given grid file or the input file)
+    /////////////////////////////////////////////////////////////////////
+
+    using GridManager = PoreNetwork::GridManager<3>;
+    GridManager gridManager;
+    gridManager.init();
+
+    // we compute on the leaf grid view
+    const auto solidLeafGridView = gridManager.grid().leafGridView();
+    const auto solidGridData = gridManager.getGridData();
+
+    // create the finite volume grid geometry
+    using SolidGridGeometry = GetPropType<SolidTypeTag, Properties::GridGeometry>;
+    auto solidGridGeometry = std::make_shared<SolidGridGeometry>(solidLeafGridView,*solidGridData);
+
+    // the spatial parameters
+    using SolidSpatialParams = GetPropType<SolidTypeTag, Properties::SpatialParams>;
+    auto solidSpatialParams = std::make_shared<SolidSpatialParams>(solidGridGeometry); // from common/spatialparams constructor
+
+    // the problem (boundary conditions)
+    using SolidProblem = GetPropType<SolidTypeTag, Properties::Problem>;
+    auto solidProblem = std::make_shared<SolidProblem>(solidGridGeometry, solidSpatialParams);
+
+    // the solution vector
+    using GridView = typename SolidGridGeometry::GridView;
+    using SolutionVector = GetPropType<SolidTypeTag, Properties::SolutionVector>;
+    SolutionVector sol(solidLeafGridView.size(GridView::dimension));;
+    solidProblem->applyInitialSolution(sol);
+    auto solOld = sol;
+
+    // the grid variables
+    using SolidGridVariables = GetPropType<SolidTypeTag, Properties::GridVariables>;
+    auto solidGridVariables = std::make_shared<SolidGridVariables>(solidProblem, solidGridGeometry);
+    solidGridVariables->init(sol);
+
+    // get some time loop parameters
+    using Scalar = GetPropType<SolidTypeTag, Properties::Scalar>;
+    const auto tEnd = getParam<Scalar>("TimeLoop.TEnd", 1.0);
+    const auto maxDt = getParam<Scalar>("TimeLoop.MaxTimeStepSize", 1.0);
+    auto dt = getParam<Scalar>("TimeLoop.DtInitial", 1.0);
+
+    // initialize the vtk output modules
+    using SolidVtkWriter = PoreNetwork::VtkOutputModule<SolidGridVariables, GetPropType<SolidTypeTag, Properties::FluxVariables>, SolutionVector>;
+    SolidVtkWriter solidVtkWriter(*solidGridVariables, sol, solidProblem->name());
+    using IOFields = GetPropType<SolidTypeTag, Properties::IOFields>;
+    IOFields::initOutputModule(solidVtkWriter);
+
+    solidVtkWriter.write(0.0);
+
+    // instantiate time loop
+    auto timeLoop = std::make_shared<TimeLoop<Scalar>>(0, dt, tEnd);
+    timeLoop->setMaxTimeStepSize(maxDt);
+
+    static const bool isStationary = getParam<bool>("Problem.IsStationary", true);
+
+    // the assembler
+    using Assembler = FVAssembler<SolidTypeTag, DiffMethod::numeric>;
+    auto assembler = isStationary ? std::make_shared<Assembler>(solidProblem, solidGridGeometry, solidGridVariables) //stationary case
+                                  : std::make_shared<Assembler>(solidProblem, solidGridGeometry, solidGridVariables, timeLoop, solOld); // transient case -> timeloop needed
+
+    using LinearSolver = ILU0BiCGSTABBackend;
+    auto linearSolver = std::make_shared<LinearSolver>();
+
+    // the non-linear solver
+    using NewtonSolver = NewtonSolver<Assembler, LinearSolver>;
+    NewtonSolver nonLinearSolver(assembler, linearSolver);
+
+#if STATIONARY //check if stationary or transient problem
+    // solve the non-linear system without time step control
+    nonLinearSolver.solve(sol);
+
+    // write vtk output
+    solidVtkWriter.write(1);
+
+#else //solve transient problem
+    // time loop
+    timeLoop->start(); do
+    {
+        // solve the non-linear system with time step control
+        nonLinearSolver.solve(sol, *timeLoop);
+
+        // make the new solution the old solution
+        solOld = sol;
+        solidGridVariables->advanceTimeStep();
+
+        // advance to the time loop to the next step
+        timeLoop->advanceTimeStep();
+
+        // write vtk output
+        solidVtkWriter.write(timeLoop->time());
+
+        // report statistics of this time step
+        timeLoop->reportTimeStep();
+
+        // set new dt as suggested by newton solver
+        timeLoop->setTimeStepSize(nonLinearSolver.suggestTimeStepSize(timeLoop->timeStepSize()));
+
+    } while (!timeLoop->finished());
+
+    timeLoop->finalize(solidLeafGridView.comm());
+#endif
+
+    ////////////////////////////////////////////////////////////
+    // finalize, print dumux message to say goodbye
+    ////////////////////////////////////////////////////////////
+
+    // print dumux end message
+    if (mpiHelper.rank() == 0)
+    {
+        Parameters::print();
+        DumuxMessage::print(/*firstCall=*/false);
+    }
+
+    return 0;
+}
diff --git a/test/porenetwork/solid_energy/params.input b/test/porenetwork/solid_energy/params.input
new file mode 100644
index 0000000000..183e61a8d4
--- /dev/null
+++ b/test/porenetwork/solid_energy/params.input
@@ -0,0 +1,31 @@
+[TimeLoop]
+TEnd      = 10 # [s]
+DtInitial = 1e-5 # [s]
+
+[Grid]
+PoreGeometry            = Sphere
+ThroatCrossSectionShape = Circle
+UpperRight = 1e-3 1e-3 1e-3
+NumPores   = 4 4 4
+PoreInscribedRadius   = 2e-5
+ThroatInscribedRadius = 2e-6
+BoundaryPoreLabels = xMin:5 xMax:6 yMin:0 yMax:0 zMin:0 zMax:0 #Labels to specify different BCs
+PriorityList       = 0 1 2 3 4 5 #order of how BCs are set (0 1 2 3 4 5 = xMin, xMax, yMin, yMax, zMin,zMax)
+
+[Problem]
+Name = test_pnm_solid_energy
+IsStationary  = false #solving stationary or transient problem
+EnableGravity = false
+InitialTemperature = 300 # [K]
+LeftTemperature    = 400 # [K]
+LeftIndex  = 5  #specifies which pores are on left/heated boundary
+RightIndex = 6  #specifies, which pores are on right boundary
+
+[Vtk]
+OutputName  = test
+AddVelocity = 0
+
+[1.Component] #solid phase (values for granite)
+SolidHeatCapacity        = 790
+SolidDensity             = 2700
+SolidThermalConductivity = 2.600038292
diff --git a/test/porenetwork/solid_energy/problem_solid.hh b/test/porenetwork/solid_energy/problem_solid.hh
new file mode 100644
index 0000000000..5e9edbe166
--- /dev/null
+++ b/test/porenetwork/solid_energy/problem_solid.hh
@@ -0,0 +1,156 @@
+// -*- 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 3 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/>.   *
+ *****************************************************************************/
+#ifndef DUMUX_TEST_PORENETWORK_SOLID_ENERGY_PROBLEM_HH
+#define DUMUX_TEST_PORENETWORK_SOLID_ENERGY_PROBLEM_HH
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
+
+// base problem
+#include <dumux/porousmediumflow/problem.hh>
+
+namespace Dumux {
+
+/*!
+ * \brief Heat conduction problem with multiple solid spheres
+ */
+template <class TypeTag>
+class SolidProblem : public PorousMediumFlowProblem<TypeTag>
+{
+    using ParentType = PorousMediumFlowProblem<TypeTag>;
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using GridView = typename GridGeometry::GridView;
+    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
+    using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
+    using FVElementGeometry = typename GridGeometry::LocalView;
+    using SubControlVolume = typename FVElementGeometry::SubControlVolume;
+    using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
+
+    using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
+
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+public:
+    template<class SpatialParams>
+    SolidProblem(std::shared_ptr<const GridGeometry> gridGeometry,
+                    std::shared_ptr<SpatialParams> spatialParams)
+    : ParentType(gridGeometry, spatialParams)
+    {
+        problemName_  =  getParam<std::string>("Problem.Name");
+        initialTemperature_ = getParam<Scalar>("Problem.InitialTemperature");
+        temperatureLeft_ = getParam<Scalar>("Problem.LeftTemperature");
+
+        leftIndex_ = getParam<int>("Problem.LeftIndex");
+        rightIndex_ = getParam<int>("Problem.RightIndex");
+    }
+
+    /*!
+     * \brief The problem name.
+     */
+    const std::string& name() const
+    {
+        return problemName_;
+    }
+
+    /*!
+     * \brief Specifies which kind of boundary condition should be
+     *        used for which equation on a given boundary control volume.
+     */
+    BoundaryTypes boundaryTypes(const Element &element, const SubControlVolume& scv) const
+    {
+        BoundaryTypes values;
+        values.setAllNeumann();
+
+        if (onLeftBoundary_(scv) || onRightBoundary_(scv))
+            values.setAllDirichlet();
+
+        return values;
+    }
+
+    template<class ElementVolumeVariables>
+    NumEqVector source(const Element& element,
+                       const FVElementGeometry& fvGeometry,
+                       const ElementVolumeVariables& elemVolVars,
+                       const SubControlVolume& scv) const
+    {
+        NumEqVector value = 0.0; //isolating boundary condition
+        return value;
+    }
+
+    /*!
+     * \brief Evaluates the boundary conditions for a Dirichlet control volume.
+     */
+    PrimaryVariables dirichlet(const Element& element, const SubControlVolume& scv) const
+    {
+        auto values = initialAtPos(scv.dofPosition()); //onRightBoundary_(scv)
+
+        if (onLeftBoundary_(scv))
+        {
+            values = temperatureLeft_;
+        }
+
+        return values;
+    }
+
+    /*!
+     * \brief Evaluates the boundary conditions for a Neumann control volume.
+     */
+    template<class ElementVolumeVariables, class ElementFluxVariablesCache>
+    NumEqVector neumann(const Element& element,
+                        const FVElementGeometry& fvGeometry,
+                        const ElementVolumeVariables& elemVolVars,
+                        const ElementFluxVariablesCache& elemFluxVarsCache,
+                        const SubControlVolumeFace& scvf) const
+    {
+        return NumEqVector(0.0); //no Neumann BC for PNM -> set flux in source term
+    }
+
+    /*!
+     * \brief Evaluates the initial value for a control volume.
+     */
+    PrimaryVariables initialAtPos(const GlobalPosition& pos) const
+    {
+        PrimaryVariables values(initialTemperature_); //uniform initial temperature
+        return values;
+    }
+
+private:
+
+    bool onLeftBoundary_(const SubControlVolume& scv) const
+    { return this->gridGeometry().poreLabel(scv.dofIndex()) == leftIndex_; }
+
+    bool onRightBoundary_(const SubControlVolume& scv) const
+    { return this->gridGeometry().poreLabel(scv.dofIndex()) == rightIndex_; }
+
+    std::string problemName_;
+
+    Scalar initialTemperature_;
+    Scalar temperatureLeft_;
+
+    int leftIndex_;
+    int rightIndex_;
+};
+} // end namespace Dumux
+
+#endif
diff --git a/test/porenetwork/solid_energy/properties.hh b/test/porenetwork/solid_energy/properties.hh
new file mode 100644
index 0000000000..0bab4789e6
--- /dev/null
+++ b/test/porenetwork/solid_energy/properties.hh
@@ -0,0 +1,87 @@
+// -*- 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 3 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/>.   *
+ *****************************************************************************/
+/*!
+ * \filegrid
+ * \brief Heat conduction problem with multiple solid spheres
+ */
+#ifndef DUMUX_TEST_PORENETWORK_SOLID_ENERGY_PROPERTIES_HH
+#define DUMUX_TEST_PORENETWORK_SOLID_ENERGY_PROPERTIES_HH
+
+#include <dumux/common/properties.hh>
+#include <dumux/io/grid/gridmanager.hh>
+#include <dune/foamgrid/foamgrid.hh>
+
+#include <dumux/porenetwork/solidenergy/model.hh>
+#include <dumux/porenetwork/solidenergy/spatialparams.hh>
+
+#include <dumux/material/components/constant.hh>
+
+#include "problem_solid.hh"
+
+namespace Dumux::Properties {
+
+// Create new type tags
+namespace TTag {
+struct PNMSolidModel { using InheritsFrom = std::tuple<PNMSolidEnergy>; };
+} // end namespace TTag
+
+// Set the problem property
+template<class TypeTag>
+struct Problem<TypeTag, TTag::PNMSolidModel>
+{ using type = Dumux::SolidProblem<TypeTag>; };
+
+// Set the grid type
+template<class TypeTag>
+struct Grid<TypeTag, TTag::PNMSolidModel>
+{ using type = Dune::FoamGrid<1, 3>; };
+
+//! The spatial parameters to be employed.
+template<class TypeTag>
+struct SpatialParams<TypeTag, TTag::PNMSolidModel>
+{
+private:
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
+public:
+    using type = PoreNetwork::SolidEnergySpatialParams<GridGeometry, Scalar>;
+};
+
+// per default the solid system is inert with one constant component
+template<class TypeTag>
+struct SolidSystem<TypeTag, TTag::PNMSolidModel>
+{
+private:
+    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
+    using InertComponent = Components::Constant<1, Scalar>;
+public:
+    using type = SolidSystems::InertSolidPhase<Scalar, InertComponent>;
+};
+
+template<class TypeTag>
+struct HeatConductionType<TypeTag, TTag::PNMSolidModel>
+{
+private:
+    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
+public:
+    using type = PoreNetwork::TruncatedPyramidGrainFouriersLaw<Scalar>; //from grainfourierslaw.hh (specified in solidenergy/model.hh)
+};
+
+} // end namespace Dumux::Properties
+
+#endif
diff --git a/test/references/test_pnm_solid_energy_stationary-reference.vtp b/test/references/test_pnm_solid_energy_stationary-reference.vtp
new file mode 100644
index 0000000000..d7c70c1f40
--- /dev/null
+++ b/test/references/test_pnm_solid_energy_stationary-reference.vtp
@@ -0,0 +1,350 @@
+<?xml version="1.0"?>
+<VTKFile type="PolyData" version="0.1" byte_order="LittleEndian">
+  <PolyData>
+    <Piece NumberOfLines="468" NumberOfPoints="64">
+      <PointData Scalars="poreInscribedRadius">
+        <DataArray type="Float32" Name="poreInscribedRadius" NumberOfComponents="1" format="ascii">
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05
+        </DataArray>
+        <DataArray type="Float32" Name="T" NumberOfComponents="1" format="ascii">
+          400 400 300.004 300.006 400 400 300.006 300.009 300 300 300 300
+          300 300 300 300 400 400 300.006 300.009 300 300 300 300
+          400 400 300.004 300.006 300 300 300 300 400 300.006 400 300.009
+          300 300 300 300 400 300.009 300 300 400 300.006 300 300
+          400 300.004 400 300.006 300 300 300 300 400 300.006 300 300
+          400 300.004 300 300
+        </DataArray>
+        <DataArray type="Float32" Name="coordinationNumber" NumberOfComponents="1" format="ascii">
+          7 11 11 17 11 17 17 26 11 17 17 26
+          7 11 11 17 11 17 17 26 17 26 11 17
+          7 11 11 17 11 17 7 11 11 17 17 26
+          17 26 11 17 17 26 26 17 11 17 17 11
+          7 11 11 17 11 17 7 11 11 17 17 11
+          7 11 11 7
+        </DataArray>
+        <DataArray type="Float32" Name="poreLabel" NumberOfComponents="1" format="ascii">
+          5 5 0 0 5 5 0 -1 0 0 0 -1
+          6 6 6 6 5 5 0 -1 0 -1 6 6
+          5 5 0 0 0 0 6 6 5 0 5 -1
+          0 -1 6 6 5 -1 -1 6 5 0 0 6
+          5 0 5 0 0 0 6 6 5 0 0 6
+          5 0 0 6
+        </DataArray>
+      </PointData>
+      <CellData Scalars="process rank">
+        <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 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 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
+          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 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="throatLabel" NumberOfComponents="1" format="ascii">
+          5 0 5 0 5 0 5 5 5 0 5 5
+          5 5 0 0 5 5 5 5 5 5 5 5
+          5 5 5 5 0 0 0 0 0 0 0 -1
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 6 6 6 6 6 6 6 6 6 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+          5 0 5 0 5 5 -1 5 5 5 0 0
+          5 5 5 5 5 5 5 5 5 5 0 0
+          0 -1 -1 0 0 0 0 0 0 -1 -1 0
+          0 0 0 6 6 6 6 6 6 6 6 6
+          6 6 6 6 6 6 6 6 5 0 5 0
+          5 5 0 5 5 5 0 0 5 5 5 5
+          5 5 5 5 5 5 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+          6 6 6 6 5 0 5 -1 5 0 5 5
+          5 5 0 0 5 5 5 5 5 5 5 5
+          5 5 0 -1 0 0 -1 0 0 0 0 -1
+          -1 0 0 0 0 0 0 6 6 6 6 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+          5 -1 5 -1 5 5 5 -1 -1 5 5 5
+          5 5 5 5 5 -1 -1 -1 -1 -1 -1 -1
+          -1 -1 -1 -1 -1 -1 6 6 6 6 6 6
+          6 6 6 6 6 6 6 5 0 5 0 5
+          5 5 0 0 5 5 5 5 5 5 5 5
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 6 6 6 6 6 6 6 6 6 6 6
+          6 6 5 0 5 0 5 0 5 5 5 5
+          0 0 5 5 5 5 5 5 5 5 5 5
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 6 6 6 6 6 6 6
+          6 6 6 6 6 6 6 6 6 6 5 0
+          5 0 5 5 5 0 0 5 5 5 5 5
+          5 5 5 0 0 0 0 0 0 0 0 0
+          0 0 0 0 6 6 6 6 6 6 6 6
+          6 6 6 6 6 5 0 5 0 5 5 5
+          0 0 5 5 5 5 5 5 5 5 0 0
+          0 0 0 0 0 0 0 0 0 0 0 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+        </DataArray>
+        <DataArray type="Float32" Name="throatInscribedRadius" NumberOfComponents="1" format="ascii">
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+        </DataArray>
+        <DataArray type="Float32" Name="throatLength" NumberOfComponents="1" format="ascii">
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735
+          0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735
+          0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735
+          0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735
+          0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735
+          0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735
+          0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333
+          0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333
+          0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+        </DataArray>
+      </CellData>
+      <Points>
+        <DataArray type="Float32" Name="Coordinates" NumberOfComponents="3" format="ascii">
+          0 0 0 0 0 0.000333333 0.000333333 0 0 0.000333333 0 0.000333333
+          0 0.000333333 0 0 0.000333333 0.000333333 0.000333333 0.000333333 0 0.000333333 0.000333333 0.000333333
+          0.000666667 0 0 0.000666667 0 0.000333333 0.000666667 0.000333333 0 0.000666667 0.000333333 0.000333333
+          0.001 0 0 0.001 0 0.000333333 0.001 0.000333333 0 0.001 0.000333333 0.000333333
+          0 0.000666667 0 0 0.000666667 0.000333333 0.000333333 0.000666667 0 0.000333333 0.000666667 0.000333333
+          0.000666667 0.000666667 0 0.000666667 0.000666667 0.000333333 0.001 0.000666667 0 0.001 0.000666667 0.000333333
+          0 0.001 0 0 0.001 0.000333333 0.000333333 0.001 0 0.000333333 0.001 0.000333333
+          0.000666667 0.001 0 0.000666667 0.001 0.000333333 0.001 0.001 0 0.001 0.001 0.000333333
+          0 0 0.000666667 0.000333333 0 0.000666667 0 0.000333333 0.000666667 0.000333333 0.000333333 0.000666667
+          0.000666667 0 0.000666667 0.000666667 0.000333333 0.000666667 0.001 0 0.000666667 0.001 0.000333333 0.000666667
+          0 0.000666667 0.000666667 0.000333333 0.000666667 0.000666667 0.000666667 0.000666667 0.000666667 0.001 0.000666667 0.000666667
+          0 0.001 0.000666667 0.000333333 0.001 0.000666667 0.000666667 0.001 0.000666667 0.001 0.001 0.000666667
+          0 0 0.001 0.000333333 0 0.001 0 0.000333333 0.001 0.000333333 0.000333333 0.001
+          0.000666667 0 0.001 0.000666667 0.000333333 0.001 0.001 0 0.001 0.001 0.000333333 0.001
+          0 0.000666667 0.001 0.000333333 0.000666667 0.001 0.000666667 0.000666667 0.001 0.001 0.000666667 0.001
+          0 0.001 0.001 0.000333333 0.001 0.001 0.000666667 0.001 0.001 0.001 0.001 0.001
+        </DataArray>
+      </Points>
+      <Lines>
+        <DataArray type="Int32" Name="connectivity" NumberOfComponents="1" format="ascii">
+          0 1 2 3 4 5 6 7 0 4 2 6
+          0 2 4 6 1 5 3 7 1 3 5 7
+          4 1 0 5 6 3 2 7 2 1 0 3
+          6 5 4 7 2 4 0 6 3 5 1 7
+          0 7 6 1 2 5 4 3 8 9 10 11
+          8 10 2 8 6 10 9 11 3 9 7 11
+          10 9 8 11 8 3 2 9 10 7 6 11
+          8 6 2 10 9 7 3 11 2 11 10 3
+          8 7 6 9 12 13 14 15 12 14 8 12
+          10 14 13 15 9 13 11 15 14 13 12 15
+          12 9 8 13 14 11 10 15 12 10 8 14
+          13 11 9 15 8 15 14 9 12 11 10 13
+          16 17 18 19 4 16 6 18 16 18 5 17
+          7 19 17 19 16 5 4 17 18 7 6 19
+          18 17 16 19 6 16 4 18 7 17 5 19
+          4 19 18 5 6 17 16 7 20 21 10 20
+          18 20 11 21 19 21 20 11 10 21 20 19
+          18 21 10 18 6 20 11 19 7 21 6 21
+          20 7 10 19 18 11 22 23 14 22 20 22
+          15 23 21 23 22 15 14 23 22 21 20 23
+          14 20 10 22 15 21 11 23 10 23 22 11
+          14 21 20 15 24 25 26 27 16 24 18 26
+          24 26 17 25 19 27 25 27 24 17 16 25
+          26 19 18 27 26 25 24 27 18 24 16 26
+          19 25 17 27 16 27 26 17 18 25 24 19
+          28 29 20 28 26 28 21 29 27 29 28 21
+          20 29 28 27 26 29 20 26 18 28 21 27
+          19 29 18 29 28 19 20 27 26 21 30 31
+          22 30 28 30 23 31 29 31 30 23 22 31
+          30 29 28 31 22 28 20 30 23 29 21 31
+          20 31 30 21 22 29 28 23 1 32 3 33
+          5 34 7 35 32 34 33 35 32 33 34 35
+          5 32 1 34 7 33 3 35 3 32 1 33
+          7 34 5 35 33 34 32 35 1 35 7 32
+          3 34 5 33 9 36 11 37 36 37 33 36
+          35 37 11 36 9 37 9 33 3 36 11 35
+          7 37 36 35 33 37 3 37 11 33 9 35
+          7 36 13 38 15 39 38 39 36 38 37 39
+          15 38 13 39 13 36 9 38 15 37 11 39
+          38 37 36 39 9 39 15 36 13 37 11 38
+          17 40 19 41 34 40 35 41 40 41 17 34
+          5 40 19 35 7 41 19 40 17 41 35 40
+          34 41 5 41 19 34 7 40 17 35 21 42
+          37 42 41 42 21 37 11 42 21 41 19 42
+          37 41 35 42 7 42 21 35 11 41 19 37
+          23 43 39 43 42 43 23 39 15 43 23 42
+          21 43 39 42 37 43 11 43 23 37 15 42
+          21 39 25 44 27 45 40 44 41 45 44 45
+          25 40 17 44 27 41 19 45 27 44 25 45
+          41 44 40 45 17 45 27 40 19 44 25 41
+          29 46 42 46 45 46 29 42 21 46 29 45
+          27 46 42 45 41 46 19 46 29 41 21 45
+          27 42 31 47 43 47 46 47 31 43 23 47
+          31 46 29 47 43 46 42 47 21 47 31 42
+          23 46 29 43 32 48 33 49 34 50 35 51
+          48 50 49 51 48 49 50 51 34 48 32 50
+          35 49 33 51 33 48 32 49 35 50 34 51
+          49 50 48 51 32 51 35 48 33 50 34 49
+          36 52 37 53 52 53 49 52 51 53 37 52
+          36 53 36 49 33 52 37 51 35 53 52 51
+          49 53 33 53 37 49 36 51 35 52 38 54
+          39 55 54 55 52 54 53 55 39 54 38 55
+          38 52 36 54 39 53 37 55 54 53 52 55
+          36 55 39 52 38 53 37 54 40 56 41 57
+          50 56 51 57 56 57 40 50 34 56 41 51
+          35 57 41 56 40 57 51 56 50 57 34 57
+          41 50 35 56 40 51 42 58 53 58 57 58
+          42 53 37 58 42 57 41 58 53 57 51 58
+          35 58 42 51 37 57 41 53 43 59 55 59
+          58 59 43 55 39 59 43 58 42 59 55 58
+          53 59 37 59 43 53 39 58 42 55 44 60
+          45 61 56 60 57 61 60 61 44 56 40 60
+          45 57 41 61 45 60 44 61 57 60 56 61
+          40 61 45 56 41 60 44 57 46 62 58 62
+          61 62 46 58 42 62 46 61 45 62 58 61
+          57 62 41 62 46 57 42 61 45 58 47 63
+          59 63 62 63 47 59 43 63 47 62 46 63
+          59 62 58 63 42 63 47 58 43 62 46 59
+        </DataArray>
+        <DataArray type="Int32" Name="offsets" NumberOfComponents="1" format="ascii">
+          2 4 6 8 10 12 14 16 18 20 22 24
+          26 28 30 32 34 36 38 40 42 44 46 48
+          50 52 54 56 58 60 62 64 66 68 70 72
+          74 76 78 80 82 84 86 88 90 92 94 96
+          98 100 102 104 106 108 110 112 114 116 118 120
+          122 124 126 128 130 132 134 136 138 140 142 144
+          146 148 150 152 154 156 158 160 162 164 166 168
+          170 172 174 176 178 180 182 184 186 188 190 192
+          194 196 198 200 202 204 206 208 210 212 214 216
+          218 220 222 224 226 228 230 232 234 236 238 240
+          242 244 246 248 250 252 254 256 258 260 262 264
+          266 268 270 272 274 276 278 280 282 284 286 288
+          290 292 294 296 298 300 302 304 306 308 310 312
+          314 316 318 320 322 324 326 328 330 332 334 336
+          338 340 342 344 346 348 350 352 354 356 358 360
+          362 364 366 368 370 372 374 376 378 380 382 384
+          386 388 390 392 394 396 398 400 402 404 406 408
+          410 412 414 416 418 420 422 424 426 428 430 432
+          434 436 438 440 442 444 446 448 450 452 454 456
+          458 460 462 464 466 468 470 472 474 476 478 480
+          482 484 486 488 490 492 494 496 498 500 502 504
+          506 508 510 512 514 516 518 520 522 524 526 528
+          530 532 534 536 538 540 542 544 546 548 550 552
+          554 556 558 560 562 564 566 568 570 572 574 576
+          578 580 582 584 586 588 590 592 594 596 598 600
+          602 604 606 608 610 612 614 616 618 620 622 624
+          626 628 630 632 634 636 638 640 642 644 646 648
+          650 652 654 656 658 660 662 664 666 668 670 672
+          674 676 678 680 682 684 686 688 690 692 694 696
+          698 700 702 704 706 708 710 712 714 716 718 720
+          722 724 726 728 730 732 734 736 738 740 742 744
+          746 748 750 752 754 756 758 760 762 764 766 768
+          770 772 774 776 778 780 782 784 786 788 790 792
+          794 796 798 800 802 804 806 808 810 812 814 816
+          818 820 822 824 826 828 830 832 834 836 838 840
+          842 844 846 848 850 852 854 856 858 860 862 864
+          866 868 870 872 874 876 878 880 882 884 886 888
+          890 892 894 896 898 900 902 904 906 908 910 912
+          914 916 918 920 922 924 926 928 930 932 934 936
+        </DataArray>
+      </Lines>
+    </Piece>
+  </PolyData>
+</VTKFile>
diff --git a/test/references/test_pnm_solid_energy_transient-reference.vtp b/test/references/test_pnm_solid_energy_transient-reference.vtp
new file mode 100644
index 0000000000..8dc55745e2
--- /dev/null
+++ b/test/references/test_pnm_solid_energy_transient-reference.vtp
@@ -0,0 +1,350 @@
+<?xml version="1.0"?>
+<VTKFile type="PolyData" version="0.1" byte_order="LittleEndian">
+  <PolyData>
+    <Piece NumberOfLines="468" NumberOfPoints="64">
+      <PointData Scalars="poreInscribedRadius">
+        <DataArray type="Float32" Name="poreInscribedRadius" NumberOfComponents="1" format="ascii">
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05 2e-05
+          2e-05 2e-05 2e-05 2e-05
+        </DataArray>
+        <DataArray type="Float32" Name="T" NumberOfComponents="1" format="ascii">
+          400 400 366.667 366.667 400 400 366.667 366.667 333.333 333.333 333.333 333.333
+          300 300 300 300 400 400 366.667 366.667 333.333 333.333 300 300
+          400 400 366.667 366.667 333.333 333.333 300 300 400 366.667 400 366.667
+          333.333 333.333 300 300 400 366.667 333.333 300 400 366.667 333.333 300
+          400 366.667 400 366.667 333.333 333.333 300 300 400 366.667 333.333 300
+          400 366.667 333.333 300
+        </DataArray>
+        <DataArray type="Float32" Name="coordinationNumber" NumberOfComponents="1" format="ascii">
+          7 11 11 17 11 17 17 26 11 17 17 26
+          7 11 11 17 11 17 17 26 17 26 11 17
+          7 11 11 17 11 17 7 11 11 17 17 26
+          17 26 11 17 17 26 26 17 11 17 17 11
+          7 11 11 17 11 17 7 11 11 17 17 11
+          7 11 11 7
+        </DataArray>
+        <DataArray type="Float32" Name="poreLabel" NumberOfComponents="1" format="ascii">
+          5 5 0 0 5 5 0 -1 0 0 0 -1
+          6 6 6 6 5 5 0 -1 0 -1 6 6
+          5 5 0 0 0 0 6 6 5 0 5 -1
+          0 -1 6 6 5 -1 -1 6 5 0 0 6
+          5 0 5 0 0 0 6 6 5 0 0 6
+          5 0 0 6
+        </DataArray>
+      </PointData>
+      <CellData Scalars="process rank">
+        <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 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 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
+          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 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="throatLabel" NumberOfComponents="1" format="ascii">
+          5 0 5 0 5 0 5 5 5 0 5 5
+          5 5 0 0 5 5 5 5 5 5 5 5
+          5 5 5 5 0 0 0 0 0 0 0 -1
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 6 6 6 6 6 6 6 6 6 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+          5 0 5 0 5 5 -1 5 5 5 0 0
+          5 5 5 5 5 5 5 5 5 5 0 0
+          0 -1 -1 0 0 0 0 0 0 -1 -1 0
+          0 0 0 6 6 6 6 6 6 6 6 6
+          6 6 6 6 6 6 6 6 5 0 5 0
+          5 5 0 5 5 5 0 0 5 5 5 5
+          5 5 5 5 5 5 0 0 0 0 0 0
+          0 0 0 0 0 0 0 0 0 0 0 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+          6 6 6 6 5 0 5 -1 5 0 5 5
+          5 5 0 0 5 5 5 5 5 5 5 5
+          5 5 0 -1 0 0 -1 0 0 0 0 -1
+          -1 0 0 0 0 0 0 6 6 6 6 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+          5 -1 5 -1 5 5 5 -1 -1 5 5 5
+          5 5 5 5 5 -1 -1 -1 -1 -1 -1 -1
+          -1 -1 -1 -1 -1 -1 6 6 6 6 6 6
+          6 6 6 6 6 6 6 5 0 5 0 5
+          5 5 0 0 5 5 5 5 5 5 5 5
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 6 6 6 6 6 6 6 6 6 6 6
+          6 6 5 0 5 0 5 0 5 5 5 5
+          0 0 5 5 5 5 5 5 5 5 5 5
+          0 0 0 0 0 0 0 0 0 0 0 0
+          0 0 0 0 0 6 6 6 6 6 6 6
+          6 6 6 6 6 6 6 6 6 6 5 0
+          5 0 5 5 5 0 0 5 5 5 5 5
+          5 5 5 0 0 0 0 0 0 0 0 0
+          0 0 0 0 6 6 6 6 6 6 6 6
+          6 6 6 6 6 5 0 5 0 5 5 5
+          0 0 5 5 5 5 5 5 5 5 0 0
+          0 0 0 0 0 0 0 0 0 0 0 6
+          6 6 6 6 6 6 6 6 6 6 6 6
+        </DataArray>
+        <DataArray type="Float32" Name="throatInscribedRadius" NumberOfComponents="1" format="ascii">
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+          2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06 2e-06
+        </DataArray>
+        <DataArray type="Float32" Name="throatLength" NumberOfComponents="1" format="ascii">
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735
+          0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735
+          0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735
+          0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735
+          0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735
+          0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+          0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333
+          0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735
+          0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405
+          0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333 0.000293333 0.000293333 0.000293333 0.000431405 0.000431405
+          0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333 0.000293333
+          0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735 0.000293333
+          0.000293333 0.000293333 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.000431405 0.00053735 0.00053735 0.00053735 0.00053735
+        </DataArray>
+      </CellData>
+      <Points>
+        <DataArray type="Float32" Name="Coordinates" NumberOfComponents="3" format="ascii">
+          0 0 0 0 0 0.000333333 0.000333333 0 0 0.000333333 0 0.000333333
+          0 0.000333333 0 0 0.000333333 0.000333333 0.000333333 0.000333333 0 0.000333333 0.000333333 0.000333333
+          0.000666667 0 0 0.000666667 0 0.000333333 0.000666667 0.000333333 0 0.000666667 0.000333333 0.000333333
+          0.001 0 0 0.001 0 0.000333333 0.001 0.000333333 0 0.001 0.000333333 0.000333333
+          0 0.000666667 0 0 0.000666667 0.000333333 0.000333333 0.000666667 0 0.000333333 0.000666667 0.000333333
+          0.000666667 0.000666667 0 0.000666667 0.000666667 0.000333333 0.001 0.000666667 0 0.001 0.000666667 0.000333333
+          0 0.001 0 0 0.001 0.000333333 0.000333333 0.001 0 0.000333333 0.001 0.000333333
+          0.000666667 0.001 0 0.000666667 0.001 0.000333333 0.001 0.001 0 0.001 0.001 0.000333333
+          0 0 0.000666667 0.000333333 0 0.000666667 0 0.000333333 0.000666667 0.000333333 0.000333333 0.000666667
+          0.000666667 0 0.000666667 0.000666667 0.000333333 0.000666667 0.001 0 0.000666667 0.001 0.000333333 0.000666667
+          0 0.000666667 0.000666667 0.000333333 0.000666667 0.000666667 0.000666667 0.000666667 0.000666667 0.001 0.000666667 0.000666667
+          0 0.001 0.000666667 0.000333333 0.001 0.000666667 0.000666667 0.001 0.000666667 0.001 0.001 0.000666667
+          0 0 0.001 0.000333333 0 0.001 0 0.000333333 0.001 0.000333333 0.000333333 0.001
+          0.000666667 0 0.001 0.000666667 0.000333333 0.001 0.001 0 0.001 0.001 0.000333333 0.001
+          0 0.000666667 0.001 0.000333333 0.000666667 0.001 0.000666667 0.000666667 0.001 0.001 0.000666667 0.001
+          0 0.001 0.001 0.000333333 0.001 0.001 0.000666667 0.001 0.001 0.001 0.001 0.001
+        </DataArray>
+      </Points>
+      <Lines>
+        <DataArray type="Int32" Name="connectivity" NumberOfComponents="1" format="ascii">
+          0 1 2 3 4 5 6 7 0 4 2 6
+          0 2 4 6 1 5 3 7 1 3 5 7
+          4 1 0 5 6 3 2 7 2 1 0 3
+          6 5 4 7 2 4 0 6 3 5 1 7
+          0 7 6 1 2 5 4 3 8 9 10 11
+          8 10 2 8 6 10 9 11 3 9 7 11
+          10 9 8 11 8 3 2 9 10 7 6 11
+          8 6 2 10 9 7 3 11 2 11 10 3
+          8 7 6 9 12 13 14 15 12 14 8 12
+          10 14 13 15 9 13 11 15 14 13 12 15
+          12 9 8 13 14 11 10 15 12 10 8 14
+          13 11 9 15 8 15 14 9 12 11 10 13
+          16 17 18 19 4 16 6 18 16 18 5 17
+          7 19 17 19 16 5 4 17 18 7 6 19
+          18 17 16 19 6 16 4 18 7 17 5 19
+          4 19 18 5 6 17 16 7 20 21 10 20
+          18 20 11 21 19 21 20 11 10 21 20 19
+          18 21 10 18 6 20 11 19 7 21 6 21
+          20 7 10 19 18 11 22 23 14 22 20 22
+          15 23 21 23 22 15 14 23 22 21 20 23
+          14 20 10 22 15 21 11 23 10 23 22 11
+          14 21 20 15 24 25 26 27 16 24 18 26
+          24 26 17 25 19 27 25 27 24 17 16 25
+          26 19 18 27 26 25 24 27 18 24 16 26
+          19 25 17 27 16 27 26 17 18 25 24 19
+          28 29 20 28 26 28 21 29 27 29 28 21
+          20 29 28 27 26 29 20 26 18 28 21 27
+          19 29 18 29 28 19 20 27 26 21 30 31
+          22 30 28 30 23 31 29 31 30 23 22 31
+          30 29 28 31 22 28 20 30 23 29 21 31
+          20 31 30 21 22 29 28 23 1 32 3 33
+          5 34 7 35 32 34 33 35 32 33 34 35
+          5 32 1 34 7 33 3 35 3 32 1 33
+          7 34 5 35 33 34 32 35 1 35 7 32
+          3 34 5 33 9 36 11 37 36 37 33 36
+          35 37 11 36 9 37 9 33 3 36 11 35
+          7 37 36 35 33 37 3 37 11 33 9 35
+          7 36 13 38 15 39 38 39 36 38 37 39
+          15 38 13 39 13 36 9 38 15 37 11 39
+          38 37 36 39 9 39 15 36 13 37 11 38
+          17 40 19 41 34 40 35 41 40 41 17 34
+          5 40 19 35 7 41 19 40 17 41 35 40
+          34 41 5 41 19 34 7 40 17 35 21 42
+          37 42 41 42 21 37 11 42 21 41 19 42
+          37 41 35 42 7 42 21 35 11 41 19 37
+          23 43 39 43 42 43 23 39 15 43 23 42
+          21 43 39 42 37 43 11 43 23 37 15 42
+          21 39 25 44 27 45 40 44 41 45 44 45
+          25 40 17 44 27 41 19 45 27 44 25 45
+          41 44 40 45 17 45 27 40 19 44 25 41
+          29 46 42 46 45 46 29 42 21 46 29 45
+          27 46 42 45 41 46 19 46 29 41 21 45
+          27 42 31 47 43 47 46 47 31 43 23 47
+          31 46 29 47 43 46 42 47 21 47 31 42
+          23 46 29 43 32 48 33 49 34 50 35 51
+          48 50 49 51 48 49 50 51 34 48 32 50
+          35 49 33 51 33 48 32 49 35 50 34 51
+          49 50 48 51 32 51 35 48 33 50 34 49
+          36 52 37 53 52 53 49 52 51 53 37 52
+          36 53 36 49 33 52 37 51 35 53 52 51
+          49 53 33 53 37 49 36 51 35 52 38 54
+          39 55 54 55 52 54 53 55 39 54 38 55
+          38 52 36 54 39 53 37 55 54 53 52 55
+          36 55 39 52 38 53 37 54 40 56 41 57
+          50 56 51 57 56 57 40 50 34 56 41 51
+          35 57 41 56 40 57 51 56 50 57 34 57
+          41 50 35 56 40 51 42 58 53 58 57 58
+          42 53 37 58 42 57 41 58 53 57 51 58
+          35 58 42 51 37 57 41 53 43 59 55 59
+          58 59 43 55 39 59 43 58 42 59 55 58
+          53 59 37 59 43 53 39 58 42 55 44 60
+          45 61 56 60 57 61 60 61 44 56 40 60
+          45 57 41 61 45 60 44 61 57 60 56 61
+          40 61 45 56 41 60 44 57 46 62 58 62
+          61 62 46 58 42 62 46 61 45 62 58 61
+          57 62 41 62 46 57 42 61 45 58 47 63
+          59 63 62 63 47 59 43 63 47 62 46 63
+          59 62 58 63 42 63 47 58 43 62 46 59
+        </DataArray>
+        <DataArray type="Int32" Name="offsets" NumberOfComponents="1" format="ascii">
+          2 4 6 8 10 12 14 16 18 20 22 24
+          26 28 30 32 34 36 38 40 42 44 46 48
+          50 52 54 56 58 60 62 64 66 68 70 72
+          74 76 78 80 82 84 86 88 90 92 94 96
+          98 100 102 104 106 108 110 112 114 116 118 120
+          122 124 126 128 130 132 134 136 138 140 142 144
+          146 148 150 152 154 156 158 160 162 164 166 168
+          170 172 174 176 178 180 182 184 186 188 190 192
+          194 196 198 200 202 204 206 208 210 212 214 216
+          218 220 222 224 226 228 230 232 234 236 238 240
+          242 244 246 248 250 252 254 256 258 260 262 264
+          266 268 270 272 274 276 278 280 282 284 286 288
+          290 292 294 296 298 300 302 304 306 308 310 312
+          314 316 318 320 322 324 326 328 330 332 334 336
+          338 340 342 344 346 348 350 352 354 356 358 360
+          362 364 366 368 370 372 374 376 378 380 382 384
+          386 388 390 392 394 396 398 400 402 404 406 408
+          410 412 414 416 418 420 422 424 426 428 430 432
+          434 436 438 440 442 444 446 448 450 452 454 456
+          458 460 462 464 466 468 470 472 474 476 478 480
+          482 484 486 488 490 492 494 496 498 500 502 504
+          506 508 510 512 514 516 518 520 522 524 526 528
+          530 532 534 536 538 540 542 544 546 548 550 552
+          554 556 558 560 562 564 566 568 570 572 574 576
+          578 580 582 584 586 588 590 592 594 596 598 600
+          602 604 606 608 610 612 614 616 618 620 622 624
+          626 628 630 632 634 636 638 640 642 644 646 648
+          650 652 654 656 658 660 662 664 666 668 670 672
+          674 676 678 680 682 684 686 688 690 692 694 696
+          698 700 702 704 706 708 710 712 714 716 718 720
+          722 724 726 728 730 732 734 736 738 740 742 744
+          746 748 750 752 754 756 758 760 762 764 766 768
+          770 772 774 776 778 780 782 784 786 788 790 792
+          794 796 798 800 802 804 806 808 810 812 814 816
+          818 820 822 824 826 828 830 832 834 836 838 840
+          842 844 846 848 850 852 854 856 858 860 862 864
+          866 868 870 872 874 876 878 880 882 884 886 888
+          890 892 894 896 898 900 902 904 906 908 910 912
+          914 916 918 920 922 924 926 928 930 932 934 936
+        </DataArray>
+      </Lines>
+    </Piece>
+  </PolyData>
+</VTKFile>
-- 
GitLab