diff --git a/dumux/discretization/staggered/freeflow/velocityoutput.hh b/dumux/discretization/staggered/freeflow/velocityoutput.hh index dff401d9d872ec09dd35a894d66f468e1839b488..182a656b241ebf3d3d0d8506ddc5c2237dfb5e13 100644 --- a/dumux/discretization/staggered/freeflow/velocityoutput.hh +++ b/dumux/discretization/staggered/freeflow/velocityoutput.hh @@ -28,8 +28,7 @@ #include #include -namespace Dumux -{ +namespace Dumux { /*! * \ingroup StaggeredDiscretization @@ -52,6 +51,8 @@ class StaggeredFreeFlowVelocityOutput using Element = typename GridView::template Codim<0>::Entity; using CoordScalar = typename GridView::ctype; + static constexpr auto fluidSystemPhaseIdx = GET_PROP_TYPE(TypeTag, ModelTraits)::Indices::fluidSystemPhaseIdx; + public: /*! * \brief Constructor initializes the static data with the initial solution. @@ -80,7 +81,7 @@ public: // returns the name of the phase for a given index static std::string phaseName(int phaseIdx) - { return GET_PROP_TYPE(TypeTag, FluidSystem)::phaseName(phaseIdx); } + { return GET_PROP_TYPE(TypeTag, FluidSystem)::phaseName(fluidSystemPhaseIdx); } // returns the number of phase velocities computed by this class static constexpr int numPhaseVelocities() diff --git a/dumux/io/staggeredvtkoutputmodule.hh b/dumux/io/staggeredvtkoutputmodule.hh index cb298c205776a934b875f42ffc647bed7a9da619..2d80d2a467fafb19c966d3e49a1e3b9981b4d4c0 100644 --- a/dumux/io/staggeredvtkoutputmodule.hh +++ b/dumux/io/staggeredvtkoutputmodule.hh @@ -41,13 +41,12 @@ class PointCloudVtkWriter; * Specialization for staggered grids with dofs on faces. * * \tparam TypeTag The TypeTag of the problem implementation - * \tparam phaseIdxOffset Used for single-phase problems to retrieve the right phase name */ -template -class StaggeredVtkOutputModule : public VtkOutputModule +template +class StaggeredVtkOutputModule : public VtkOutputModule { - friend class VtkOutputModule; - using ParentType = VtkOutputModule; + friend class VtkOutputModule; + using ParentType = VtkOutputModule; using Problem = typename GET_PROP_TYPE(TypeTag, Problem); using GridView = typename GET_PROP_TYPE(TypeTag, GridView); using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); diff --git a/dumux/io/vtkoutputmodule.hh b/dumux/io/vtkoutputmodule.hh index dbf58ba2ae8d227a0d93d2d49577040f31fec09c..4c8d67d0088f0dc30715cfd5215df593c03ad159 100644 --- a/dumux/io/vtkoutputmodule.hh +++ b/dumux/io/vtkoutputmodule.hh @@ -53,14 +53,13 @@ namespace Dumux { * \brief A VTK output module to simplify writing dumux simulation data to VTK format * * \tparam TypeTag The TypeTag of the problem implementation - * \tparam phaseIdxOffset Used for single-phase problems to retrieve the right phase name * * Handles the output of scalar and vector fields to VTK formatted file for multiple * variables and timesteps. Certain predefined fields can be registered on * initialization and/or be turned on/off using the designated properties. Additionally * non-standardized scalar and vector fields can be added to the writer manually. */ -template +template class VtkOutputModule { using Problem = typename GET_PROP_TYPE(TypeTag, Problem); @@ -372,7 +371,7 @@ private: { for (int phaseIdx = 0; phaseIdx < numPhaseVelocities; ++phaseIdx) sequenceWriter_.addVertexData( Field(gridGeom_.gridView(), gridGeom_.vertexMapper(), velocity[phaseIdx], - "velocity_" + velocityOutput.phaseName(phaseIdx+phaseIdxOffset) + " (m/s)", + "velocity_" + velocityOutput.phaseName(phaseIdx) + " (m/s)", /*numComp*/dimWorld, /*codim*/dim).get() ); } // cell-centered models @@ -380,7 +379,7 @@ private: { for (int phaseIdx = 0; phaseIdx < numPhaseVelocities; ++phaseIdx) sequenceWriter_.addCellData( Field(gridGeom_.gridView(), gridGeom_.elementMapper(), velocity[phaseIdx], - "velocity_" + velocityOutput.phaseName(phaseIdx+phaseIdxOffset) + " (m/s)", + "velocity_" + velocityOutput.phaseName(phaseIdx) + " (m/s)", /*numComp*/dimWorld, /*codim*/0).get() ); } } @@ -540,14 +539,14 @@ private: if (dim > 1) for (int phaseIdx = 0; phaseIdx < numPhaseVelocities; ++phaseIdx) sequenceWriter_.addVertexData( Field(gridGeom_.gridView(), gridGeom_.vertexMapper(), velocity[phaseIdx], - "velocity_" + velocityOutput.phaseName(phaseIdx+phaseIdxOffset) + " (m/s)", + "velocity_" + velocityOutput.phaseName(phaseIdx) + " (m/s)", /*numComp*/dimWorld, /*codim*/dim).get() ); // cell-wise velocities else for (int phaseIdx = 0; phaseIdx < numPhaseVelocities; ++phaseIdx) sequenceWriter_.addCellData( Field(gridGeom_.gridView(), gridGeom_.elementMapper(), velocity[phaseIdx], - "velocity_" + velocityOutput.phaseName(phaseIdx+phaseIdxOffset) + " (m/s)", + "velocity_" + velocityOutput.phaseName(phaseIdx) + " (m/s)", /*numComp*/dimWorld, /*codim*/0).get() ); } diff --git a/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh b/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh index 5ecfba6a63a3757b08b451f2577c6822405bdc9c..8f9db0103585e44e8854a16e5339096a3726f532 100644 --- a/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh +++ b/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh @@ -51,10 +51,10 @@ namespace Dumux { * initialization and/or be turned on/off using the designated properties. Additionally * non-standardized scalar and vector fields can be added to the writer manually. */ -template -class BoxDfmVtkOutputModule : public VtkOutputModule +template +class BoxDfmVtkOutputModule : public VtkOutputModule { - using ParentType = VtkOutputModule; + using ParentType = VtkOutputModule; using Problem = typename GET_PROP_TYPE(TypeTag, Problem); using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables); @@ -270,7 +270,7 @@ private: { for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) this->sequenceWriter().addVertexData( Field(gridView, this->fvGridGeometry().vertexMapper(), velocity[phaseIdx], - "velocity_" + std::string(FluidSystem::phaseName(phaseIdx+phaseIdxOffset)) + " (m/s)", + "velocity_" + velocityOutput.phaseName(phaseIdx) + " (m/s)", /*numComp*/dimWorld, /*codim*/dim).get() ); } @@ -455,7 +455,7 @@ private: { for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) this->sequenceWriter().addVertexData( Field(gridView, this->fvGridGeometry().vertexMapper(), velocity[phaseIdx], - "velocity_" + std::string(FluidSystem::phaseName(phaseIdx+phaseIdxOffset)) + " (m/s)", + "velocity_" + velocityOutput.phaseName(phaseIdx) + " (m/s)", /*numComp*/dimWorld, /*codim*/dim).get() ); } diff --git a/dumux/porousmediumflow/velocityoutput.hh b/dumux/porousmediumflow/velocityoutput.hh index e379269144393755a742d7dc3efef1a18a8369ba..79e168dfd4b7afc3fc5cce459c91bf76ad37b454 100644 --- a/dumux/porousmediumflow/velocityoutput.hh +++ b/dumux/porousmediumflow/velocityoutput.hh @@ -30,11 +30,25 @@ #include #include +#include #include #include namespace Dumux { +namespace Detail { + +//! helper struct detecting if an Indices class contains a fluidSystemPhaseIdx +struct hasFluidSystemPhaseIdx +{ + template + auto operator()(Indices&&) + -> decltype(Indices::fluidSystemPhaseIdx) + {} +}; + +} // end namespace Detail + /*! * \brief Velocity output for implicit (porous media) models */ @@ -52,6 +66,7 @@ class PorousMediumFlowVelocityOutput using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables); using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); using GridView = typename GET_PROP_TYPE(TypeTag, GridView); + using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables); @@ -106,7 +121,12 @@ public: //! returns whether or not velocity output is enabled bool enableOutput() { return velocityOutput_; } + //! returns the name of the phase for a given index for models that use a fluidsystem phase index (e.g. 1pnc) + template = 0> + static std::string phaseName(int phaseIdx) { return FluidSystem::phaseName(Indices::fluidSystemPhaseIdx); } + //! returns the name of the phase for a given index + template = 0> static std::string phaseName(int phaseIdx) { return FluidSystem::phaseName(phaseIdx); } //! returns the number of phase velocities computed by this class diff --git a/test/freeflow/navierstokes/test_angeli.cc b/test/freeflow/navierstokes/test_angeli.cc index 707536c3c401477a704222984ce6c156e1e490a5..aa06e0a4b2592b055f78135733e6bf87d939fd59 100644 --- a/test/freeflow/navierstokes/test_angeli.cc +++ b/test/freeflow/navierstokes/test_angeli.cc @@ -154,7 +154,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getAnalyticalPressureSolution(), "pressureExact"); vtkWriter.addField(problem->getAnalyticalVelocitySolution(), "velocityExact"); diff --git a/test/freeflow/navierstokes/test_channel.cc b/test/freeflow/navierstokes/test_channel.cc index 632c9cdc5310b763a3da04abbe2a73e6ddd12c78..3b03f48c6564e45c2296960f8327ce8ad3b11ac3 100644 --- a/test/freeflow/navierstokes/test_channel.cc +++ b/test/freeflow/navierstokes/test_channel.cc @@ -155,7 +155,7 @@ int main(int argc, char** argv) try // initialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.write(0.0); diff --git a/test/freeflow/navierstokes/test_closedsystem.cc b/test/freeflow/navierstokes/test_closedsystem.cc index a29b3bb4765535292028f5966d4872ed2fa35ae8..c0153d6cfbaa7bd7bc9f3955bd94c6fdf2b4514f 100644 --- a/test/freeflow/navierstokes/test_closedsystem.cc +++ b/test/freeflow/navierstokes/test_closedsystem.cc @@ -148,7 +148,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.write(0.0); diff --git a/test/freeflow/navierstokes/test_donea.cc b/test/freeflow/navierstokes/test_donea.cc index fd12e846ded774096a7cd3bbf6ecde3cac963529..bd5a1503a58960bf3aecde09f1cd707466faaacd 100644 --- a/test/freeflow/navierstokes/test_donea.cc +++ b/test/freeflow/navierstokes/test_donea.cc @@ -138,7 +138,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getAnalyticalPressureSolution(), "pressureExact"); vtkWriter.addField(problem->getAnalyticalVelocitySolution(), "velocityExact"); diff --git a/test/freeflow/navierstokes/test_kovasznay.cc b/test/freeflow/navierstokes/test_kovasznay.cc index 4fe0635e9b82fbe9dd9987eae39c0c32990f622f..bf9980e48e8fa46495206387447950fbcfde74d4 100644 --- a/test/freeflow/navierstokes/test_kovasznay.cc +++ b/test/freeflow/navierstokes/test_kovasznay.cc @@ -135,7 +135,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getAnalyticalPressureSolution(), "pressureExact"); vtkWriter.addField(problem->getAnalyticalVelocitySolution(), "velocityExact"); diff --git a/test/freeflow/navierstokes/test_navierstokes_1d.cc b/test/freeflow/navierstokes/test_navierstokes_1d.cc index 91edf0498ffbccad51d6a875876aff0f5c70f2b2..934f1dc3c32c82ea0a3e754bd6043d47d0625326 100644 --- a/test/freeflow/navierstokes/test_navierstokes_1d.cc +++ b/test/freeflow/navierstokes/test_navierstokes_1d.cc @@ -124,7 +124,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getAnalyticalPressureSolution(), "pressureExact"); vtkWriter.addField(problem->getAnalyticalVelocitySolution(), "velocityExact"); diff --git a/test/freeflow/navierstokesnc/test_channel.cc b/test/freeflow/navierstokesnc/test_channel.cc index 066444114b30b2f2c522f9fb6a3349d62446ff9d..a4f7922670429b37486cc411504385f251c129a1 100644 --- a/test/freeflow/navierstokesnc/test_channel.cc +++ b/test/freeflow/navierstokesnc/test_channel.cc @@ -153,7 +153,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getDeltaP(), "deltaP"); vtkWriter.write(0.0); diff --git a/test/freeflow/navierstokesnc/test_densitydrivenflow.cc b/test/freeflow/navierstokesnc/test_densitydrivenflow.cc index 25fd54d6f6173c2feb0e229b8b0a37154c8d6883..13c14249e57c69f5ef5cdf64e2f44b7cef870c2c 100644 --- a/test/freeflow/navierstokesnc/test_densitydrivenflow.cc +++ b/test/freeflow/navierstokesnc/test_densitydrivenflow.cc @@ -152,7 +152,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getDeltaRho(), "deltaRho"); vtkWriter.write(0.0); diff --git a/test/freeflow/navierstokesnc/test_msfreeflow.cc b/test/freeflow/navierstokesnc/test_msfreeflow.cc index d19b6e6960d66c0b30572e9104256c068decd14a..77c7f83a9c30030c6f52bf19be93b5e041b78c7f 100644 --- a/test/freeflow/navierstokesnc/test_msfreeflow.cc +++ b/test/freeflow/navierstokesnc/test_msfreeflow.cc @@ -152,7 +152,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //! Add model specific output fields vtkWriter.write(0.0); diff --git a/test/freeflow/rans/test_pipe_laufer.cc b/test/freeflow/rans/test_pipe_laufer.cc index 68daca9b0aca27f1ade927bec62a1af4237f5787..4aa23e65ea1577280bf1817fbab638b0b70cca1d 100644 --- a/test/freeflow/rans/test_pipe_laufer.cc +++ b/test/freeflow/rans/test_pipe_laufer.cc @@ -148,7 +148,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.write(0.0); diff --git a/test/freeflow/ransnc/test_flatplate.cc b/test/freeflow/ransnc/test_flatplate.cc index 2767ea5126481b716f900684206053fca418bcbe..0f426e96fb7d852a60bf6a261bd1fb47c687a465 100644 --- a/test/freeflow/ransnc/test_flatplate.cc +++ b/test/freeflow/ransnc/test_flatplate.cc @@ -144,7 +144,7 @@ int main(int argc, char** argv) try // intialize the vtk output module using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); - StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + StaggeredVtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.write(0.0); diff --git a/test/porousmediumflow/1pnc/implicit/test_1p2c_fv.cc b/test/porousmediumflow/1pnc/implicit/test_1p2c_fv.cc index 86133ee13d6ea3cf46a160c0f156baf15f4039e5..89b1ad24fd1e59dbacb6fd2b4c206c1346b3d2ba 100644 --- a/test/porousmediumflow/1pnc/implicit/test_1p2c_fv.cc +++ b/test/porousmediumflow/1pnc/implicit/test_1p2c_fv.cc @@ -110,7 +110,7 @@ int main(int argc, char** argv) try auto maxDt = getParam("TimeLoop.MaxTimeStepSize"); // intialize the vtk output module - VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.write(0.0); diff --git a/test/porousmediumflow/1pnc/implicit/test_1p2cni_conduction_fv.cc b/test/porousmediumflow/1pnc/implicit/test_1p2cni_conduction_fv.cc index f61f996cc770a3f09b52bfc78af7b6da0ffd5cd0..52bf9985fedd9652bcd66fd185d2d3581012407b 100644 --- a/test/porousmediumflow/1pnc/implicit/test_1p2cni_conduction_fv.cc +++ b/test/porousmediumflow/1pnc/implicit/test_1p2cni_conduction_fv.cc @@ -110,7 +110,7 @@ int main(int argc, char** argv) try auto maxDt = getParam("TimeLoop.MaxTimeStepSize"); // intialize the vtk output module - VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getExactTemperature(), "temperatureExact"); diff --git a/test/porousmediumflow/1pnc/implicit/test_1p2cni_convection_fv.cc b/test/porousmediumflow/1pnc/implicit/test_1p2cni_convection_fv.cc index 1a555df69cff3ad1f2b8d70860e3ecf3ca3ef261..418edee9af223d02821644a78bb7177270b87dfb 100644 --- a/test/porousmediumflow/1pnc/implicit/test_1p2cni_convection_fv.cc +++ b/test/porousmediumflow/1pnc/implicit/test_1p2cni_convection_fv.cc @@ -110,7 +110,7 @@ int main(int argc, char** argv) try auto maxDt = getParam("TimeLoop.MaxTimeStepSize"); // intialize the vtk output module - VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); VtkOutputFields::init(vtkWriter); //!< Add model specific output fields vtkWriter.addField(problem->getExactTemperature(), "temperatureExact"); diff --git a/test/porousmediumflow/1pncmin/implicit/test_1pncminni_fv.cc b/test/porousmediumflow/1pncmin/implicit/test_1pncminni_fv.cc index 12a429b089c7188832b8067b3d2c1322927e7aba..2f09fdd81f979760ce9328fb52b88e4c5944111f 100644 --- a/test/porousmediumflow/1pncmin/implicit/test_1pncminni_fv.cc +++ b/test/porousmediumflow/1pncmin/implicit/test_1pncminni_fv.cc @@ -136,7 +136,7 @@ int main(int argc, char** argv) try auto maxDt = getParam("TimeLoop.MaxTimeStepSize"); // intialize the vtk output module - VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); + VtkOutputModule vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name()); using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields); VtkOutputFields::init(vtkWriter);