diff --git a/dumux/flux/shallowwater/riemannproblem.hh b/dumux/flux/shallowwater/riemannproblem.hh index 8cd66120757eb7844dcbb8b99184daa9425a6d0b..641ce626f8d67f19c64eae6a148ff8f4b7d7c1a4 100644 --- a/dumux/flux/shallowwater/riemannproblem.hh +++ b/dumux/flux/shallowwater/riemannproblem.hh @@ -19,7 +19,7 @@ /*! * \file * \ingroup ShallowWaterFlux - * \brief This file includes a function to construct the Riemann problem + * \brief This file includes a function to construct the Riemann problem. * */ #ifndef DUMUX_FLUX_SHALLOW_WATER_RIEMANN_PROBLEM_HH @@ -34,7 +34,7 @@ namespace ShallowWater { /*! * \ingroup ShallowWaterFlux - * \brief Construct a Riemann problem and solve it + * \brief Construct a Riemann problem and solve it. * * * Riemann problem applies the hydrostatic reconstruction, uses the diff --git a/dumux/flux/shallowwaterflux.hh b/dumux/flux/shallowwaterflux.hh index e1e89fd968dd7b0db1f53f4abaaef6cc12d7a5c7..d51cd55739e39ef97bf8a8257406023e067ac2c0 100644 --- a/dumux/flux/shallowwaterflux.hh +++ b/dumux/flux/shallowwaterflux.hh @@ -31,7 +31,18 @@ namespace Dumux { /*! * \ingroup Flux - * \brief Computes the shallow water flux by solving a riemann problem. + * \brief Prepare and compute the shallow water advective flux. + * + * Prepares the Riemann problem for the advective flux for the 2D shallow + * water model. The actual model uses an exact Riemann solver after Torro + * and the reconstruction after Audusse. A flux limiter is + * applied to limit water flow for small water depths. + * + * The computed water flux of the Riemann solver is given in m^2/s, the + * momentum fluxes are given in m^3/s^2. The Riemann flux is multiplied by + * scvf.area() (given in m) to obtain the flux over the face. + * + * \todo Add more numerical fluxes and reconstruction methods. */ template class ShallowWaterFlux @@ -44,17 +55,8 @@ public: /*! * \ingroup Flux - * \brief Prepares the Riemann problem for the advective flux for - * the 2D shallow water model. The actual model uses an - * exact Riemann solver after Torro and the reconstruction - * after Audusse and a flux limiter for small water depths. + * \brief Prepares and compute the shallow water advective flux. * - * The computed water flux of the Riemann solver is given - * in m^2/s, the momentum fluxes are given in m^3/s^2. The - * Riemann flux is multiplied by scvf.area() (given in m - * for a 2D domain) to get the flux over the face. - * - * \todo The choice of the Riemann solver should be more flexible */ template static NumEqVector flux(const Problem& problem, diff --git a/dumux/flux/shallowwaterviscousflux.hh b/dumux/flux/shallowwaterviscousflux.hh old mode 100644 new mode 100755 index b47aa550f1072b42e0f2d19bd33d76453eb377b9..f5fdf0d5b199701561b8e96122f3dcad44247d31 --- a/dumux/flux/shallowwaterviscousflux.hh +++ b/dumux/flux/shallowwaterviscousflux.hh @@ -53,9 +53,22 @@ static constexpr bool implementsFrictionLaw() /*! * \ingroup Flux - * \brief Computes the shallow water viscous momentum flux due to (turbulent) viscosity - * by adding all surrounding shear stresses. - * For now implemented strictly for 2D depth-averaged models (i.e. 3 equations) + * \brief Compute the shallow water viscous momentum flux due to (turbulent) viscosity. + * + * The viscous momentum flux + * \f[ + * \int \int_{V} \mathbf{\nabla} \cdot \nu_t h \mathbf{\nabla} \mathbf{u} dV + * \f] + * is re-written using Gauss' divergence theorem to: + * \f[ + * \int_{S_f} \nu_t h \mathbf{\nabla} \mathbf{u} \cdot \mathbf{n_f} dS + * \f] + * + * The turbulent viscosity \f$\nu_t \f$ is calculated by adding a vertical (Elder-like) + * and a horizontal (Smagorinsky-like) part. + * + * For now the calculation of the shallow water viscous momentum flux is implemented + * strictly for 2D depth-averaged models (i.e. 3 equations). */ template = 0> class ShallowWaterViscousFlux @@ -69,15 +82,6 @@ public: * \ingroup Flux * \brief Compute the viscous momentum flux contribution from the interface * shear stress - * - * The viscous momentum flux - * \f[ - * \int \int_{V} \mathbf{\nabla} \cdot \nu_t h \mathbf{\nabla} \mathbf{u} dV - * \f] - * is re-written using Gauss' divergence theorem to: - * \f[ - * \int_{S_f} \nu_t h \mathbf{\nabla} \mathbf{u} \cdot \mathbf{n_f} dS - * \f] */ template static NumEqVector flux(const Problem& problem, @@ -187,7 +191,7 @@ public: * and the magnitude of the stress (rate-of-strain) tensor: * * \f[ - * nu_t^h = (c^h h)^2 \sqrt{ 2\left(\frac{\partial u}{\partial x}\right)^2 + \left(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\right)^2 + 2\left(\frac{\partial v}{\partial y}\right)^2 } + * \nu_t^h = (c^h h)^2 \sqrt{ 2\left(\frac{\partial u}{\partial x}\right)^2 + \left(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\right)^2 + 2\left(\frac{\partial v}{\partial y}\right)^2 } * \f] * * However, based on the velocity vectors in the direct neighbours of the volume face, it is not possible to compute all components of the stress tensor. @@ -202,7 +206,7 @@ public: * In other words, the present approximation of the horizontal contribution to the turbulent viscosity reduces to: * * \f[ - * nu_t^h = (c^h h)^2 \sqrt{ 2\left(\frac{\partial u}{\partial n}\right)^2 + 2\left(\frac{\partial v}{\partial n}\right)^2 } + * \nu_t^h = (c^h h)^2 \sqrt{ 2\left(\frac{\partial u}{\partial n}\right)^2 + 2\left(\frac{\partial v}{\partial n}\right)^2 } * \f] * It should be noted that this simplified approach is formally inconsistent and will result in a turbulent viscosity that is dependent on the grid (orientation).