diff --git a/test/freeflow/staggered/kovasznaytestproblem.hh b/test/freeflow/staggered/kovasznaytestproblem.hh index 75c07c496166250293f8d7716d89ebbcdd80da8a..9fe0c3f2ccc8e97b13a9eacce82fd38c9b3bc8ff 100644 --- a/test/freeflow/staggered/kovasznaytestproblem.hh +++ b/test/freeflow/staggered/kovasznaytestproblem.hh @@ -31,9 +31,6 @@ #include <dumux/material/fluidsystems/liquidphase.hh> #include <dumux/material/components/constant.hh> - -#include <dumux/linear/amgbackend.hh> - // solve Navier-Stokes equations #define ENABLE_NAVIERSTOKES 1 @@ -299,7 +296,6 @@ public: return values; } - /*! * \brief Adds additional VTK output data to the VTKWriter. Function is called by the output module on every write. */ @@ -307,7 +303,7 @@ public: void addVtkOutputFields(VtkOutputModule& outputModule) const { auto& pressureExact = outputModule.createScalarField("pressureExact", 0); - auto& velocityExact = outputModule.createVectorField("velocityExact", dim); + auto& velocityExact = outputModule.createVectorField("velocityExact", 0); auto& scalarFaceVelocityExact = outputModule.createFaceScalarField("scalarFaceVelocityExact"); auto& vectorFaceVelocityExact = outputModule.createFaceVectorField("vectorFaceVelocityExact"); @@ -318,23 +314,25 @@ public: fvGeometry.bindElement(element); for (auto&& scv : scvs(fvGeometry)) { - auto dofIdxGlobal = scv.dofIndex(); - auto dofPosition = scv.dofPosition(); - pressureExact[dofIdxGlobal] = dirichletAtPos(dofPosition)[pressureIdx]; + auto ccDofIdx = scv.dofIndex(); + auto ccDofPosition = scv.dofPosition(); + auto analyticalSolutionAtCc = dirichletAtPos(ccDofPosition); GlobalPosition velocityVector(0.0); for (auto&& scvf : scvfs(fvGeometry)) { + auto faceDofIdx = scvf.dofIndex(); + auto faceDofPosition = scvf.center(); auto dirIdx = scvf.directionIndex(); - auto analyticalSolution = dirichletAtPos(dofPosition)[faceIdx][dirIdx]; - velocityVector[dirIdx] += 0.5*analyticalSolution; - scalarFaceVelocityExact[dofIdxGlobal] = analyticalSolution; + auto analyticalSolutionAtFace = dirichletAtPos(faceDofPosition); + scalarFaceVelocityExact[faceDofIdx] = analyticalSolutionAtFace[faceIdx][dirIdx]; GlobalPosition tmp(0.0); - tmp[dirIdx] = analyticalSolution; - vectorFaceVelocityExact[dofIdxGlobal] = std::move(tmp); + tmp[dirIdx] = analyticalSolutionAtFace[faceIdx][dirIdx]; + vectorFaceVelocityExact[faceDofIdx] = std::move(tmp); } - velocityExact[dofIdxGlobal] = velocityVector; + pressureExact[ccDofIdx] = analyticalSolutionAtCc[pressureIdx]; + velocityExact[ccDofIdx] = analyticalSolutionAtCc[faceIdx]; } } }