@@ -260,7 +260,7 @@ In this case, the chosen formulation will set the given value as the mole fracti
__Task B: Add output__:
In the next step, we want to add some output to the simulation. The standard method for providing simulation output for visualization is via a VtkWriter. These tools take the grid geometries of each domain, as well as the solutions and write spatial output that one can view in visualization tools such as paraview.
In the next step, we want to add some output to the simulation. The standard method for providing simulation output for visualization is via a `VtkWriter`. These tools take the grid geometries of each domain, as well as the solutions and write spatial output that one can view in visualization tools such as paraview.
Although this Vtk output is very useful, some output is more suited for other forms of visualization.
Two examples of data ouput formats are `.csv` files and `.json` files.
...
...
@@ -327,7 +327,7 @@ Now you are able to simulate a complete drying of the porous medium.
Several RANS turbulence models are implemented in DuMu<sup>x</sup>.
This part of the exercise consists of the following steps:
* replacing the Navier-Stokes model by the zero equation turbulence model,
* replacing the Navier-Stokes model by the K-Omega SST turbulence model,
* switching to a symmetry boundary condition,
* applying a grid refinement towards the interface,
* subsequently refining the grid (convergence study).
...
...
@@ -342,46 +342,55 @@ The file `freeflowsubproblem.hh` is your free flow problem file and `properties
For using the compositional zero equation turbulence model, the following header files need to be included
in the time loop (after `// Update dynamic wall properties`).
In addition to designating the locations of walls,
additional boundary conditions and initial conditions need to be set for the two new primary variables $k$ and $\omega$.
In the `boundaryTypes` function, set both variables on all walls to be dirichlet, except for the right boundary, which should have outflow conditions.
For the initial conditions, reynolds number specific base conditions should be applied everywhere.
In the problem constructor, uncomment the code calcualting these terms,
then apply the `turbulentKineticEnergy_`and `dissipation_` variables to their primary variables in all locations,
except for on the wall boundaries, where these values can be set to zero.
In addition, dirichlet constraints for the dissipation or $\omega$ variable will be set for all wall adjacent cells.
This is done in the `isDirichletCell` function, as well as the `dirichlet` function already, and requires no further changes.
Compile and run your new coupled problem and take a look at the results in Paraview.
In addition to the standard variables and parameters, you can now analyze turbulence model specific quantities
...
...
@@ -393,13 +402,13 @@ The result for the turbulent viscosity should look like this:
__Task B__:
Instead of computing the whole cross-section of a channel, you can use symmetric boundary conditions at the top boundary of your free flow domain by replacing all previous boundary conditions with
Instead of computing the whole cross-section of a channel,
you can use symmetric boundary conditions at the top boundary of your free flow domain by replacing all previous boundary conditions at the top with
```c++
values.setAllSymmetry();
```
In addition, you have to remove the condition `onUpperBoundary_(globalPos)` from the `isOnWallAtPos(globalPos)`
and `initialAtPos(globalPos)` method.
In addition, you have to remove the condition `onUpperBoundary_(globalPos)` from the `initialAtPos(globalPos)` method.