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

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

The implementation basically contains three parts:

- computation of a horzontal diffusion flux (shear stress)
- computation of possible wall-shear stress
- 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:

- no-slip implementation
- 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!