[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!