[shallowwater][diffusion] add turbulent diffusion to shallow water

Merged Frank Platzek requested to merge feature/swe-add-diffusion into master

Adding (turbulent) diffusion to the shallow water model (part of freeflow):

The implementation basically contains three parts:

  1. computation of a horzontal diffusion flux (shear stress)
  2. computation of possible wall-shear stress
  3. computation of a turbulent viscosity from a very basic turbulence model (mixing-length based, kept as local as possible)

For now using either a constant eddy-viscosity (turbulence model 0) or a horizontal mixing-length based appraoch (turbulence model 1). Other turbulence models might be added in later. The implementation contains 2 wall shear stress implementations:

  1. no-slip implementation
  2. law-of-the-wall implementation

One test has been added: Poiseuille flow test: for flow in a channel with rough side walls. This test has an analytical solution.

Which issue this MR fixes Fixes #706 (closed)

Special notes for your reviewer: The Poiseuille flow test only tests two of the three added functionalities: the horizontal diffusion and the wall shear stress implementations, with constant eddy viscosity. The turbulence model 1 implementation where the eddy viscosity is computed algebraically based on the local bottom shear stress and velocity gradients is not tested in this test case. A number of test cases was, however, performed to test this. Among others, a test case for the flow around a thin wall. Should this test also be added? Moreover, the present Poiseuille test uses a structured rectangular grid. The same test was also set up and performed on an unstructured triangular grid. Is this test also required? Thank you very much!

Edited by Timo Koch

Merge request reports