From 6c6eb164650f63b2e034d578fd2649eb4fed887e Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Fri, 11 Oct 2024 12:17:08 +0000 Subject: [PATCH] build based on 9f05124 --- dev/.documenter-siteinfo.json | 2 +- dev/index.html | 118 ++++++++++++++++------------------ dev/search_index.js | 2 +- 3 files changed, 58 insertions(+), 64 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index c9471e1..3702966 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.0","generation_timestamp":"2024-10-10T12:10:11","documenter_version":"1.7.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.0","generation_timestamp":"2024-10-11T12:17:04","documenter_version":"1.7.0"}} \ No newline at end of file diff --git a/dev/index.html b/dev/index.html index 773882a..095b77c 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,20 +1,20 @@ -Home · TrixiShallowWater.jl

TrixiShallowWater

Documentation for TrixiShallowWater.

TrixiShallowWater.flux_hll_chen_noelleConstant
flux_hll_chen_noelle = FluxHLL(min_max_speed_chen_noelle)

An instance of Trixi.FluxHLL specific to the shallow water equations that uses the wave speed estimates from min_max_speed_chen_noelle. This HLL flux is guaranteed to have zero numerical mass flux out of a "dry" element, maintain positivity of the water height, and satisfy an entropy inequality.

For complete details see Section 2.4 of the following reference

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI: 10.1137/15M1053074
source
TrixiShallowWater.GrassModelType
GrassModel(; A_g, m_g=3)

Creates a Grass model to compute the sediment discharge q_s as

\[q_s = A_g v^{m_g}\]

with the coefficients A_g and m_g. The constant A_g lies in the interval $[0,1]$ and is a dimensional calibration constant that is usually measured experimental. It expresses the kind of interaction between the fluid and the sediment, the strength of which increases as A_g approaches to 1. The factor m_g lies in the interval $[1, 4]$. Typically, one considers an odd integer value for m_g such that the sediment discharge q_s can be differentiated and the model remains valid for all values of the velocity v.

An overview of different formulations to compute the sediment discharge can be found in:

  • M.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)
    Sediment transport models in Shallow Water equations and numerical approach by high order finite volume methods
    DOI:10.1016/j.compfluid.2007.07.017
source
TrixiShallowWater.IndicatorHennemannGassnerShallowWaterType
IndicatorHennemannGassnerShallowWater(equations::AbstractEquations, basis;
+Home · TrixiShallowWater.jl

TrixiShallowWater

Documentation for TrixiShallowWater.

TrixiShallowWater.flux_hll_chen_noelleConstant
flux_hll_chen_noelle = FluxHLL(min_max_speed_chen_noelle)

An instance of Trixi.FluxHLL specific to the shallow water equations that uses the wave speed estimates from min_max_speed_chen_noelle. This HLL flux is guaranteed to have zero numerical mass flux out of a "dry" element, maintain positivity of the water height, and satisfy an entropy inequality.

For complete details see Section 2.4 of the following reference

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI: 10.1137/15M1053074
source
TrixiShallowWater.GrassModelType
GrassModel(; A_g, m_g=3)

Creates a Grass model to compute the sediment discharge q_s as

\[q_s = A_g v^{m_g}\]

with the coefficients A_g and m_g. The constant A_g lies in the interval $[0,1]$ and is a dimensional calibration constant that is usually measured experimental. It expresses the kind of interaction between the fluid and the sediment, the strength of which increases as A_g approaches to 1. The factor m_g lies in the interval $[1, 4]$. Typically, one considers an odd integer value for m_g such that the sediment discharge q_s can be differentiated and the model remains valid for all values of the velocity v.

An overview of different formulations to compute the sediment discharge can be found in:

  • M.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)
    Sediment transport models in Shallow Water equations and numerical approach by high order finite volume methods
    DOI:10.1016/j.compfluid.2007.07.017
source
TrixiShallowWater.IndicatorHennemannGassnerShallowWaterType
IndicatorHennemannGassnerShallowWater(equations::AbstractEquations, basis;
                                       alpha_max=0.5,
                                       alpha_min=0.001,
                                       alpha_smooth=true,
-                                      variable)

Modified version of the Trixi.IndicatorHennemannGassner indicator used for shock-capturing for shallow water equations. After the element-wise values for the blending factors are computed an additional check is made to see if the element is partially wet. In this case, partially wet elements are set to use the pure finite volume scheme that is guaranteed to be well-balanced for this wet/dry transition state of the flow regime.

See also Trixi.VolumeIntegralShockCapturingHG.

References

  • Hennemann, Gassner (2020) "A provably entropy stable subcell shock capturing approach for high order split form DG" arXiv: 2008.12044
source
TrixiShallowWater.ManningFrictionType
ManningFriction(; n)

Creates a Manning friction model for the bottom friction with Manning coefficient n. The type is used to dispatch on the respective friction law through the shear_stress_coefficient when computing the shear_stress.

source
TrixiShallowWater.PositivityPreservingLimiterShallowWaterType
PositivityPreservingLimiterShallowWater(; variables)

The limiter is specifically designed for the shallow water equations. It is applied to all scalar variables in their given order using the defined threshold_limiter from the equations struct (e.g. in ShallowWaterEquationsWetDry1D) to determine the minimal acceptable values. The order of the variables is important and might have a strong influence on the robustness. The limiter is available for the ShallowWaterEquationsWetDry1D, ShallowWaterEquationsWetDry2D, and ShallowWaterMultiLayerEquations1D.

As opposed to the standard version of the Trixi.PositivityPreservingLimiterZhangShu, nodes with a water height below the threshold_limiter are treated in a special way. To avoid numerical problems caused by velocities close to zero, the velocity is cut off, such that the node can be identified as "dry". The special feature of the ShallowWaterEquationsWetDry used here is that the bottom topography is stored as an additional quantity in the solution vector u. However, the value of the bottom topography should not be changed. That is why, it is not limited.

After the limiting process is applied to all degrees of freedom, for safety reasons, the threshold_limiter is applied again on all the DG nodes in order to avoid water height below. In the case where the cell mean value is below the threshold before applying the limiter, there could still be dry nodes afterwards due to the logic of the limiter.

For the ShallowWaterMultiLayerEquations1D the implementation differs. In this case the positivity limiter is applied layerwise and only the waterheight h is limited within each layer. Furthermore, a velocity desingularization is applied after the limiting to avoid numerical problems near dry states. Details about the desingularization strategy can be found in Section 2.2 of the paper

  • A. Kurganov, G. Petrova (2007) A second-order well-balanced positivity preserving central-upwind scheme for the Saint-Venant system doi: 10.4310/CMS.2007.v5.n1.a6

This fully-discrete positivity-preserving limiter is based on the work of

  • Zhang, Shu (2011) Maximum-principle-satisfying and positivity-preserving high-order schemes for conservation laws: survey and new developments doi: 10.1098/rspa.2011.0153

The specific implementation for the `ShallowWaterMultiLayerEquations1D is based on the work of

  • Y. Xing, X. Zhang (2013) Positivity-preserving well-balanced discontinuous Galerkin methods for the shallow water equations on unstructured triangular meshes doi: 10.1007/s10915-012-9644-4
Experimental code

This is an experimental feature and may change in future releases.

source
TrixiShallowWater.ShallowWaterEquationsWetDry1DType
ShallowWaterEquationsWetDry1D(; gravity, H0 = 0, threshold_limiter = nothing threshold_wet = nothing)

Shallow water equations (SWE) in one space dimension. The equations are given by

\[\begin{aligned} + variable)

Modified version of the Trixi.IndicatorHennemannGassner indicator used for shock-capturing for shallow water equations. After the element-wise values for the blending factors are computed an additional check is made to see if the element is partially wet. In this case, partially wet elements are set to use the pure finite volume scheme that is guaranteed to be well-balanced for this wet/dry transition state of the flow regime.

See also Trixi.VolumeIntegralShockCapturingHG.

References

  • Hennemann, Gassner (2020) "A provably entropy stable subcell shock capturing approach for high order split form DG" arXiv: 2008.12044
source
TrixiShallowWater.ManningFrictionType
ManningFriction(; n)

Creates a Manning friction model for the bottom friction with Manning coefficient n. The type is used to dispatch on the respective friction law through the shear_stress_coefficient when computing the shear_stress.

source
TrixiShallowWater.PositivityPreservingLimiterShallowWaterType
PositivityPreservingLimiterShallowWater(; variables)

The limiter is specifically designed for the shallow water equations. It is applied to all scalar variables in their given order using the defined threshold_limiter from the equations struct (e.g. in ShallowWaterEquationsWetDry1D) to determine the minimal acceptable values. The order of the variables is important and might have a strong influence on the robustness. The limiter is available for the ShallowWaterEquationsWetDry1D, ShallowWaterEquationsWetDry2D, and ShallowWaterMultiLayerEquations1D.

As opposed to the standard version of the Trixi.PositivityPreservingLimiterZhangShu, nodes with a water height below the threshold_limiter are treated in a special way. To avoid numerical problems caused by velocities close to zero, the velocity is cut off, such that the node can be identified as "dry". The special feature of the ShallowWaterEquationsWetDry used here is that the bottom topography is stored as an additional quantity in the solution vector u. However, the value of the bottom topography should not be changed. That is why, it is not limited.

After the limiting process is applied to all degrees of freedom, for safety reasons, the threshold_limiter is applied again on all the DG nodes in order to avoid water height below. In the case where the cell mean value is below the threshold before applying the limiter, there could still be dry nodes afterwards due to the logic of the limiter.

For the ShallowWaterMultiLayerEquations1D the implementation differs. In this case the positivity limiter is applied layerwise and only the waterheight h is limited within each layer. Furthermore, a velocity desingularization is applied after the limiting to avoid numerical problems near dry states. Details about the desingularization strategy can be found in Section 2.2 of the paper

  • A. Kurganov, G. Petrova (2007) A second-order well-balanced positivity preserving central-upwind scheme for the Saint-Venant system doi: 10.4310/CMS.2007.v5.n1.a6

This fully-discrete positivity-preserving limiter is based on the work of

  • Zhang, Shu (2011) Maximum-principle-satisfying and positivity-preserving high-order schemes for conservation laws: survey and new developments doi: 10.1098/rspa.2011.0153

The specific implementation for the `ShallowWaterMultiLayerEquations1D is based on the work of

  • Y. Xing, X. Zhang (2013) Positivity-preserving well-balanced discontinuous Galerkin methods for the shallow water equations on unstructured triangular meshes doi: 10.1007/s10915-012-9644-4
Experimental code

This is an experimental feature and may change in future releases.

source
TrixiShallowWater.ShallowWaterEquationsWetDry1DType
ShallowWaterEquationsWetDry1D(; gravity, H0 = 0, threshold_limiter = nothing threshold_wet = nothing)

Shallow water equations (SWE) in one space dimension. The equations are given by

\[\begin{aligned} \frac{\partial h}{\partial t} + \frac{\partial}{\partial x}(h v) &= 0 \\ \frac{\partial}{\partial t}(h v) + \frac{\partial}{\partial x}\left(h v^2 + \frac{g}{2}h^2\right) + g h \frac{\partial b}{\partial x} &= 0 -\end{aligned}\]

The unknown quantities of the SWE are the water height $h$ and the velocity $v$. The gravitational constant is denoted by g and the (possibly) variable bottom topography function $b(x)$. Conservative variable water height $h$ is measured from the bottom topography $b$, therefore one also defines the total water height as $H = h + b$.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is "wet" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.

In addition to the unknowns, Trixi.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi.jl's visualization tools will visualize the bottom topography by default.

References for the SWE are many but a good introduction is available in Chapter 13 of the book:

source
TrixiShallowWater.ShallowWaterEquationsWetDry2DType
ShallowWaterEquationsWetDry2D(; gravity, H0 = 0, threshold_limiter = nothing, threshold_wet = nothing)

Shallow water equations (SWE) in two space dimensions. The equations are given by

\[\begin{aligned} +\end{aligned}\]

The unknown quantities of the SWE are the water height $h$ and the velocity $v$. The gravitational constant is denoted by g and the (possibly) variable bottom topography function $b(x)$. Conservative variable water height $h$ is measured from the bottom topography $b$, therefore one also defines the total water height as $H = h + b$.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is "wet" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.

In addition to the unknowns, Trixi.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi.jl's visualization tools will visualize the bottom topography by default.

References for the SWE are many but a good introduction is available in Chapter 13 of the book:

source
TrixiShallowWater.ShallowWaterEquationsWetDry2DType
ShallowWaterEquationsWetDry2D(; gravity, H0 = 0, threshold_limiter = nothing, threshold_wet = nothing)

Shallow water equations (SWE) in two space dimensions. The equations are given by

\[\begin{aligned} \frac{\partial h}{\partial t} + \frac{\partial}{\partial x}(h v_1) + \frac{\partial}{\partial y}(h v_2) &= 0 \\ \frac{\partial}{\partial t}(h v_1) + \frac{\partial}{\partial x}\left(h v_1^2 + \frac{g}{2}h^2\right) + \frac{\partial}{\partial y}(h v_1 v_2) + g h \frac{\partial b}{\partial x} &= 0 \\ \frac{\partial}{\partial t}(h v_2) + \frac{\partial}{\partial x}(h v_1 v_2) + \frac{\partial}{\partial y}\left(h v_2^2 + \frac{g}{2}h^2\right) + g h \frac{\partial b}{\partial y} &= 0. -\end{aligned}\]

The unknown quantities of the SWE are the water height $h$ and the velocities $\mathbf{v} = (v_1, v_2)^T$. The gravitational constant is denoted by g and the (possibly) variable bottom topography function $b(x,y)$. Conservative variable water height $h$ is measured from the bottom topography $b$, therefore one also defines the total water height as $H = h + b$.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is "wet" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.

The bottom topography function $b(x,y)$ is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.

In addition to the unknowns, TrixiShallowWater.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi.jl's visualization tools will visualize the bottom topography by default.

References for the SWE are many but a good introduction is available in Chapter 13 of the book:

source
TrixiShallowWater.ShallowWaterExnerEquations1DType
ShallowWaterExnerEquations1D(;gravity_constant, H0 = 0.0,
+\end{aligned}\]

The unknown quantities of the SWE are the water height $h$ and the velocities $\mathbf{v} = (v_1, v_2)^T$. The gravitational constant is denoted by g and the (possibly) variable bottom topography function $b(x,y)$. Conservative variable water height $h$ is measured from the bottom topography $b$, therefore one also defines the total water height as $H = h + b$.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is "wet" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.

The bottom topography function $b(x,y)$ is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.

In addition to the unknowns, TrixiShallowWater.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi.jl's visualization tools will visualize the bottom topography by default.

References for the SWE are many but a good introduction is available in Chapter 13 of the book:

source
TrixiShallowWater.ShallowWaterExnerEquations1DType
ShallowWaterExnerEquations1D(;gravity_constant, H0 = 0.0,
                              friction = ManningFriction(n = 0.0),
                              sediment_model,
                              porosity,
@@ -22,18 +22,18 @@
 \partial_t h + \partial_x hv = 0, \\
 \partial_t hv + \partial_x (hv^2) + gh\partial_x (h + h_b) + g\frac{1}{r}h_s\partial_x (rh + h_b) + \frac{\tau}{\rho_f} = 0,\\
 \partial_t h_b + \partial_x q_s = 0,
-\end{cases}\]

The unknown quantities are the water and sediment height $h$, $h_b$ and the velocity $v$. The sediment discharge $q_s(h, hv)$ is determined by the sediment_model and is used to determine the active sediment height $h_s = q_s / v$. Furthermore $\tau$ denotes the shear stress at the water-sediment interface and is determined by the friction model. The gravitational constant is denoted by $g$, and $\rho_f$ and $\rho_s$ are the fluid and sediment densities, respectively. The density ratio is given by $r = \rho_f / \rho_s$, where $r$ lies between $0 < r < 1$ as the fluid density $\rho_f$ should be smaller than the sediment density $\rho_s$.

The conservative variable water height $h$ is measured from the sediment height $h_b$, therefore one also defines the total water height as $H = h + h_b$.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

The entropy conservative formulation has been derived in the paper:

  • E.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)
    Formal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy
    DOI: 10.1051/m2an/2016018
source
TrixiShallowWater.ShallowWaterMultiLayerEquations1DType
ShallowWaterMultiLayerEquations1D(gravity, H0, rhos)

Multi-Layer Shallow Water equations (MLSWE) in one space dimension. The equations are given by

\[\left\{ +\end{cases}\]

The unknown quantities are the water and sediment height $h$, $h_b$ and the velocity $v$. The sediment discharge $q_s(h, hv)$ is determined by the sediment_model and is used to determine the active sediment height $h_s = q_s / v$. Furthermore $\tau$ denotes the shear stress at the water-sediment interface and is determined by the friction model. The gravitational constant is denoted by $g$, and $\rho_f$ and $\rho_s$ are the fluid and sediment densities, respectively. The density ratio is given by $r = \rho_f / \rho_s$, where $r$ lies between $0 < r < 1$ as the fluid density $\rho_f$ should be smaller than the sediment density $\rho_s$.

The conservative variable water height $h$ is measured from the sediment height $h_b$, therefore one also defines the total water height as $H = h + h_b$.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

The entropy conservative formulation has been derived in the paper:

  • E.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)
    Formal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy
    DOI: 10.1051/m2an/2016018
source
TrixiShallowWater.ShallowWaterMultiLayerEquations1DType
ShallowWaterMultiLayerEquations1D(gravity, H0, rhos)

Multi-Layer Shallow Water equations (MLSWE) in one space dimension. The equations are given by

\[\left\{ \begin{aligned} &\partial_t h_m + \partial_x h_mv_m = 0,\\ &\partial h_mv_m + \partial_x h_mv_m^2 = -gh_m\partial_x \bigg(b + \sum\limits_{k\geq j}h_k + \sum\limits_{k<m}\frac{\rho_k}{\rho_m}h_k \bigg) \end{aligned} -\right.\]

where $m = 1, 2, ..., M$ is the layer index and the unknown variables are the water height $h$ and the velocity $v$. Furthermore, $g$ denotes the gravitational constant, $b(x)$ the bottom topography and $\rho_m$ the m-th layer density, that must be chosen such that $\rho_1 < \rho_2 < ... < \rho_M$, to ensure that different layers are ordered from top to bottom, with increasing density.

We use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)
Introduction to geophyiscal fluid dynamics: physical and numerical aspects
https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C
ISBN: 978-0-12-088759-0

source
TrixiShallowWater.ShallowWaterMultiLayerEquations2DType
ShallowWaterMultiLayerEquations2D(gravity, H0, rhos)

Multi-Layer Shallow Water equations (MLSWE) in two space dimension. The equations are given by

\[\left\{ +\right.\]

where $m = 1, 2, ..., M$ is the layer index and the unknown variables are the water height $h$ and the velocity $v$. Furthermore, $g$ denotes the gravitational constant, $b(x)$ the bottom topography and $\rho_m$ the m-th layer density, that must be chosen such that $\rho_1 < \rho_2 < ... < \rho_M$, to ensure that different layers are ordered from top to bottom, with increasing density.

We use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)
Introduction to geophyiscal fluid dynamics: physical and numerical aspects
https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C
ISBN: 978-0-12-088759-0

source
TrixiShallowWater.ShallowWaterMultiLayerEquations2DType
ShallowWaterMultiLayerEquations2D(gravity, H0, rhos)

Multi-Layer Shallow Water equations (MLSWE) in two space dimension. The equations are given by

\[\left\{ \begin{aligned} &\partial_t h_m + \partial_x h_mv_m = 0,\\ &\partial h_mv1_m + \partial_x h_mv1_m^2 + \partial_y h_mv1_mv2_m = -gh_m\partial_x \bigg(b + \sum\limits_{k\geq j}h_k + \sum\limits_{k<m}\frac{\rho_k}{\rho_m}h_k \bigg) &\partial h_mv2_m + \partial_x h_mv1_mv2_m + \partial_y h_mv2_m^2 = -gh_m\partial_y \bigg(b + \sum\limits_{k\geq j}h_k + \sum\limits_{k<m}\frac{\rho_k}{\rho_m}h_k \bigg) \end{aligned} -\right.\]

where $m = 1, 2, ..., M$ is the layer index and the unknown variables are the water height $h$ and the velocities $v1, v2$ in both spatial dimensions . Furthermore, $g$ denotes the gravitational constant, $b(x)$ the bottom topography and $\rho_m$ the m-th layer density, that must be chosen such that $\rho_1 < \rho_2 < ... < \rho_M$, to ensure that different layers are ordered from top to bottom, with increasing density.

We use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)
Introduction to geophyiscal fluid dynamics: physical and numerical aspects
https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C
ISBN: 978-0-12-088759-0

source
TrixiShallowWater.ShallowWaterTwoLayerEquations1DType
ShallowWaterTwoLayerEquations1D(gravity, H0, rho_upper, rho_lower)

Two-Layer Shallow Water equations (2LSWE) in one space dimension. The equations are given by

\[\begin{alignat*}{4} +\right.\]

where $m = 1, 2, ..., M$ is the layer index and the unknown variables are the water height $h$ and the velocities $v1, v2$ in both spatial dimensions . Furthermore, $g$ denotes the gravitational constant, $b(x)$ the bottom topography and $\rho_m$ the m-th layer density, that must be chosen such that $\rho_1 < \rho_2 < ... < \rho_M$, to ensure that different layers are ordered from top to bottom, with increasing density.

We use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

Also, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define "partially wet" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)
Introduction to geophyiscal fluid dynamics: physical and numerical aspects
https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C
ISBN: 978-0-12-088759-0

source
TrixiShallowWater.ShallowWaterTwoLayerEquations1DType
ShallowWaterTwoLayerEquations1D(gravity, H0, rho_upper, rho_lower)

Two-Layer Shallow Water equations (2LSWE) in one space dimension. The equations are given by

\[\begin{alignat*}{4} &\frac{\partial}{\partial t}h_{upper} &&+ \frac{\partial}{\partial x}\left(h_{upper} v_{1,upper}\right) &&= 0 \\ @@ -46,7 +46,7 @@ &\frac{\partial}{\partial t}\left(h_{lower}v_{1,lower}\right) &&+ \frac{\partial}{\partial x}\left(h_{lower}v_{1,lower}^2 + \dfrac{gh_{lower}^2}{2}\right) &&= -gh_{lower}\frac{\partial}{\partial x}\left(b+\dfrac{\rho_{upper}}{\rho_{lower}}h_{upper}\right). -\end{alignat*}\]

The unknown quantities of the 2LSWE are the water heights of the {lower} layer $h_{lower}$ and the {upper} layer $h_{upper}$ with respective velocities $v_{1,upper}$ and $v_{1,lower}$. The gravitational constant is denoted by g, the layer densitites by $\rho_{upper}$and $\rho_{lower}$ and the (possibly) variable bottom topography function $b(x)$. The conservative variable water height $h_{lower}$ is measured from the bottom topography $b$ and $h_{upper}$ relative to $h_{lower}$, therefore one also defines the total water heights as $H_{upper} = h_{upper} + h_{upper} + b$ and $H_{lower} = h_{lower} + b$.

The densities must be chosen such that $\rho_{upper} < \rho_{lower}$, to make sure that the heavier fluid $\rho_{lower}$ is in the bottom layer and the lighter fluid $\rho_{upper}$ in the {upper} layer.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the 2LSWE is available in Chapter 12 of the book:

source
TrixiShallowWater.ShallowWaterTwoLayerEquations2DType
ShallowWaterTwoLayerEquations2D(gravity, H0, rho_upper, rho_lower)

Two-Layer Shallow water equations (2LSWE) in two space dimension. The equations are given by

\[\begin{alignat*}{8} +\end{alignat*}\]

The unknown quantities of the 2LSWE are the water heights of the {lower} layer $h_{lower}$ and the {upper} layer $h_{upper}$ with respective velocities $v_{1,upper}$ and $v_{1,lower}$. The gravitational constant is denoted by g, the layer densitites by $\rho_{upper}$and $\rho_{lower}$ and the (possibly) variable bottom topography function $b(x)$. The conservative variable water height $h_{lower}$ is measured from the bottom topography $b$ and $h_{upper}$ relative to $h_{lower}$, therefore one also defines the total water heights as $H_{upper} = h_{upper} + h_{upper} + b$ and $H_{lower} = h_{lower} + b$.

The densities must be chosen such that $\rho_{upper} < \rho_{lower}$, to make sure that the heavier fluid $\rho_{lower}$ is in the bottom layer and the lighter fluid $\rho_{upper}$ in the {upper} layer.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the 2LSWE is available in Chapter 12 of the book:

source
TrixiShallowWater.ShallowWaterTwoLayerEquations2DType
ShallowWaterTwoLayerEquations2D(gravity, H0, rho_upper, rho_lower)

Two-Layer Shallow water equations (2LSWE) in two space dimension. The equations are given by

\[\begin{alignat*}{8} &\frac{\partial}{\partial t}h_{upper} &&+ \frac{\partial}{\partial x}\left(h_{upper} v_{1,upper}\right) &&+ \frac{\partial}{\partial y}\left(h_{upper} v_{2,upper}\right) \quad @@ -71,83 +71,77 @@ &&+ \frac{\partial}{\partial x}\left(h_{lower} v_{1,lower} v_{2,lower}\right) &&+ \frac{\partial}{\partial y}\left(h_{lower} v_{2,lower}^2 + \frac{gh_{lower}^2}{2}\right) &&= -gh_{lower}\frac{\partial}{\partial y}\left(b+\frac{\rho_{upper}}{\rho_{lower}} h_{upper}\right) -\end{alignat*}\]

The unknown quantities of the 2LSWE are the water heights of the lower layer $h_{lower}$ and the upper layer $h_{upper}$ and the respective velocities in x-direction $v_{1,lower}$ and $v_{1,upper}$ and in y-direction $v_{2,lower}$ and $v_{2,upper}$. The gravitational constant is denoted by g, the layer densitites by $\rho_{upper}$and $\rho_{lower}$ and the (possibly) variable bottom topography function by $b(x)$. Conservative variable water height $h_{lower}$ is measured from the bottom topography $b$ and $h_{upper}$ relative to $h_{lower}$, therefore one also defines the total water heights as $H_{lower} = h_{lower} + b$ and $H_{upper} = h_{upper} + h_{lower} + b$.

The densities must be chosen such that $\rho_{upper} < \rho_{lower}$, to make sure that the heavier fluid $\rho_{lower}$ is in the bottom layer and the lighter fluid $\rho_{upper}$ in the upper layer.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the 2LSWE is available in Chapter 12 of the book:

source
TrixiShallowWater.ShieldsStressModelType
ShieldsStressModel(; m_1, m_2, m_3, k_1, k_2, k_3, theta_c, d_s)

Create a Shields stress model to compute the sediment discharge q_s based on the generalized formulation from equation (1.2) in the given reference.

The choice of the real constants m_1, m_2, m_3, k_1, k_2, and k_3 creates different models. For example, setting m_1=0, m_2=1.5, m_3=0, k_1=8, k_2=1, and k_3=0 yields the sedimentation model of Meyer-Peter and Müller as given in MeyerPeterMueller below. The Shields stress represents the ratio of agitating and stabilizing forces in the sediment bed where theta_c is the critical Shields stress for incipient motion and d_s is the mean diameter of the sediment grain size.

  • E.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)
    Formal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy
    DOI: 10.1051/m2an/2016018
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,
-                             equations::ShallowWaterEquationsWetDry2D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,
-                             equations::ShallowWaterMultiLayerEquations2D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,
-                             equations::ShallowWaterTwoLayerEquations2D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
-                              equations::ShallowWaterEquationsWetDry1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
-                              equations::ShallowWaterExnerEquations1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001)
    Shock-Capturing Methods for Free-Surface Shallow Flows
    1st edition
    ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
-                             equations::ShallowWaterMultiLayerEquations1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
-                             equations::ShallowWaterTwoLayerEquations1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.flux_fjordholm_etalMethod
flux_fjordholm_etal(u_ll, u_rr, orientation,
-                    equations::ShallowWaterEquationsWetDry1D)

Total energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.

Details are available in Eq. (4.1) in the paper:

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042
source
Trixi.flux_fjordholm_etalMethod
flux_fjordholm_etal(u_ll, u_rr, orientation_or_normal_direction,
-                    equations::ShallowWaterEquationsWetDry2D)

Total energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.

Details are available in Eq. (4.1) in the paper:

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042
source
Trixi.flux_nonconservative_audusse_etalMethod
flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,
-                                  equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.

This hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry1D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.

Further details on the hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.flux_nonconservative_audusse_etalMethod
flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,
+\end{alignat*}\]

The unknown quantities of the 2LSWE are the water heights of the lower layer $h_{lower}$ and the upper layer $h_{upper}$ and the respective velocities in x-direction $v_{1,lower}$ and $v_{1,upper}$ and in y-direction $v_{2,lower}$ and $v_{2,upper}$. The gravitational constant is denoted by g, the layer densitites by $\rho_{upper}$and $\rho_{lower}$ and the (possibly) variable bottom topography function by $b(x)$. Conservative variable water height $h_{lower}$ is measured from the bottom topography $b$ and $h_{upper}$ relative to $h_{lower}$, therefore one also defines the total water heights as $H_{lower} = h_{lower} + b$ and $H_{upper} = h_{upper} + h_{lower} + b$.

The densities must be chosen such that $\rho_{upper} < \rho_{lower}$, to make sure that the heavier fluid $\rho_{lower}$ is in the bottom layer and the lighter fluid $\rho_{upper}$ in the upper layer.

The additional quantity $H_0$ is also available to store a reference value for the total water height that is useful to set initial conditions or test the "lake-at-rest" well-balancedness.

The bottom topography function $b(x)$ is set inside the initial condition routine for a particular problem setup.

In addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height $H$ or the entropy variables. This affects the implementation and use of these equations in various ways:

  • The flux values corresponding to the bottom topography must be zero.
  • The bottom topography values must be included when defining initial conditions, boundary conditions or source terms.
  • Trixi.AnalysisCallback analyzes this variable.
  • Trixi's visualization tools will visualize the bottom topography by default.

A good introduction for the 2LSWE is available in Chapter 12 of the book:

source
TrixiShallowWater.ShieldsStressModelType
ShieldsStressModel(; m_1, m_2, m_3, k_1, k_2, k_3, theta_c, d_s)

Create a Shields stress model to compute the sediment discharge q_s based on the generalized formulation from equation (1.2) in the given reference.

The choice of the real constants m_1, m_2, m_3, k_1, k_2, and k_3 creates different models. For example, setting m_1=0, m_2=1.5, m_3=0, k_1=8, k_2=1, and k_3=0 yields the sedimentation model of Meyer-Peter and Müller as given in MeyerPeterMueller below. The Shields stress represents the ratio of agitating and stabilizing forces in the sediment bed where theta_c is the critical Shields stress for incipient motion and d_s is the mean diameter of the sediment grain size.

  • E.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)
    Formal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy
    DOI: 10.1051/m2an/2016018
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,
+                             equations::ShallowWaterEquationsWetDry2D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,
+                             equations::ShallowWaterMultiLayerEquations2D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,
+                             equations::ShallowWaterTwoLayerEquations2D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
+                              equations::ShallowWaterEquationsWetDry1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
+                              equations::ShallowWaterExnerEquations1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001)
    Shock-Capturing Methods for Free-Surface Shallow Flows
    1st edition
    ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
+                             equations::ShallowWaterMultiLayerEquations1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.boundary_condition_slip_wallMethod
boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,
+                             equations::ShallowWaterTwoLayerEquations1D)

Create a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.

For details see Section 9.2.5 of the book:

  • Eleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662
source
Trixi.flux_fjordholm_etalMethod
flux_fjordholm_etal(u_ll, u_rr, orientation,
+                    equations::ShallowWaterEquationsWetDry1D)

Total energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.

Details are available in Eq. (4.1) in the paper:

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042
source
Trixi.flux_fjordholm_etalMethod
flux_fjordholm_etal(u_ll, u_rr, orientation_or_normal_direction,
+                    equations::ShallowWaterEquationsWetDry2D)

Total energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.

Details are available in Eq. (4.1) in the paper:

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042
source
Trixi.flux_nonconservative_audusse_etalMethod
flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,
+                                  equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.

This hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry1D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.

Further details on the hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.flux_nonconservative_audusse_etalMethod
flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,
                                   equations::ShallowWaterEquationsWetDry2D)
 flux_nonconservative_audusse_etal(u_ll, u_rr,
-                                  normal_direction_ll     ::AbstractVector,
-                                  normal_direction_average::AbstractVector,
-                                  equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.

This hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry2D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.

Further details for the hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.flux_nonconservative_fjordholm_etalMethod
flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,
-                                    equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.

This flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.

Further details for the original finite volume formulation are available in

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042

and for curvilinear 2D case in the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_nonconservative_fjordholm_etalMethod
flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,
+                                  normal_direction::AbstractVector,
+                                  equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.

This hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry2D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.

Further details for the hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.flux_nonconservative_fjordholm_etalMethod
flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,
+                                    equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.

This flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.

Further details for the original finite volume formulation are available in

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042

and for curvilinear 2D case in the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_nonconservative_fjordholm_etalMethod
flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,
                                     equations::ShallowWaterEquationsWetDry2D)
 flux_nonconservative_fjordholm_etal(u_ll, u_rr,
-                                    normal_direction_ll     ::AbstractVector,
-                                    normal_direction_average::AbstractVector,
-                                    equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.

This flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.

Further details for the original finite volume formulation are available in

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042

and for curvilinear 2D case in the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_nonconservative_wintermeyer_etalMethod
flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,
-                                      equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.

Gives entropy conservation and well-balancedness on both the volume and surface when combined with flux_wintermeyer_etal.

Further details are available in the papers:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699
source
Trixi.flux_nonconservative_wintermeyer_etalMethod
flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,
+                                    normal_direction::AbstractVector,
+                                    equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.

This flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.

Further details for the original finite volume formulation are available in

  • Ulrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042

and for curvilinear 2D case in the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_nonconservative_wintermeyer_etalMethod
flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,
+                                      equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.

Gives entropy conservation and well-balancedness on both the volume and surface when combined with flux_wintermeyer_etal.

Further details are available in the papers:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699
source
Trixi.flux_nonconservative_wintermeyer_etalMethod
flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,
                                       equations::ShallowWaterEquationsWetDry2D)
 flux_nonconservative_wintermeyer_etal(u_ll, u_rr,
-                                      normal_direction_ll     ::AbstractVector,
-                                      normal_direction_average::AbstractVector,
-                                      equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.

For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.

Further details are available in the papers:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation,
-                      equations::ShallowWaterEquationsWetDry1D)

Total energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation_or_normal_direction,
-                      equations::ShallowWaterEquationsWetDry2D)

Total energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation,
-                      equations::ShallowWaterTwoLayerEquations1D)

Total energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation,
+                                      normal_direction::AbstractVector,
+                                      equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.

For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.

Further details are available in the papers:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation,
+                      equations::ShallowWaterEquationsWetDry1D)

Total energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation_or_normal_direction,
+                      equations::ShallowWaterEquationsWetDry2D)

Total energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation,
+                      equations::ShallowWaterTwoLayerEquations1D)

Total energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.flux_wintermeyer_etalMethod
flux_wintermeyer_etal(u_ll, u_rr, orientation,
                       equations::ShallowWaterTwoLayerEquations2D)
 flux_wintermeyer_etal(u_ll, u_rr,
                       normal_direction::AbstractVector,
-                      equations::ShallowWaterTwoLayerEquations2D)

Total energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.hydrostatic_reconstruction_audusse_etalMethod
hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation::Integer,
-                                        equations::ShallowWaterEquationsWetDry1D)

A particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.hydrostatic_reconstruction_audusse_etalMethod
hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation_or_normal_direction,
-                                        equations::ShallowWaterEquationsWetDry2D)

A particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details for the hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.initial_condition_weak_blast_waveMethod
initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry1D)

A weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.

source
Trixi.initial_condition_weak_blast_waveMethod
initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry2D)

A weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.

source
Trixi.source_terms_convergence_testMethod
source_terms_convergence_test(u, x, t, equations::ShallowWaterEquationsWetDry2D)

Source terms used for convergence tests in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).

This manufactured solution source term is specifically designed for the bottom topography function b(x,y) = 2 + 0.5 * sin(sqrt(2)*pi*x) + 0.5 * sin(sqrt(2)*pi*y) as defined in initial_condition_convergence_test.

source
Trixi.source_terms_convergence_testMethod
source_terms_convergence_test(u, x, t, equations::ShallowWaterExnerEquations1D{T, S, GrassModel{T}}) where {T, S}

Source terms used for convergence tests in combination with Trixi.initial_condition_convergence_test when using the the GrassModel model.

To use this source term the equations must be set to:

equations = ShallowWaterExnerEquations1D(gravity_constant = 10.0, rho_f = 0.5,
+                      equations::ShallowWaterTwoLayerEquations2D)

Total energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.

Further details are available in Theorem 1 of the paper:

  • Niklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036
source
Trixi.hydrostatic_reconstruction_audusse_etalMethod
hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation::Integer,
+                                        equations::ShallowWaterEquationsWetDry1D)

A particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.hydrostatic_reconstruction_audusse_etalMethod
hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation_or_normal_direction,
+                                        equations::ShallowWaterEquationsWetDry2D)

A particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details for the hydrostatic reconstruction and its motivation can be found in

  • Emmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090
source
Trixi.initial_condition_weak_blast_waveMethod
initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry1D)

A weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.

source
Trixi.initial_condition_weak_blast_waveMethod
initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry2D)

A weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.

source
Trixi.source_terms_convergence_testMethod
source_terms_convergence_test(u, x, t, equations::ShallowWaterEquationsWetDry2D)

Source terms used for convergence tests in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).

This manufactured solution source term is specifically designed for the bottom topography function b(x,y) = 2 + 0.5 * sin(sqrt(2)*pi*x) + 0.5 * sin(sqrt(2)*pi*y) as defined in initial_condition_convergence_test.

source
Trixi.source_terms_convergence_testMethod
source_terms_convergence_test(u, x, t, equations::ShallowWaterExnerEquations1D{T, S, GrassModel{T}}) where {T, S}

Source terms used for convergence tests in combination with Trixi.initial_condition_convergence_test when using the the GrassModel model.

To use this source term the equations must be set to:

equations = ShallowWaterExnerEquations1D(gravity_constant = 10.0, rho_f = 0.5,
                                             rho_s = 1.0, porosity = 0.5,
                                             friction = ManningFriction(n = 0.0),
-                                            sediment_model = GrassModel(A_g = 0.01)
source
Trixi.source_terms_convergence_testMethod
source_terms_convergence_test(u, x, t, equations::ShallowWaterExnerEquations1D{T, S, ShieldsStressModel{T}}) where {T, S}

Source terms used for convergence tests in combination with Trixi.initial_condition_convergence_test when using the MeyerPeterMueller model.

To use this source term the equations must be set to:

equations = ShallowWaterExnerEquations1D(gravity_constant = 10.0, rho_f = 0.5,
                                          rho_s = 1.0, porosity = 0.5,
                                          friction = ManningFriction(n = 0.01),
                                          sediment_model = MeyerPeterMueller(theta_c = 0.0,
-                                                                            d_s = 1e-3))
source
TrixiShallowWater.MeyerPeterMuellerMethod
MeyerPeterMueller(; theta_c, d_s)

Creates a Meyer-Peter-Mueller model to compute the sediment discharge q_s with the critical Shields stress theta_c and the grain diameter d_s.

An overview of different formulations to compute the sediment discharge can be found in:

  • M.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)
    Sediment transport models in Shallow Water equations and numerical approach by high order finite volume methods
    DOI:10.1016/j.compfluid.2007.07.017
source
TrixiShallowWater.eachlayerMethod
eachlayer(equations::AbstractShallowWaterMultiLayerEquations)

Return an iterator over the indices that specify the location in relevant data structures for the layers in AbstractShallowWaterMultiLayerEquations.

source
TrixiShallowWater.flux_ersing_etalMethod
flux_ersing_etal(u_ll, u_rr, orientation::Integer,
-                                 equations::ShallowWaterMultiLayerEquations1D)

Entropy conservative split form, without the hydrostatic pressure. This flux should be used together with the nonconservative flux_nonconservative_ersing_etal to create a scheme that is entropy conservative and well-balanced.

To obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.

source
TrixiShallowWater.flux_ersing_etalMethod
flux_ersing_etal(u_ll, u_rr, orientation::Integer,
-                                 equations::ShallowWaterMultiLayerEquations1D)

Total energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.

To obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.MeyerPeterMuellerMethod
MeyerPeterMueller(; theta_c, d_s)

Creates a Meyer-Peter-Mueller model to compute the sediment discharge q_s with the critical Shields stress theta_c and the grain diameter d_s.

An overview of different formulations to compute the sediment discharge can be found in:

  • M.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)
    Sediment transport models in Shallow Water equations and numerical approach by high order finite volume methods
    DOI:10.1016/j.compfluid.2007.07.017
source
TrixiShallowWater.eachlayerMethod
eachlayer(equations::AbstractShallowWaterMultiLayerEquations)

Return an iterator over the indices that specify the location in relevant data structures for the layers in AbstractShallowWaterMultiLayerEquations.

source
TrixiShallowWater.flux_ersing_etalMethod
flux_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 equations::ShallowWaterMultiLayerEquations1D)

Entropy conservative split form, without the hydrostatic pressure. This flux should be used together with the nonconservative flux_nonconservative_ersing_etal to create a scheme that is entropy conservative and well-balanced.

To obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.

source
TrixiShallowWater.flux_ersing_etalMethod
flux_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 equations::ShallowWaterMultiLayerEquations1D)

Total energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.

To obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_ersing_etalMethod
flux_ersing_etal(u_ll, u_rr, orientation::Integer,
                                  equations::ShallowWaterMultiLayerEquations2D)
 flux_ersing_etal(u_ll, u_rr, normal_direction::AbstractVector,
-                                 equations::ShallowWaterMultiLayerEquations2D)

Total energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.

To obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_es_ersing_etalMethod
flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,
-                    equations::ShallowWaterTwoLayerEquations2D)

Entropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_es_ersing_etalMethod
flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,
-                    equations::ShallowWaterTwoLayerEquations1D)

Entropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_chen_noelleMethod
flux_nonconservative_chen_noelle(u_ll, u_rr,
+                                 equations::ShallowWaterMultiLayerEquations2D)

Total energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.

To obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_es_ersing_etalMethod
flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,
+                    equations::ShallowWaterTwoLayerEquations2D)

Entropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_es_ersing_etalMethod
flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,
+                    equations::ShallowWaterTwoLayerEquations1D)

Entropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_chen_noelleMethod
flux_nonconservative_chen_noelle(u_ll, u_rr,
                                  orientation::Integer,
-                                 equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.

Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.

Further details on the hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.flux_nonconservative_chen_noelleMethod
flux_nonconservative_chen_noelle(u_ll, u_rr,
+                                 equations::ShallowWaterEquationsWetDry1D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.

Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.

Further details on the hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.flux_nonconservative_chen_noelleMethod
flux_nonconservative_chen_noelle(u_ll, u_rr,
                                  orientation::Integer,
                                  equations::ShallowWaterEquationsWetDry2D)
 flux_nonconservative_chen_noelle(u_ll, u_rr,
-                                 normal_direction_ll      ::AbstractVector,
-                                 normal_direction_average ::AbstractVector,
-                                 equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.

Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.

Further details on the hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation, equations::ShallowWaterExnerEquations1D)

Non-symmetric path-conservative two-point flux discretizing the nonconservative terms of the ShallowWaterExnerEquations1D which consists of the hydrostatic pressure of the fluid layer and an additional pressure contribution from the sediment layer to obtain an entropy inequality.

This non-conservative flux should be used together with flux_ersing_etal to create a scheme that is entropy conservative and well-balanced.

source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
-                                 equations::ShallowWaterTwoLayerEquations1D)

Non-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations1D.

When the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 normal_direction::AbstractVector,
+                                 equations::ShallowWaterEquationsWetDry2D)

Non-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.

Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.

Further details on the hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation, equations::ShallowWaterExnerEquations1D)

Non-symmetric path-conservative two-point flux discretizing the nonconservative terms of the ShallowWaterExnerEquations1D which consists of the hydrostatic pressure of the fluid layer and an additional pressure contribution from the sediment layer to obtain an entropy inequality.

This non-conservative flux should be used together with flux_ersing_etal to create a scheme that is entropy conservative and well-balanced.

source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 equations::ShallowWaterTwoLayerEquations1D)

Non-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations1D.

When the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
                                  equations::ShallowWaterMultiLayerEquations2D)
 flux_nonconservative_ersing_etal(u_ll, u_rr,
-                                 normal_direction_ll::AbstractVector,
-                                 normal_direction_average::AbstractVector,
-                                 equations::ShallowWaterMultiLayerEquations2D)

Non-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations2D.

When the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
-                                 equations::ShallowWaterTwoLayerEquations1D)

Non-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations1D and an additional term that couples the momentum of both layers.

This is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 normal_direction::AbstractVector,
+                                 equations::ShallowWaterMultiLayerEquations2D)

Non-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations2D.

When the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.

In the two-layer setting this combination is equivalent to the fluxes in:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 equations::ShallowWaterTwoLayerEquations1D)

Non-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations1D and an additional term that couples the momentum of both layers.

This is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
                                  equations::ShallowWaterTwoLayerEquations2D)
 flux_nonconservative_ersing_etal(u_ll, u_rr,
-                                 normal_direction_ll::AbstractVector,
-                                 normal_direction_average::AbstractVector,
-                                 equations::ShallowWaterTwoLayerEquations2D)
Experimental code

This numerical flux is experimental and may change in any future release.

Non-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations2D and an additional term that couples the momentum of both layers.

This is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.hydrostatic_reconstruction_chen_noelleMethod
hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,
-                                       equations::ShallowWaterEquationsWetDry1D)

A particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.hydrostatic_reconstruction_chen_noelleMethod
hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,
-                                       equations::ShallowWaterEquationsWetDry2D)

A particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.hydrostatic_reconstruction_ersing_etalMethod
hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations1D)

A particular hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations1D. The reconstructed solution states u_ll_star and u_rr_star are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Experimental code

This is an experimental feature and may change in future releases.

source
TrixiShallowWater.hydrostatic_reconstruction_ersing_etalMethod
hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations2D)

A particular type of hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Experimental code

This is an experimental feature and may change in future releases.

source
TrixiShallowWater.min_max_speed_chen_noelleMethod
min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,
-                          equations::ShallowWaterEquations1D)

The approximated speeds for the HLL type numerical flux used by Chen and Noelle for their hydrostatic reconstruction. As they state in the paper, these speeds are chosen for the numerical flux to ensure positivity and to satisfy an entropy inequality.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.min_max_speed_chen_noelleMethod
min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,
+                                 normal_direction::AbstractVector,
+                                 equations::ShallowWaterTwoLayerEquations2D)
Experimental code

This numerical flux is experimental and may change in any future release.

Non-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations2D and an additional term that couples the momentum of both layers.

This is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal.

For further details see:

  • Patrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2
source
TrixiShallowWater.hydrostatic_reconstruction_chen_noelleMethod
hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,
+                                       equations::ShallowWaterEquationsWetDry1D)

A particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.hydrostatic_reconstruction_chen_noelleMethod
hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,
+                                       equations::ShallowWaterEquationsWetDry2D)

A particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.hydrostatic_reconstruction_ersing_etalMethod
hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations1D)

A particular hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations1D. The reconstructed solution states u_ll_star and u_rr_star are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Experimental code

This is an experimental feature and may change in future releases.

source
TrixiShallowWater.hydrostatic_reconstruction_ersing_etalMethod
hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations2D)

A particular type of hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.

Experimental code

This is an experimental feature and may change in future releases.

source
TrixiShallowWater.min_max_speed_chen_noelleMethod
min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,
+                          equations::ShallowWaterEquations1D)

The approximated speeds for the HLL type numerical flux used by Chen and Noelle for their hydrostatic reconstruction. As they state in the paper, these speeds are chosen for the numerical flux to ensure positivity and to satisfy an entropy inequality.

Further details on this hydrostatic reconstruction and its motivation can be found in

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.min_max_speed_chen_noelleMethod
min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,
                           equations::ShallowWaterEquations2D)
 min_max_speed_chen_noelle(u_ll, u_rr, normal_direction::AbstractVector,
-                          equations::ShallowWaterEquations2D)

Special estimate of the minimal and maximal wave speed of the shallow water equations for the left and right states u_ll, u_rr. These approximate speeds are used for the HLL-type numerical flux flux_hll_chen_noelle. These wave speed estimates together with a particular hydrostatic reconstruction technique guarantee that the numerical flux is positive and satisfies an entropy inequality.

Further details on this hydrostatic reconstruction and its motivation can be found in the reference below. The definition of the wave speeds are given in Equation (2.20).

  • Guoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074
source
TrixiShallowWater.nlayersMethod
nlayers(equations::AbstractShallowWaterMultiLayerEquations)

Retrieve the number of layers from an equation instance of the AbstractShallowWaterMultiLayerEquations.

source
+ equations::ShallowWaterEquations2D)

Special estimate of the minimal and maximal wave speed of the shallow water equations for the left and right states u_ll, u_rr. These approximate speeds are used for the HLL-type numerical flux flux_hll_chen_noelle. These wave speed estimates together with a particular hydrostatic reconstruction technique guarantee that the numerical flux is positive and satisfies an entropy inequality.

Further details on this hydrostatic reconstruction and its motivation can be found in the reference below. The definition of the wave speeds are given in Equation (2.20).

source
TrixiShallowWater.nlayersMethod
nlayers(equations::AbstractShallowWaterMultiLayerEquations)

Retrieve the number of layers from an equation instance of the AbstractShallowWaterMultiLayerEquations.

source
diff --git a/dev/search_index.js b/dev/search_index.js index c521973..473f463 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"","page":"Home","title":"Home","text":"CurrentModule = TrixiShallowWater","category":"page"},{"location":"#TrixiShallowWater","page":"Home","title":"TrixiShallowWater","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for TrixiShallowWater.","category":"page"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"","page":"Home","title":"Home","text":"Modules = [TrixiShallowWater]","category":"page"},{"location":"#TrixiShallowWater.flux_hll_chen_noelle","page":"Home","title":"TrixiShallowWater.flux_hll_chen_noelle","text":"flux_hll_chen_noelle = FluxHLL(min_max_speed_chen_noelle)\n\nAn instance of Trixi.FluxHLL specific to the shallow water equations that uses the wave speed estimates from min_max_speed_chen_noelle. This HLL flux is guaranteed to have zero numerical mass flux out of a \"dry\" element, maintain positivity of the water height, and satisfy an entropy inequality.\n\nFor complete details see Section 2.4 of the following reference\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI: 10.1137/15M1053074\n\n\n\n\n\n","category":"constant"},{"location":"#TrixiShallowWater.GrassModel","page":"Home","title":"TrixiShallowWater.GrassModel","text":"GrassModel(; A_g, m_g=3)\n\nCreates a Grass model to compute the sediment discharge q_s as\n\nq_s = A_g v^m_g\n\nwith the coefficients A_g and m_g. The constant A_g lies in the interval 01 and is a dimensional calibration constant that is usually measured experimental. It expresses the kind of interaction between the fluid and the sediment, the strength of which increases as A_g approaches to 1. The factor m_g lies in the interval 1 4. Typically, one considers an odd integer value for m_g such that the sediment discharge q_s can be differentiated and the model remains valid for all values of the velocity v.\n\nAn overview of different formulations to compute the sediment discharge can be found in:\n\nM.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)\nSediment transport models in Shallow Water equations and numerical approach by high order finite volume methods\nDOI:10.1016/j.compfluid.2007.07.017\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.IndicatorHennemannGassnerShallowWater","page":"Home","title":"TrixiShallowWater.IndicatorHennemannGassnerShallowWater","text":"IndicatorHennemannGassnerShallowWater(equations::AbstractEquations, basis;\n alpha_max=0.5,\n alpha_min=0.001,\n alpha_smooth=true,\n variable)\n\nModified version of the Trixi.IndicatorHennemannGassner indicator used for shock-capturing for shallow water equations. After the element-wise values for the blending factors are computed an additional check is made to see if the element is partially wet. In this case, partially wet elements are set to use the pure finite volume scheme that is guaranteed to be well-balanced for this wet/dry transition state of the flow regime.\n\nSee also Trixi.VolumeIntegralShockCapturingHG.\n\nReferences\n\nHennemann, Gassner (2020) \"A provably entropy stable subcell shock capturing approach for high order split form DG\" arXiv: 2008.12044\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ManningFriction","page":"Home","title":"TrixiShallowWater.ManningFriction","text":"ManningFriction(; n)\n\nCreates a Manning friction model for the bottom friction with Manning coefficient n. The type is used to dispatch on the respective friction law through the shear_stress_coefficient when computing the shear_stress.\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.PositivityPreservingLimiterShallowWater","page":"Home","title":"TrixiShallowWater.PositivityPreservingLimiterShallowWater","text":"PositivityPreservingLimiterShallowWater(; variables)\n\nThe limiter is specifically designed for the shallow water equations. It is applied to all scalar variables in their given order using the defined threshold_limiter from the equations struct (e.g. in ShallowWaterEquationsWetDry1D) to determine the minimal acceptable values. The order of the variables is important and might have a strong influence on the robustness. The limiter is available for the ShallowWaterEquationsWetDry1D, ShallowWaterEquationsWetDry2D, and ShallowWaterMultiLayerEquations1D.\n\nAs opposed to the standard version of the Trixi.PositivityPreservingLimiterZhangShu, nodes with a water height below the threshold_limiter are treated in a special way. To avoid numerical problems caused by velocities close to zero, the velocity is cut off, such that the node can be identified as \"dry\". The special feature of the ShallowWaterEquationsWetDry used here is that the bottom topography is stored as an additional quantity in the solution vector u. However, the value of the bottom topography should not be changed. That is why, it is not limited.\n\nAfter the limiting process is applied to all degrees of freedom, for safety reasons, the threshold_limiter is applied again on all the DG nodes in order to avoid water height below. In the case where the cell mean value is below the threshold before applying the limiter, there could still be dry nodes afterwards due to the logic of the limiter.\n\nFor the ShallowWaterMultiLayerEquations1D the implementation differs. In this case the positivity limiter is applied layerwise and only the waterheight h is limited within each layer. Furthermore, a velocity desingularization is applied after the limiting to avoid numerical problems near dry states. Details about the desingularization strategy can be found in Section 2.2 of the paper\n\nA. Kurganov, G. Petrova (2007) A second-order well-balanced positivity preserving central-upwind scheme for the Saint-Venant system doi: 10.4310/CMS.2007.v5.n1.a6\n\nThis fully-discrete positivity-preserving limiter is based on the work of\n\nZhang, Shu (2011) Maximum-principle-satisfying and positivity-preserving high-order schemes for conservation laws: survey and new developments doi: 10.1098/rspa.2011.0153\n\nThe specific implementation for the `ShallowWaterMultiLayerEquations1D is based on the work of\n\nY. Xing, X. Zhang (2013) Positivity-preserving well-balanced discontinuous Galerkin methods for the shallow water equations on unstructured triangular meshes doi: 10.1007/s10915-012-9644-4\n\nwarning: Experimental code\nThis is an experimental feature and may change in future releases.\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterEquationsWetDry1D","page":"Home","title":"TrixiShallowWater.ShallowWaterEquationsWetDry1D","text":"ShallowWaterEquationsWetDry1D(; gravity, H0 = 0, threshold_limiter = nothing threshold_wet = nothing)\n\nShallow water equations (SWE) in one space dimension. The equations are given by\n\nbeginaligned\n fracpartial hpartial t + fracpartialpartial x(h v) = 0 \n fracpartialpartial t(h v) + fracpartialpartial xleft(h v^2 + fracg2h^2right)\n + g h fracpartial bpartial x = 0\nendaligned\n\nThe unknown quantities of the SWE are the water height h and the velocity v. The gravitational constant is denoted by g and the (possibly) variable bottom topography function b(x). Conservative variable water height h is measured from the bottom topography b, therefore one also defines the total water height as H = h + b.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is \"wet\" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.\n\nIn addition to the unknowns, Trixi.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi.jl's visualization tools will visualize the bottom topography by default.\n\nReferences for the SWE are many but a good introduction is available in Chapter 13 of the book:\n\nRandall J. LeVeque (2002) Finite Volume Methods for Hyperbolic Problems DOI: 10.1017/CBO9780511791253\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterEquationsWetDry2D","page":"Home","title":"TrixiShallowWater.ShallowWaterEquationsWetDry2D","text":"ShallowWaterEquationsWetDry2D(; gravity, H0 = 0, threshold_limiter = nothing, threshold_wet = nothing)\n\nShallow water equations (SWE) in two space dimensions. The equations are given by\n\nbeginaligned\n fracpartial hpartial t + fracpartialpartial x(h v_1)\n + fracpartialpartial y(h v_2) = 0 \n fracpartialpartial t(h v_1) + fracpartialpartial xleft(h v_1^2 + fracg2h^2right)\n + fracpartialpartial y(h v_1 v_2) + g h fracpartial bpartial x = 0 \n fracpartialpartial t(h v_2) + fracpartialpartial x(h v_1 v_2)\n + fracpartialpartial yleft(h v_2^2 + fracg2h^2right) + g h fracpartial bpartial y = 0\nendaligned\n\nThe unknown quantities of the SWE are the water height h and the velocities mathbfv = (v_1 v_2)^T. The gravitational constant is denoted by g and the (possibly) variable bottom topography function b(xy). Conservative variable water height h is measured from the bottom topography b, therefore one also defines the total water height as H = h + b.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is \"wet\" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.\n\nThe bottom topography function b(xy) is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.\n\nIn addition to the unknowns, TrixiShallowWater.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi.jl's visualization tools will visualize the bottom topography by default.\n\nReferences for the SWE are many but a good introduction is available in Chapter 13 of the book:\n\nRandall J. LeVeque (2002) Finite Volume Methods for Hyperbolic Problems DOI: 10.1017/CBO9780511791253\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterExnerEquations1D","page":"Home","title":"TrixiShallowWater.ShallowWaterExnerEquations1D","text":"ShallowWaterExnerEquations1D(;gravity_constant, H0 = 0.0,\n friction = ManningFriction(n = 0.0),\n sediment_model,\n porosity,\n rho_f, rho_s)\n\nFormulation of the Shallow water-Exner equations in one space dimension that possesses a mathematical entropy inequality. The equations are given by\n\nbegincases\npartial_t h + partial_x hv = 0 \npartial_t hv + partial_x (hv^2) + ghpartial_x (h + h_b) + gfrac1rh_spartial_x (rh + h_b) + fractaurho_f = 0\npartial_t h_b + partial_x q_s = 0\nendcases\n\nThe unknown quantities are the water and sediment height h, h_b and the velocity v. The sediment discharge q_s(h hv) is determined by the sediment_model and is used to determine the active sediment height h_s = q_s v. Furthermore tau denotes the shear stress at the water-sediment interface and is determined by the friction model. The gravitational constant is denoted by g, and rho_f and rho_s are the fluid and sediment densities, respectively. The density ratio is given by r = rho_f rho_s, where r lies between 0 r 1 as the fluid density rho_f should be smaller than the sediment density rho_s.\n\nThe conservative variable water height h is measured from the sediment height h_b, therefore one also defines the total water height as H = h + h_b.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nThe entropy conservative formulation has been derived in the paper:\n\nE.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)\nFormal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy\nDOI: 10.1051/m2an/2016018\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterMultiLayerEquations1D","page":"Home","title":"TrixiShallowWater.ShallowWaterMultiLayerEquations1D","text":"ShallowWaterMultiLayerEquations1D(gravity, H0, rhos)\n\nMulti-Layer Shallow Water equations (MLSWE) in one space dimension. The equations are given by\n\nleft\n\tbeginaligned\t\t\t\n\t\tpartial_t h_m + partial_x h_mv_m = 0\n\t\tpartial h_mv_m + partial_x h_mv_m^2 = -gh_mpartial_x bigg(b + sumlimits_kgeq jh_k + sumlimits_kmfracrho_krho_mh_k bigg)\n\tendaligned\nright\n\nwhere m = 1 2 M is the layer index and the unknown variables are the water height h and the velocity v. Furthermore, g denotes the gravitational constant, b(x) the bottom topography and rho_m the m-th layer density, that must be chosen such that rho_1 rho_2 rho_M, to ensure that different layers are ordered from top to bottom, with increasing density.\n\nWe use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)\n Introduction to geophyiscal fluid dynamics: physical and numerical aspects\n https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\n ISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterMultiLayerEquations2D","page":"Home","title":"TrixiShallowWater.ShallowWaterMultiLayerEquations2D","text":"ShallowWaterMultiLayerEquations2D(gravity, H0, rhos)\n\nMulti-Layer Shallow Water equations (MLSWE) in two space dimension. The equations are given by\n\nleft\n\tbeginaligned\t\t\t\n\t\tpartial_t h_m + partial_x h_mv_m = 0\n\t\tpartial h_mv1_m + partial_x h_mv1_m^2 + partial_y h_mv1_mv2_m = -gh_mpartial_x bigg(b + sumlimits_kgeq jh_k + sumlimits_kmfracrho_krho_mh_k bigg)\n partial h_mv2_m + partial_x h_mv1_mv2_m + partial_y h_mv2_m^2 = -gh_mpartial_y bigg(b + sumlimits_kgeq jh_k + sumlimits_kmfracrho_krho_mh_k bigg)\n\tendaligned\nright\n\nwhere m = 1 2 M is the layer index and the unknown variables are the water height h and the velocities v1 v2 in both spatial dimensions . Furthermore, g denotes the gravitational constant, b(x) the bottom topography and rho_m the m-th layer density, that must be chosen such that rho_1 rho_2 rho_M, to ensure that different layers are ordered from top to bottom, with increasing density.\n\nWe use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nAnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)\n Introduction to geophyiscal fluid dynamics: physical and numerical aspects\n https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\n ISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterTwoLayerEquations1D","page":"Home","title":"TrixiShallowWater.ShallowWaterTwoLayerEquations1D","text":"ShallowWaterTwoLayerEquations1D(gravity, H0, rho_upper, rho_lower)\n\nTwo-Layer Shallow Water equations (2LSWE) in one space dimension. The equations are given by\n\nbeginalignat*4\nfracpartialpartial th_upper\n+ fracpartialpartial xleft(h_upper v_1upperright)\n= 0 \nfracpartialpartial tleft(h_upperv_1upperright)\n+ fracpartialpartial xleft(h_upperv_1upper^2 + dfracgh_upper^22right)\n= -gh_upperfracpartialpartial xleft(b+h_lowerright)\nfracpartialpartial th_lower\n+ fracpartialpartial xleft(h_lowerv_1lowerright)\n= 0 \nfracpartialpartial tleft(h_lowerv_1lowerright)\n+ fracpartialpartial xleft(h_lowerv_1lower^2 + dfracgh_lower^22right)\n= -gh_lowerfracpartialpartial xleft(b+dfracrho_upperrho_lowerh_upperright)\nendalignat*\n\nThe unknown quantities of the 2LSWE are the water heights of the {lower} layer h_lower and the {upper} layer h_upper with respective velocities v_1upper and v_1lower. The gravitational constant is denoted by g, the layer densitites by rho_upperand rho_lower and the (possibly) variable bottom topography function b(x). The conservative variable water height h_lower is measured from the bottom topography b and h_upper relative to h_lower, therefore one also defines the total water heights as H_upper = h_upper + h_upper + b and H_lower = h_lower + b.\n\nThe densities must be chosen such that rho_upper rho_lower, to make sure that the heavier fluid rho_lower is in the bottom layer and the lighter fluid rho_upper in the {upper} layer.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the 2LSWE is available in Chapter 12 of the book:\n\nBenoit Cushman-Roisin (2011)\nIntroduction to geophyiscal fluid dynamics: physical and numerical aspects\nhttps://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\nISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterTwoLayerEquations2D","page":"Home","title":"TrixiShallowWater.ShallowWaterTwoLayerEquations2D","text":"ShallowWaterTwoLayerEquations2D(gravity, H0, rho_upper, rho_lower)\n\nTwo-Layer Shallow water equations (2LSWE) in two space dimension. The equations are given by\n\nbeginalignat*8\nfracpartialpartial th_upper\n+ fracpartialpartial xleft(h_upper v_1upperright)\n+ fracpartialpartial yleft(h_upper v_2upperright) quad\n= quad 0 \nfracpartialpartial tleft(h_upper v_1upperright)\n+ fracpartialpartial xleft(h_upper v_1upper^2 + fracgh_upper^22right)\n+ fracpartialpartial yleft(h_upper v_1upper v_2upperright) quad\n= -gh_upperfracpartialpartial xleft(b+h_lowerright) \nfracpartialpartial tleft(h_upper v_2upperright)\n+ fracpartialpartial xleft(h_upper v_1upper v_2upperright)\n+ fracpartialpartial yleft(h_upper v_2upper^2 + fracgh_upper^22right)\n= -gh_upperfracpartialpartial yleft(b+h_lowerright)\nfracpartialpartial th_lower\n+ fracpartialpartial xleft(h_lower v_1lowerright)\n+ fracpartialpartial yleft(h_lower v_2lowerright)\n= quad 0 \nfracpartialpartial tleft(h_lower v_1lowerright)\n+ fracpartialpartial xleft(h_lower v_1lower^2 + fracgh_lower^22right)\n+ fracpartialpartial yleft(h_lower v_1lower v_2lowerright)\n= -gh_lowerfracpartialpartial xleft(b+fracrho_upperrho_lower h_upperright)\nfracpartialpartial tleft(h_lower v_2lowerright)\n+ fracpartialpartial xleft(h_lower v_1lower v_2lowerright)\n+ fracpartialpartial yleft(h_lower v_2lower^2 + fracgh_lower^22right)\n= -gh_lowerfracpartialpartial yleft(b+fracrho_upperrho_lower h_upperright)\nendalignat*\n\nThe unknown quantities of the 2LSWE are the water heights of the lower layer h_lower and the upper layer h_upper and the respective velocities in x-direction v_1lower and v_1upper and in y-direction v_2lower and v_2upper. The gravitational constant is denoted by g, the layer densitites by rho_upperand rho_lower and the (possibly) variable bottom topography function by b(x). Conservative variable water height h_lower is measured from the bottom topography b and h_upper relative to h_lower, therefore one also defines the total water heights as H_lower = h_lower + b and H_upper = h_upper + h_lower + b.\n\nThe densities must be chosen such that rho_upper rho_lower, to make sure that the heavier fluid rho_lower is in the bottom layer and the lighter fluid rho_upper in the upper layer.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the 2LSWE is available in Chapter 12 of the book:\n\nBenoit Cushman-Roisin (2011)\nIntroduction to geophyiscal fluid dynamics: physical and numerical aspects\nhttps://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\nISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShieldsStressModel","page":"Home","title":"TrixiShallowWater.ShieldsStressModel","text":"ShieldsStressModel(; m_1, m_2, m_3, k_1, k_2, k_3, theta_c, d_s)\n\nCreate a Shields stress model to compute the sediment discharge q_s based on the generalized formulation from equation (1.2) in the given reference.\n\nThe choice of the real constants m_1, m_2, m_3, k_1, k_2, and k_3 creates different models. For example, setting m_1=0, m_2=1.5, m_3=0, k_1=8, k_2=1, and k_3=0 yields the sedimentation model of Meyer-Peter and Müller as given in MeyerPeterMueller below. The Shields stress represents the ratio of agitating and stabilizing forces in the sediment bed where theta_c is the critical Shields stress for incipient motion and d_s is the mean diameter of the sediment grain size.\n\nE.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)\nFormal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy\nDOI: 10.1051/m2an/2016018\n\n\n\n\n\n","category":"type"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, AbstractVector, Any, Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,\n equations::ShallowWaterEquationsWetDry2D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, AbstractVector, Any, Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,\n equations::ShallowWaterMultiLayerEquations2D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, AbstractVector, Any, Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,\n equations::ShallowWaterTwoLayerEquations2D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterEquationsWetDry1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation, direction, x, t,\n surface_flux_function, equations::ShallowWaterEquationsWetDry2D)\n\nShould be used together with Trixi.TreeMesh.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterExnerEquations1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001)\nShock-Capturing Methods for Free-Surface Shallow Flows\n1st edition\nISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterMultiLayerEquations1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation, direction, x, t,\n surface_flux_function, equations::ShallowWaterMultiLayerEquations2D)\n\nShould be used together with TreeMesh.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterTwoLayerEquations1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_fjordholm_etal","text":"flux_fjordholm_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterEquationsWetDry1D)\n\nTotal energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.\n\nDetails are available in Eq. (4.1) in the paper:\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_fjordholm_etal","text":"flux_fjordholm_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterEquationsWetDry2D)\n\nTotal energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.\n\nDetails are available in Eq. (4.1) in the paper:\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_audusse_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_nonconservative_audusse_etal","text":"flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.\n\nThis hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry1D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.\n\nFurther details on the hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_audusse_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_nonconservative_audusse_etal","text":"flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_audusse_etal(u_ll, u_rr,\n normal_direction_ll ::AbstractVector,\n normal_direction_average::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.\n\nThis hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry2D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.\n\nFurther details for the hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_nonconservative_fjordholm_etal","text":"flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.\n\nThis flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.\n\nFurther details for the original finite volume formulation are available in\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\nand for curvilinear 2D case in the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_nonconservative_fjordholm_etal","text":"flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_fjordholm_etal(u_ll, u_rr,\n normal_direction_ll ::AbstractVector,\n normal_direction_average::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.\n\nThis flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.\n\nFurther details for the original finite volume formulation are available in\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\nand for curvilinear 2D case in the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_nonconservative_wintermeyer_etal","text":"flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.\n\nGives entropy conservation and well-balancedness on both the volume and surface when combined with flux_wintermeyer_etal.\n\nFurther details are available in the papers:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_nonconservative_wintermeyer_etal","text":"flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_wintermeyer_etal(u_ll, u_rr,\n normal_direction_ll ::AbstractVector,\n normal_direction_average::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.\n\nFor the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.\n\nFurther details are available in the papers:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterEquationsWetDry1D)\n\nTotal energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterEquationsWetDry2D)\n\nTotal energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterTwoLayerEquations1D)\n\nTotal energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterTwoLayerEquations2D)\nflux_wintermeyer_etal(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterTwoLayerEquations2D)\n\nTotal energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.hydrostatic_reconstruction_audusse_etal-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.hydrostatic_reconstruction_audusse_etal","text":"hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nA particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.hydrostatic_reconstruction_audusse_etal-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.hydrostatic_reconstruction_audusse_etal","text":"hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterEquationsWetDry2D)\n\nA particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details for the hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterEquationsWetDry1D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterEquationsWetDry2D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterExnerEquations1D)\n\nA smooth initial condition used for convergence tests in combination with Trixi.source_terms_convergence_test.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterMultiLayerEquations1D)\n\nA smooth initial condition for a three-layer configuration used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterMultiLayerEquations2D)\n\nA smooth initial condition for a three-layer configuration used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterTwoLayerEquations1D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterTwoLayerEquations2D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test. Constants must be set to rho_upper = 09, rho_lower = 10, g = 100.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_weak_blast_wave-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.initial_condition_weak_blast_wave","text":"initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry1D)\n\nA weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_weak_blast_wave-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.initial_condition_weak_blast_wave","text":"initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry2D)\n\nA weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterEquationsWetDry2D)\n\nSource terms used for convergence tests in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\nThis manufactured solution source term is specifically designed for the bottom topography function b(x,y) = 2 + 0.5 * sin(sqrt(2)*pi*x) + 0.5 * sin(sqrt(2)*pi*y) as defined in initial_condition_convergence_test.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterMultiLayerEquations1D)\n\nSource terms used for convergence tests with a three-layer configuration in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterMultiLayerEquations2D)\n\nSource terms used for convergence tests with a three-layer configuration in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterTwoLayerEquations1D)\n\nSource terms used for convergence tests in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterTwoLayerEquations2D)\n\nSource terms used for convergence tests in combination with initial_condition_convergence_test.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Union{Tuple{S}, Tuple{T}, Tuple{Any, Any, Any, ShallowWaterExnerEquations1D{T, S, GrassModel{T}}}} where {T, S}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterExnerEquations1D{T, S, GrassModel{T}}) where {T, S}\n\nSource terms used for convergence tests in combination with Trixi.initial_condition_convergence_test when using the the GrassModel model.\n\nTo use this source term the equations must be set to:\n\nequations = ShallowWaterExnerEquations1D(gravity_constant = 10.0, rho_f = 0.5,\n rho_s = 1.0, porosity = 0.5,\n friction = ManningFriction(n = 0.0),\n sediment_model = GrassModel(A_g = 0.01)\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Union{Tuple{S}, Tuple{T}, Tuple{Any, Any, Any, ShallowWaterExnerEquations1D{T, S, ShieldsStressModel{T}}}} where {T, S}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterExnerEquations1D{T, S, ShieldsStressModel{T}}) where {T, S}\n\nSource terms used for convergence tests in combination with Trixi.initial_condition_convergence_test when using the MeyerPeterMueller model.\n\nTo use this source term the equations must be set to:\n\nequations = ShallowWaterExnerEquations1D(gravity_constant = 10.0, rho_f = 0.5,\n rho_s = 1.0, porosity = 0.5,\n friction = ManningFriction(n = 0.01),\n sediment_model = MeyerPeterMueller(theta_c = 0.0,\n d_s = 1e-3))\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.MeyerPeterMueller-Tuple{}","page":"Home","title":"TrixiShallowWater.MeyerPeterMueller","text":"MeyerPeterMueller(; theta_c, d_s)\n\nCreates a Meyer-Peter-Mueller model to compute the sediment discharge q_s with the critical Shields stress theta_c and the grain diameter d_s.\n\nAn overview of different formulations to compute the sediment discharge can be found in:\n\nM.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)\nSediment transport models in Shallow Water equations and numerical approach by high order finite volume methods\nDOI:10.1016/j.compfluid.2007.07.017\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.dissipation_roe-Tuple{Any, Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.dissipation_roe","text":"dissipation_roe(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterExnerEquations1D)\n\nRoe-type dissipation term for the ShallowWaterExnerEquations1D with an approximate Roe average for the sediment discharge q_s.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.eachlayer-Tuple{TrixiShallowWater.AbstractShallowWaterMultiLayerEquations}","page":"Home","title":"TrixiShallowWater.eachlayer","text":"eachlayer(equations::AbstractShallowWaterMultiLayerEquations)\n\nReturn an iterator over the indices that specify the location in relevant data structures for the layers in AbstractShallowWaterMultiLayerEquations.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_ersing_etal","text":"flux_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations1D)\n\nEntropy conservative split form, without the hydrostatic pressure. This flux should be used together with the nonconservative flux_nonconservative_ersing_etal to create a scheme that is entropy conservative and well-balanced.\n\nTo obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_ersing_etal","text":"flux_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations1D)\n\nTotal energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.\n\nTo obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_ersing_etal","text":"flux_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations2D)\nflux_ersing_etal(u_ll, u_rr, normal_direction::AbstractVector,\n equations::ShallowWaterMultiLayerEquations2D)\n\nTotal energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.\n\nTo obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_es_ersing_etal-Tuple{Any, Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_es_ersing_etal","text":"flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterTwoLayerEquations2D)\n\nEntropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables. \n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_es_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_es_ersing_etal","text":"flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterTwoLayerEquations1D)\n\nEntropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables. \n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_chen_noelle","text":"flux_nonconservative_chen_noelle(u_ll, u_rr,\n orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.\n\nShould be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.\n\nFurther details on the hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_chen_noelle","text":"flux_nonconservative_chen_noelle(u_ll, u_rr,\n orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_chen_noelle(u_ll, u_rr,\n normal_direction_ll ::AbstractVector,\n normal_direction_average ::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.\n\nShould be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.\n\nFurther details on the hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation, equations::ShallowWaterExnerEquations1D)\n\nNon-symmetric path-conservative two-point flux discretizing the nonconservative terms of the ShallowWaterExnerEquations1D which consists of the hydrostatic pressure of the fluid layer and an additional pressure contribution from the sediment layer to obtain an entropy inequality.\n\nThis non-conservative flux should be used together with flux_ersing_etal to create a scheme that is entropy conservative and well-balanced.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterTwoLayerEquations1D)\n\nNon-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations1D.\n\nWhen the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations2D)\nflux_nonconservative_ersing_etal(u_ll, u_rr,\n normal_direction_ll::AbstractVector,\n normal_direction_average::AbstractVector,\n equations::ShallowWaterMultiLayerEquations2D)\n\nNon-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations2D.\n\nWhen the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterTwoLayerEquations1D)\n\nNon-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations1D and an additional term that couples the momentum of both layers. \n\nThis is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal. \n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterTwoLayerEquations2D)\nflux_nonconservative_ersing_etal(u_ll, u_rr,\n normal_direction_ll::AbstractVector,\n normal_direction_average::AbstractVector,\n equations::ShallowWaterTwoLayerEquations2D)\n\nwarning: Experimental code\n\n\nThis numerical flux is experimental and may change in any future release.\n\nNon-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations2D and an additional term that couples the momentum of both layers. \n\nThis is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal.\n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_chen_noelle-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_chen_noelle","text":"hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nA particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_chen_noelle-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_chen_noelle","text":"hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\n\nA particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_ersing_etal-Tuple{Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_ersing_etal","text":"hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations1D)\n\nA particular hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations1D. The reconstructed solution states u_ll_star and u_rr_star are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nwarning: Experimental code\nThis is an experimental feature and may change in future releases.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_ersing_etal-Tuple{Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_ersing_etal","text":"hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations2D)\n\nA particular type of hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nwarning: Experimental code\nThis is an experimental feature and may change in future releases.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.min_max_speed_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"TrixiShallowWater.min_max_speed_chen_noelle","text":"min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquations1D)\n\nThe approximated speeds for the HLL type numerical flux used by Chen and Noelle for their hydrostatic reconstruction. As they state in the paper, these speeds are chosen for the numerical flux to ensure positivity and to satisfy an entropy inequality.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.min_max_speed_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"TrixiShallowWater.min_max_speed_chen_noelle","text":"min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquations2D)\nmin_max_speed_chen_noelle(u_ll, u_rr, normal_direction::AbstractVector,\n equations::ShallowWaterEquations2D)\n\nSpecial estimate of the minimal and maximal wave speed of the shallow water equations for the left and right states u_ll, u_rr. These approximate speeds are used for the HLL-type numerical flux flux_hll_chen_noelle. These wave speed estimates together with a particular hydrostatic reconstruction technique guarantee that the numerical flux is positive and satisfies an entropy inequality.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in the reference below. The definition of the wave speeds are given in Equation (2.20).\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.nlayers-Union{Tuple{TrixiShallowWater.AbstractShallowWaterMultiLayerEquations{NDIMS, NVARS, NLAYERS}}, Tuple{NLAYERS}, Tuple{NVARS}, Tuple{NDIMS}} where {NDIMS, NVARS, NLAYERS}","page":"Home","title":"TrixiShallowWater.nlayers","text":"nlayers(equations::AbstractShallowWaterMultiLayerEquations)\n\nRetrieve the number of layers from an equation instance of the AbstractShallowWaterMultiLayerEquations.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.source_term_bottom_friction-Tuple{Any, Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.source_term_bottom_friction","text":"source_term_bottom_friction(u, x, t, equations::ShallowWaterExnerEquations1D)\n\nSource term that accounts for the bottom friction in the ShallowWaterExnerEquations1D. The actual friction law is determined through the friction model in equations.friction.\n\n\n\n\n\n","category":"method"}] +[{"location":"","page":"Home","title":"Home","text":"CurrentModule = TrixiShallowWater","category":"page"},{"location":"#TrixiShallowWater","page":"Home","title":"TrixiShallowWater","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for TrixiShallowWater.","category":"page"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"","page":"Home","title":"Home","text":"Modules = [TrixiShallowWater]","category":"page"},{"location":"#TrixiShallowWater.flux_hll_chen_noelle","page":"Home","title":"TrixiShallowWater.flux_hll_chen_noelle","text":"flux_hll_chen_noelle = FluxHLL(min_max_speed_chen_noelle)\n\nAn instance of Trixi.FluxHLL specific to the shallow water equations that uses the wave speed estimates from min_max_speed_chen_noelle. This HLL flux is guaranteed to have zero numerical mass flux out of a \"dry\" element, maintain positivity of the water height, and satisfy an entropy inequality.\n\nFor complete details see Section 2.4 of the following reference\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI: 10.1137/15M1053074\n\n\n\n\n\n","category":"constant"},{"location":"#TrixiShallowWater.GrassModel","page":"Home","title":"TrixiShallowWater.GrassModel","text":"GrassModel(; A_g, m_g=3)\n\nCreates a Grass model to compute the sediment discharge q_s as\n\nq_s = A_g v^m_g\n\nwith the coefficients A_g and m_g. The constant A_g lies in the interval 01 and is a dimensional calibration constant that is usually measured experimental. It expresses the kind of interaction between the fluid and the sediment, the strength of which increases as A_g approaches to 1. The factor m_g lies in the interval 1 4. Typically, one considers an odd integer value for m_g such that the sediment discharge q_s can be differentiated and the model remains valid for all values of the velocity v.\n\nAn overview of different formulations to compute the sediment discharge can be found in:\n\nM.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)\nSediment transport models in Shallow Water equations and numerical approach by high order finite volume methods\nDOI:10.1016/j.compfluid.2007.07.017\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.IndicatorHennemannGassnerShallowWater","page":"Home","title":"TrixiShallowWater.IndicatorHennemannGassnerShallowWater","text":"IndicatorHennemannGassnerShallowWater(equations::AbstractEquations, basis;\n alpha_max=0.5,\n alpha_min=0.001,\n alpha_smooth=true,\n variable)\n\nModified version of the Trixi.IndicatorHennemannGassner indicator used for shock-capturing for shallow water equations. After the element-wise values for the blending factors are computed an additional check is made to see if the element is partially wet. In this case, partially wet elements are set to use the pure finite volume scheme that is guaranteed to be well-balanced for this wet/dry transition state of the flow regime.\n\nSee also Trixi.VolumeIntegralShockCapturingHG.\n\nReferences\n\nHennemann, Gassner (2020) \"A provably entropy stable subcell shock capturing approach for high order split form DG\" arXiv: 2008.12044\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ManningFriction","page":"Home","title":"TrixiShallowWater.ManningFriction","text":"ManningFriction(; n)\n\nCreates a Manning friction model for the bottom friction with Manning coefficient n. The type is used to dispatch on the respective friction law through the shear_stress_coefficient when computing the shear_stress.\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.PositivityPreservingLimiterShallowWater","page":"Home","title":"TrixiShallowWater.PositivityPreservingLimiterShallowWater","text":"PositivityPreservingLimiterShallowWater(; variables)\n\nThe limiter is specifically designed for the shallow water equations. It is applied to all scalar variables in their given order using the defined threshold_limiter from the equations struct (e.g. in ShallowWaterEquationsWetDry1D) to determine the minimal acceptable values. The order of the variables is important and might have a strong influence on the robustness. The limiter is available for the ShallowWaterEquationsWetDry1D, ShallowWaterEquationsWetDry2D, and ShallowWaterMultiLayerEquations1D.\n\nAs opposed to the standard version of the Trixi.PositivityPreservingLimiterZhangShu, nodes with a water height below the threshold_limiter are treated in a special way. To avoid numerical problems caused by velocities close to zero, the velocity is cut off, such that the node can be identified as \"dry\". The special feature of the ShallowWaterEquationsWetDry used here is that the bottom topography is stored as an additional quantity in the solution vector u. However, the value of the bottom topography should not be changed. That is why, it is not limited.\n\nAfter the limiting process is applied to all degrees of freedom, for safety reasons, the threshold_limiter is applied again on all the DG nodes in order to avoid water height below. In the case where the cell mean value is below the threshold before applying the limiter, there could still be dry nodes afterwards due to the logic of the limiter.\n\nFor the ShallowWaterMultiLayerEquations1D the implementation differs. In this case the positivity limiter is applied layerwise and only the waterheight h is limited within each layer. Furthermore, a velocity desingularization is applied after the limiting to avoid numerical problems near dry states. Details about the desingularization strategy can be found in Section 2.2 of the paper\n\nA. Kurganov, G. Petrova (2007) A second-order well-balanced positivity preserving central-upwind scheme for the Saint-Venant system doi: 10.4310/CMS.2007.v5.n1.a6\n\nThis fully-discrete positivity-preserving limiter is based on the work of\n\nZhang, Shu (2011) Maximum-principle-satisfying and positivity-preserving high-order schemes for conservation laws: survey and new developments doi: 10.1098/rspa.2011.0153\n\nThe specific implementation for the `ShallowWaterMultiLayerEquations1D is based on the work of\n\nY. Xing, X. Zhang (2013) Positivity-preserving well-balanced discontinuous Galerkin methods for the shallow water equations on unstructured triangular meshes doi: 10.1007/s10915-012-9644-4\n\nwarning: Experimental code\nThis is an experimental feature and may change in future releases.\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterEquationsWetDry1D","page":"Home","title":"TrixiShallowWater.ShallowWaterEquationsWetDry1D","text":"ShallowWaterEquationsWetDry1D(; gravity, H0 = 0, threshold_limiter = nothing threshold_wet = nothing)\n\nShallow water equations (SWE) in one space dimension. The equations are given by\n\nbeginaligned\n fracpartial hpartial t + fracpartialpartial x(h v) = 0 \n fracpartialpartial t(h v) + fracpartialpartial xleft(h v^2 + fracg2h^2right)\n + g h fracpartial bpartial x = 0\nendaligned\n\nThe unknown quantities of the SWE are the water height h and the velocity v. The gravitational constant is denoted by g and the (possibly) variable bottom topography function b(x). Conservative variable water height h is measured from the bottom topography b, therefore one also defines the total water height as H = h + b.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is \"wet\" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.\n\nIn addition to the unknowns, Trixi.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi.jl's visualization tools will visualize the bottom topography by default.\n\nReferences for the SWE are many but a good introduction is available in Chapter 13 of the book:\n\nRandall J. LeVeque (2002) Finite Volume Methods for Hyperbolic Problems DOI: 10.1017/CBO9780511791253\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterEquationsWetDry2D","page":"Home","title":"TrixiShallowWater.ShallowWaterEquationsWetDry2D","text":"ShallowWaterEquationsWetDry2D(; gravity, H0 = 0, threshold_limiter = nothing, threshold_wet = nothing)\n\nShallow water equations (SWE) in two space dimensions. The equations are given by\n\nbeginaligned\n fracpartial hpartial t + fracpartialpartial x(h v_1)\n + fracpartialpartial y(h v_2) = 0 \n fracpartialpartial t(h v_1) + fracpartialpartial xleft(h v_1^2 + fracg2h^2right)\n + fracpartialpartial y(h v_1 v_2) + g h fracpartial bpartial x = 0 \n fracpartialpartial t(h v_2) + fracpartialpartial x(h v_1 v_2)\n + fracpartialpartial yleft(h v_2^2 + fracg2h^2right) + g h fracpartial bpartial y = 0\nendaligned\n\nThe unknown quantities of the SWE are the water height h and the velocities mathbfv = (v_1 v_2)^T. The gravitational constant is denoted by g and the (possibly) variable bottom topography function b(xy). Conservative variable water height h is measured from the bottom topography b, therefore one also defines the total water height as H = h + b.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. Both of them do not have to be passed, as default values are defined within the struct. The first one, threshold_limiter, is used in PositivityPreservingLimiterShallowWater on the water height, as a (small) shift on the initial condition and cutoff before the next time step. The second one, threshold_wet, is applied on the water height to define when the flow is \"wet\" before calculating the numerical flux. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_partially_wet must be provided.\n\nThe bottom topography function b(xy) is set inside the initial condition routine for a particular problem setup. To test the conservative form of the SWE one can set the bottom topography variable b to zero.\n\nIn addition to the unknowns, TrixiShallowWater.jl currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi.jl's visualization tools will visualize the bottom topography by default.\n\nReferences for the SWE are many but a good introduction is available in Chapter 13 of the book:\n\nRandall J. LeVeque (2002) Finite Volume Methods for Hyperbolic Problems DOI: 10.1017/CBO9780511791253\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterExnerEquations1D","page":"Home","title":"TrixiShallowWater.ShallowWaterExnerEquations1D","text":"ShallowWaterExnerEquations1D(;gravity_constant, H0 = 0.0,\n friction = ManningFriction(n = 0.0),\n sediment_model,\n porosity,\n rho_f, rho_s)\n\nFormulation of the Shallow water-Exner equations in one space dimension that possesses a mathematical entropy inequality. The equations are given by\n\nbegincases\npartial_t h + partial_x hv = 0 \npartial_t hv + partial_x (hv^2) + ghpartial_x (h + h_b) + gfrac1rh_spartial_x (rh + h_b) + fractaurho_f = 0\npartial_t h_b + partial_x q_s = 0\nendcases\n\nThe unknown quantities are the water and sediment height h, h_b and the velocity v. The sediment discharge q_s(h hv) is determined by the sediment_model and is used to determine the active sediment height h_s = q_s v. Furthermore tau denotes the shear stress at the water-sediment interface and is determined by the friction model. The gravitational constant is denoted by g, and rho_f and rho_s are the fluid and sediment densities, respectively. The density ratio is given by r = rho_f rho_s, where r lies between 0 r 1 as the fluid density rho_f should be smaller than the sediment density rho_s.\n\nThe conservative variable water height h is measured from the sediment height h_b, therefore one also defines the total water height as H = h + h_b.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nThe entropy conservative formulation has been derived in the paper:\n\nE.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)\nFormal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy\nDOI: 10.1051/m2an/2016018\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterMultiLayerEquations1D","page":"Home","title":"TrixiShallowWater.ShallowWaterMultiLayerEquations1D","text":"ShallowWaterMultiLayerEquations1D(gravity, H0, rhos)\n\nMulti-Layer Shallow Water equations (MLSWE) in one space dimension. The equations are given by\n\nleft\n\tbeginaligned\t\t\t\n\t\tpartial_t h_m + partial_x h_mv_m = 0\n\t\tpartial h_mv_m + partial_x h_mv_m^2 = -gh_mpartial_x bigg(b + sumlimits_kgeq jh_k + sumlimits_kmfracrho_krho_mh_k bigg)\n\tendaligned\nright\n\nwhere m = 1 2 M is the layer index and the unknown variables are the water height h and the velocity v. Furthermore, g denotes the gravitational constant, b(x) the bottom topography and rho_m the m-th layer density, that must be chosen such that rho_1 rho_2 rho_M, to ensure that different layers are ordered from top to bottom, with increasing density.\n\nWe use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)\n Introduction to geophyiscal fluid dynamics: physical and numerical aspects\n https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\n ISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterMultiLayerEquations2D","page":"Home","title":"TrixiShallowWater.ShallowWaterMultiLayerEquations2D","text":"ShallowWaterMultiLayerEquations2D(gravity, H0, rhos)\n\nMulti-Layer Shallow Water equations (MLSWE) in two space dimension. The equations are given by\n\nleft\n\tbeginaligned\t\t\t\n\t\tpartial_t h_m + partial_x h_mv_m = 0\n\t\tpartial h_mv1_m + partial_x h_mv1_m^2 + partial_y h_mv1_mv2_m = -gh_mpartial_x bigg(b + sumlimits_kgeq jh_k + sumlimits_kmfracrho_krho_mh_k bigg)\n partial h_mv2_m + partial_x h_mv1_mv2_m + partial_y h_mv2_m^2 = -gh_mpartial_y bigg(b + sumlimits_kgeq jh_k + sumlimits_kmfracrho_krho_mh_k bigg)\n\tendaligned\nright\n\nwhere m = 1 2 M is the layer index and the unknown variables are the water height h and the velocities v1 v2 in both spatial dimensions . Furthermore, g denotes the gravitational constant, b(x) the bottom topography and rho_m the m-th layer density, that must be chosen such that rho_1 rho_2 rho_M, to ensure that different layers are ordered from top to bottom, with increasing density.\n\nWe use a specific formulation of the system, where the pressure term is reformulated as a nonconservative term, which has some benefits for the design of well-balanced schemes.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nAlso, there are two thresholds which prevent numerical problems as well as instabilities. The limiters are used in PositivityPreservingLimiterShallowWater on the water height. threshold_limiter acts as a (small) shift on the initial condition and cutoff before the next time step, whereas threshold_desingularization is used in the velocity desingularization. A third threshold_partially_wet is applied on the water height to define \"partially wet\" elements in IndicatorHennemannGassnerShallowWater, that are then calculated with a pure FV method to ensure well-balancedness. For Float64 no threshold needs to be passed, as default values are defined within the struct. For other number formats threshold_desingularization and threshold_partially_wet must be provided.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nAnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the MLSWE is available in Chapter 12 of the book: - Benoit Cushman-Roisin (2011)\n Introduction to geophyiscal fluid dynamics: physical and numerical aspects\n https://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\n ISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterTwoLayerEquations1D","page":"Home","title":"TrixiShallowWater.ShallowWaterTwoLayerEquations1D","text":"ShallowWaterTwoLayerEquations1D(gravity, H0, rho_upper, rho_lower)\n\nTwo-Layer Shallow Water equations (2LSWE) in one space dimension. The equations are given by\n\nbeginalignat*4\nfracpartialpartial th_upper\n+ fracpartialpartial xleft(h_upper v_1upperright)\n= 0 \nfracpartialpartial tleft(h_upperv_1upperright)\n+ fracpartialpartial xleft(h_upperv_1upper^2 + dfracgh_upper^22right)\n= -gh_upperfracpartialpartial xleft(b+h_lowerright)\nfracpartialpartial th_lower\n+ fracpartialpartial xleft(h_lowerv_1lowerright)\n= 0 \nfracpartialpartial tleft(h_lowerv_1lowerright)\n+ fracpartialpartial xleft(h_lowerv_1lower^2 + dfracgh_lower^22right)\n= -gh_lowerfracpartialpartial xleft(b+dfracrho_upperrho_lowerh_upperright)\nendalignat*\n\nThe unknown quantities of the 2LSWE are the water heights of the {lower} layer h_lower and the {upper} layer h_upper with respective velocities v_1upper and v_1lower. The gravitational constant is denoted by g, the layer densitites by rho_upperand rho_lower and the (possibly) variable bottom topography function b(x). The conservative variable water height h_lower is measured from the bottom topography b and h_upper relative to h_lower, therefore one also defines the total water heights as H_upper = h_upper + h_upper + b and H_lower = h_lower + b.\n\nThe densities must be chosen such that rho_upper rho_lower, to make sure that the heavier fluid rho_lower is in the bottom layer and the lighter fluid rho_upper in the {upper} layer.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the 2LSWE is available in Chapter 12 of the book:\n\nBenoit Cushman-Roisin (2011)\nIntroduction to geophyiscal fluid dynamics: physical and numerical aspects\nhttps://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\nISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShallowWaterTwoLayerEquations2D","page":"Home","title":"TrixiShallowWater.ShallowWaterTwoLayerEquations2D","text":"ShallowWaterTwoLayerEquations2D(gravity, H0, rho_upper, rho_lower)\n\nTwo-Layer Shallow water equations (2LSWE) in two space dimension. The equations are given by\n\nbeginalignat*8\nfracpartialpartial th_upper\n+ fracpartialpartial xleft(h_upper v_1upperright)\n+ fracpartialpartial yleft(h_upper v_2upperright) quad\n= quad 0 \nfracpartialpartial tleft(h_upper v_1upperright)\n+ fracpartialpartial xleft(h_upper v_1upper^2 + fracgh_upper^22right)\n+ fracpartialpartial yleft(h_upper v_1upper v_2upperright) quad\n= -gh_upperfracpartialpartial xleft(b+h_lowerright) \nfracpartialpartial tleft(h_upper v_2upperright)\n+ fracpartialpartial xleft(h_upper v_1upper v_2upperright)\n+ fracpartialpartial yleft(h_upper v_2upper^2 + fracgh_upper^22right)\n= -gh_upperfracpartialpartial yleft(b+h_lowerright)\nfracpartialpartial th_lower\n+ fracpartialpartial xleft(h_lower v_1lowerright)\n+ fracpartialpartial yleft(h_lower v_2lowerright)\n= quad 0 \nfracpartialpartial tleft(h_lower v_1lowerright)\n+ fracpartialpartial xleft(h_lower v_1lower^2 + fracgh_lower^22right)\n+ fracpartialpartial yleft(h_lower v_1lower v_2lowerright)\n= -gh_lowerfracpartialpartial xleft(b+fracrho_upperrho_lower h_upperright)\nfracpartialpartial tleft(h_lower v_2lowerright)\n+ fracpartialpartial xleft(h_lower v_1lower v_2lowerright)\n+ fracpartialpartial yleft(h_lower v_2lower^2 + fracgh_lower^22right)\n= -gh_lowerfracpartialpartial yleft(b+fracrho_upperrho_lower h_upperright)\nendalignat*\n\nThe unknown quantities of the 2LSWE are the water heights of the lower layer h_lower and the upper layer h_upper and the respective velocities in x-direction v_1lower and v_1upper and in y-direction v_2lower and v_2upper. The gravitational constant is denoted by g, the layer densitites by rho_upperand rho_lower and the (possibly) variable bottom topography function by b(x). Conservative variable water height h_lower is measured from the bottom topography b and h_upper relative to h_lower, therefore one also defines the total water heights as H_lower = h_lower + b and H_upper = h_upper + h_lower + b.\n\nThe densities must be chosen such that rho_upper rho_lower, to make sure that the heavier fluid rho_lower is in the bottom layer and the lighter fluid rho_upper in the upper layer.\n\nThe additional quantity H_0 is also available to store a reference value for the total water height that is useful to set initial conditions or test the \"lake-at-rest\" well-balancedness.\n\nThe bottom topography function b(x) is set inside the initial condition routine for a particular problem setup.\n\nIn addition to the unknowns, Trixi currently stores the bottom topography values at the approximation points despite being fixed in time. This is done for convenience of computing the bottom topography gradients on the fly during the approximation as well as computing auxiliary quantities like the total water height H or the entropy variables. This affects the implementation and use of these equations in various ways:\n\nThe flux values corresponding to the bottom topography must be zero.\nThe bottom topography values must be included when defining initial conditions, boundary conditions or source terms.\nTrixi.AnalysisCallback analyzes this variable.\nTrixi's visualization tools will visualize the bottom topography by default.\n\nA good introduction for the 2LSWE is available in Chapter 12 of the book:\n\nBenoit Cushman-Roisin (2011)\nIntroduction to geophyiscal fluid dynamics: physical and numerical aspects\nhttps://www.sciencedirect.com/bookseries/international-geophysics/vol/101/suppl/C\nISBN: 978-0-12-088759-0\n\n\n\n\n\n","category":"type"},{"location":"#TrixiShallowWater.ShieldsStressModel","page":"Home","title":"TrixiShallowWater.ShieldsStressModel","text":"ShieldsStressModel(; m_1, m_2, m_3, k_1, k_2, k_3, theta_c, d_s)\n\nCreate a Shields stress model to compute the sediment discharge q_s based on the generalized formulation from equation (1.2) in the given reference.\n\nThe choice of the real constants m_1, m_2, m_3, k_1, k_2, and k_3 creates different models. For example, setting m_1=0, m_2=1.5, m_3=0, k_1=8, k_2=1, and k_3=0 yields the sedimentation model of Meyer-Peter and Müller as given in MeyerPeterMueller below. The Shields stress represents the ratio of agitating and stabilizing forces in the sediment bed where theta_c is the critical Shields stress for incipient motion and d_s is the mean diameter of the sediment grain size.\n\nE.D. Fernández-Nieto, T.M. de Luna, G. Narbona-Reina and J. de Dieu Zabsonré (2017)\nFormal deduction of the Saint-Venant–Exner model including arbitrarily sloping sediment beds and associated energy\nDOI: 10.1051/m2an/2016018\n\n\n\n\n\n","category":"type"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, AbstractVector, Any, Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,\n equations::ShallowWaterEquationsWetDry2D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, AbstractVector, Any, Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,\n equations::ShallowWaterMultiLayerEquations2D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value. For details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, AbstractVector, Any, Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, normal_direction, x, t, surface_flux_function,\n equations::ShallowWaterTwoLayerEquations2D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterEquationsWetDry1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation, direction, x, t,\n surface_flux_function, equations::ShallowWaterEquationsWetDry2D)\n\nShould be used together with Trixi.TreeMesh.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterExnerEquations1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001)\nShock-Capturing Methods for Free-Surface Shallow Flows\n1st edition\nISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterMultiLayerEquations1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation, direction, x, t,\n surface_flux_function, equations::ShallowWaterMultiLayerEquations2D)\n\nShould be used together with TreeMesh.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.boundary_condition_slip_wall-Tuple{Any, Any, Any, Any, Any, Any, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.boundary_condition_slip_wall","text":"boundary_condition_slip_wall(u_inner, orientation_or_normal, x, t, surface_flux_function,\n equations::ShallowWaterTwoLayerEquations1D)\n\nCreate a boundary state by reflecting the normal velocity component and keep the tangential velocity component unchanged. The boundary water height is taken from the internal value.\n\nFor details see Section 9.2.5 of the book:\n\nEleuterio F. Toro (2001) Shock-Capturing Methods for Free-Surface Shallow Flows 1st edition ISBN 0471987662\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_fjordholm_etal","text":"flux_fjordholm_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterEquationsWetDry1D)\n\nTotal energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.\n\nDetails are available in Eq. (4.1) in the paper:\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_fjordholm_etal","text":"flux_fjordholm_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterEquationsWetDry2D)\n\nTotal energy conservative (mathematical entropy for shallow water equations). When the bottom topography is nonzero this should only be used as a surface flux otherwise the scheme will not be well-balanced. For well-balancedness in the volume flux use flux_wintermeyer_etal.\n\nDetails are available in Eq. (4.1) in the paper:\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_audusse_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_nonconservative_audusse_etal","text":"flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.\n\nThis hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry1D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.\n\nFurther details on the hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_audusse_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_nonconservative_audusse_etal","text":"flux_nonconservative_audusse_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_audusse_etal(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_audusse_etal on the conservative variables.\n\nThis hydrostatic reconstruction ensures that the finite volume numerical fluxes remain well-balanced for discontinuous bottom topographies ShallowWaterEquationsWetDry2D. Should be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_audusse_etal in the surface flux to ensure consistency.\n\nFurther details for the hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_nonconservative_fjordholm_etal","text":"flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.\n\nThis flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.\n\nFurther details for the original finite volume formulation are available in\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\nand for curvilinear 2D case in the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_fjordholm_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_nonconservative_fjordholm_etal","text":"flux_nonconservative_fjordholm_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_fjordholm_etal(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point surface flux discretizing the nonconservative (source) term of that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.\n\nThis flux can be used together with flux_fjordholm_etal at interfaces to ensure entropy conservation and well-balancedness.\n\nFurther details for the original finite volume formulation are available in\n\nUlrik S. Fjordholm, Siddhartha Mishr and Eitan Tadmor (2011) Well-balanced and energy stable schemes for the shallow water equations with discontinuous topography DOI: 10.1016/j.jcp.2011.03.042\n\nand for curvilinear 2D case in the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_nonconservative_wintermeyer_etal","text":"flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry1D.\n\nGives entropy conservation and well-balancedness on both the volume and surface when combined with flux_wintermeyer_etal.\n\nFurther details are available in the papers:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_nonconservative_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_nonconservative_wintermeyer_etal","text":"flux_nonconservative_wintermeyer_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_wintermeyer_etal(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterEquationsWetDry2D.\n\nFor the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.\n\nFurther details are available in the papers:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.48550/arXiv.2306.12699\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterEquationsWetDry1D)\n\nTotal energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterEquationsWetDry2D)\n\nTotal energy conservative (mathematical entropy for shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used as a volume_flux. For the surface_flux either flux_wintermeyer_etal or flux_fjordholm_etal can be used to ensure well-balancedness and entropy conservation.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterTwoLayerEquations1D)\n\nTotal energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.flux_wintermeyer_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.flux_wintermeyer_etal","text":"flux_wintermeyer_etal(u_ll, u_rr, orientation,\n equations::ShallowWaterTwoLayerEquations2D)\nflux_wintermeyer_etal(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterTwoLayerEquations2D)\n\nTotal energy conservative (mathematical entropy for two-layer shallow water equations) split form. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal. To obtain the flux for the two-layer shallow water equations the flux that is described in the paper for the normal shallow water equations is used within each layer.\n\nFurther details are available in Theorem 1 of the paper:\n\nNiklas Wintermeyer, Andrew R. Winters, Gregor J. Gassner and David A. Kopriva (2017) An entropy stable nodal discontinuous Galerkin method for the two dimensional shallow water equations on unstructured curvilinear meshes with discontinuous bathymetry DOI: 10.1016/j.jcp.2017.03.036\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.hydrostatic_reconstruction_audusse_etal-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.hydrostatic_reconstruction_audusse_etal","text":"hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nA particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.hydrostatic_reconstruction_audusse_etal-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.hydrostatic_reconstruction_audusse_etal","text":"hydrostatic_reconstruction_audusse_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterEquationsWetDry2D)\n\nA particular type of hydrostatic reconstruction on the water height to guarantee well-balancedness for a general bottom topography ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details for the hydrostatic reconstruction and its motivation can be found in\n\nEmmanuel Audusse, François Bouchut, Marie-Odile Bristeau, Rupert Klein, and Benoit Perthame (2004) A fast and stable well-balanced scheme with hydrostatic reconstruction for shallow water flows DOI: 10.1137/S1064827503431090\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterEquationsWetDry1D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterEquationsWetDry2D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterExnerEquations1D)\n\nA smooth initial condition used for convergence tests in combination with Trixi.source_terms_convergence_test.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterMultiLayerEquations1D)\n\nA smooth initial condition for a three-layer configuration used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterMultiLayerEquations2D)\n\nA smooth initial condition for a three-layer configuration used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterTwoLayerEquations1D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_convergence_test-Tuple{Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.initial_condition_convergence_test","text":"initial_condition_convergence_test(x, t, equations::ShallowWaterTwoLayerEquations2D)\n\nA smooth initial condition used for convergence tests in combination with source_terms_convergence_test. Constants must be set to rho_upper = 09, rho_lower = 10, g = 100.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_weak_blast_wave-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"Trixi.initial_condition_weak_blast_wave","text":"initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry1D)\n\nA weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.initial_condition_weak_blast_wave-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.initial_condition_weak_blast_wave","text":"initial_condition_weak_blast_wave(x, t, equations::ShallowWaterEquationsWetDry2D)\n\nA weak blast wave discontinuity useful for testing, e.g., total energy conservation. Note for the shallow water equations to the total energy acts as a mathematical entropy function.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterEquationsWetDry2D)\n\nSource terms used for convergence tests in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\nThis manufactured solution source term is specifically designed for the bottom topography function b(x,y) = 2 + 0.5 * sin(sqrt(2)*pi*x) + 0.5 * sin(sqrt(2)*pi*y) as defined in initial_condition_convergence_test.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterMultiLayerEquations1D)\n\nSource terms used for convergence tests with a three-layer configuration in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterMultiLayerEquations2D)\n\nSource terms used for convergence tests with a three-layer configuration in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterTwoLayerEquations1D)\n\nSource terms used for convergence tests in combination with initial_condition_convergence_test (and Trixi.BoundaryConditionDirichlet in non-periodic domains).\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Tuple{Any, Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterTwoLayerEquations2D)\n\nSource terms used for convergence tests in combination with initial_condition_convergence_test.\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Union{Tuple{S}, Tuple{T}, Tuple{Any, Any, Any, ShallowWaterExnerEquations1D{T, S, GrassModel{T}}}} where {T, S}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterExnerEquations1D{T, S, GrassModel{T}}) where {T, S}\n\nSource terms used for convergence tests in combination with Trixi.initial_condition_convergence_test when using the the GrassModel model.\n\nTo use this source term the equations must be set to:\n\nequations = ShallowWaterExnerEquations1D(gravity_constant = 10.0, rho_f = 0.5,\n rho_s = 1.0, porosity = 0.5,\n friction = ManningFriction(n = 0.0),\n sediment_model = GrassModel(A_g = 0.01)\n\n\n\n\n\n","category":"method"},{"location":"#Trixi.source_terms_convergence_test-Union{Tuple{S}, Tuple{T}, Tuple{Any, Any, Any, ShallowWaterExnerEquations1D{T, S, ShieldsStressModel{T}}}} where {T, S}","page":"Home","title":"Trixi.source_terms_convergence_test","text":"source_terms_convergence_test(u, x, t, equations::ShallowWaterExnerEquations1D{T, S, ShieldsStressModel{T}}) where {T, S}\n\nSource terms used for convergence tests in combination with Trixi.initial_condition_convergence_test when using the MeyerPeterMueller model.\n\nTo use this source term the equations must be set to:\n\nequations = ShallowWaterExnerEquations1D(gravity_constant = 10.0, rho_f = 0.5,\n rho_s = 1.0, porosity = 0.5,\n friction = ManningFriction(n = 0.01),\n sediment_model = MeyerPeterMueller(theta_c = 0.0,\n d_s = 1e-3))\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.MeyerPeterMueller-Tuple{}","page":"Home","title":"TrixiShallowWater.MeyerPeterMueller","text":"MeyerPeterMueller(; theta_c, d_s)\n\nCreates a Meyer-Peter-Mueller model to compute the sediment discharge q_s with the critical Shields stress theta_c and the grain diameter d_s.\n\nAn overview of different formulations to compute the sediment discharge can be found in:\n\nM.J. Castro Díaz, E.D. Fernández-Nieto, A.M. Ferreiro (2008)\nSediment transport models in Shallow Water equations and numerical approach by high order finite volume methods\nDOI:10.1016/j.compfluid.2007.07.017\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.dissipation_roe-Tuple{Any, Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.dissipation_roe","text":"dissipation_roe(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterExnerEquations1D)\n\nRoe-type dissipation term for the ShallowWaterExnerEquations1D with an approximate Roe average for the sediment discharge q_s.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.eachlayer-Tuple{TrixiShallowWater.AbstractShallowWaterMultiLayerEquations}","page":"Home","title":"TrixiShallowWater.eachlayer","text":"eachlayer(equations::AbstractShallowWaterMultiLayerEquations)\n\nReturn an iterator over the indices that specify the location in relevant data structures for the layers in AbstractShallowWaterMultiLayerEquations.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_ersing_etal","text":"flux_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations1D)\n\nEntropy conservative split form, without the hydrostatic pressure. This flux should be used together with the nonconservative flux_nonconservative_ersing_etal to create a scheme that is entropy conservative and well-balanced.\n\nTo obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_ersing_etal","text":"flux_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations1D)\n\nTotal energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.\n\nTo obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_ersing_etal","text":"flux_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations2D)\nflux_ersing_etal(u_ll, u_rr, normal_direction::AbstractVector,\n equations::ShallowWaterMultiLayerEquations2D)\n\nTotal energy conservative (mathematical entropy for MLSWE) split form, without the hydrostatic pressure. When the bottom topography is nonzero this scheme will be well-balanced when used with the nonconservative flux_nonconservative_ersing_etal.\n\nTo obtain an entropy stable formulation the surface_flux can be set as FluxPlusDissipation(flux_ersing_etal, DissipationLocalLaxFriedrichs()), flux_nonconservative_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_es_ersing_etal-Tuple{Any, Any, Any, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_es_ersing_etal","text":"flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterTwoLayerEquations2D)\n\nEntropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables. \n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_es_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_es_ersing_etal","text":"flux_es_ersing_etal(u_ll, u_rr, orientation_or_normal_direction,\n equations::ShallowWaterTwoLayerEquations1D)\n\nEntropy stable surface flux for the two-layer shallow water equations. Uses the entropy conservative flux_wintermeyer_etal and adds a Lax-Friedrichs type dissipation dependent on the jump of entropy variables. \n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_chen_noelle","text":"flux_nonconservative_chen_noelle(u_ll, u_rr,\n orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.\n\nShould be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.\n\nFurther details on the hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_chen_noelle","text":"flux_nonconservative_chen_noelle(u_ll, u_rr,\n orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\nflux_nonconservative_chen_noelle(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterEquationsWetDry2D)\n\nNon-symmetric two-point surface flux that discretizes the nonconservative (source) term. The discretization uses the hydrostatic_reconstruction_chen_noelle on the conservative variables.\n\nShould be used together with Trixi.FluxHydrostaticReconstruction and hydrostatic_reconstruction_chen_noelle in the surface flux to ensure consistency.\n\nFurther details on the hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation, equations::ShallowWaterExnerEquations1D)\n\nNon-symmetric path-conservative two-point flux discretizing the nonconservative terms of the ShallowWaterExnerEquations1D which consists of the hydrostatic pressure of the fluid layer and an additional pressure contribution from the sediment layer to obtain an entropy inequality.\n\nThis non-conservative flux should be used together with flux_ersing_etal to create a scheme that is entropy conservative and well-balanced.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterTwoLayerEquations1D)\n\nNon-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations1D.\n\nWhen the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterMultiLayerEquations2D)\nflux_nonconservative_ersing_etal(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterMultiLayerEquations2D)\n\nNon-symmetric path-conservative two-point flux discretizing the nonconservative (source) term that contains the gradients of the bottom topography and waterheights from the coupling between layers and the nonconservative pressure formulation ShallowWaterMultiLayerEquations2D.\n\nWhen the bottom topography is nonzero this scheme will be well-balanced when used with flux_ersing_etal.\n\nIn the two-layer setting this combination is equivalent to the fluxes in:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations1D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterTwoLayerEquations1D)\n\nNon-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations1D and an additional term that couples the momentum of both layers. \n\nThis is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal. \n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.flux_nonconservative_ersing_etal-Tuple{Any, Any, Integer, ShallowWaterTwoLayerEquations2D}","page":"Home","title":"TrixiShallowWater.flux_nonconservative_ersing_etal","text":"flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterTwoLayerEquations2D)\nflux_nonconservative_ersing_etal(u_ll, u_rr,\n normal_direction::AbstractVector,\n equations::ShallowWaterTwoLayerEquations2D)\n\nwarning: Experimental code\n\n\nThis numerical flux is experimental and may change in any future release.\n\nNon-symmetric path-conservative two-point volume flux discretizing the nonconservative (source) term that contains the gradient of the bottom topography ShallowWaterTwoLayerEquations2D and an additional term that couples the momentum of both layers. \n\nThis is a modified version of flux_nonconservative_wintermeyer_etal that gives entropy conservation and well-balancedness in both the volume and surface when combined with flux_wintermeyer_etal.\n\nFor further details see:\n\nPatrick Ersing, Andrew R. Winters (2023) An entropy stable discontinuous Galerkin method for the two-layer shallow water equations on curvilinear meshes DOI: 10.1007/s10915-024-02451-2\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_chen_noelle-Tuple{Any, Any, ShallowWaterEquationsWetDry1D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_chen_noelle","text":"hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry1D)\n\nA particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry1D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_chen_noelle-Tuple{Any, Any, ShallowWaterEquationsWetDry2D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_chen_noelle","text":"hydrostatic_reconstruction_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquationsWetDry2D)\n\nA particular type of hydrostatic reconstruction of the water height to guarantee well-balancedness for a general bottom topography of the ShallowWaterEquationsWetDry2D. The reconstructed solution states u_ll_star and u_rr_star variables are then used to evaluate the surface numerical flux at the interface. The key idea is a linear reconstruction of the bottom and water height at the interfaces using subcells. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_ersing_etal-Tuple{Any, Any, ShallowWaterMultiLayerEquations1D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_ersing_etal","text":"hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations1D)\n\nA particular hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations1D. The reconstructed solution states u_ll_star and u_rr_star are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nwarning: Experimental code\nThis is an experimental feature and may change in future releases.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.hydrostatic_reconstruction_ersing_etal-Tuple{Any, Any, ShallowWaterMultiLayerEquations2D}","page":"Home","title":"TrixiShallowWater.hydrostatic_reconstruction_ersing_etal","text":"hydrostatic_reconstruction_ersing_etal(u_ll, u_rr, equations::ShallowWaterMultiLayerEquations2D)\n\nA particular type of hydrostatic reconstruction of the water height and bottom topography to guarantee well-balancedness in the presence of wet/dry transitions and entropy stability for the ShallowWaterMultiLayerEquations2D. The reconstructed solution states u_ll_star and u_rr_star variables are used to evaluate the surface numerical flux at the interface. The key idea is a piecewise linear reconstruction of the bottom topography and water height interfaces using subcells, where the bottom topography is allowed to be discontinuous. Use in combination with the generic numerical flux routine Trixi.FluxHydrostaticReconstruction.\n\nwarning: Experimental code\nThis is an experimental feature and may change in future releases.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.min_max_speed_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry1D}","page":"Home","title":"TrixiShallowWater.min_max_speed_chen_noelle","text":"min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquations1D)\n\nThe approximated speeds for the HLL type numerical flux used by Chen and Noelle for their hydrostatic reconstruction. As they state in the paper, these speeds are chosen for the numerical flux to ensure positivity and to satisfy an entropy inequality.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.min_max_speed_chen_noelle-Tuple{Any, Any, Integer, ShallowWaterEquationsWetDry2D}","page":"Home","title":"TrixiShallowWater.min_max_speed_chen_noelle","text":"min_max_speed_chen_noelle(u_ll, u_rr, orientation::Integer,\n equations::ShallowWaterEquations2D)\nmin_max_speed_chen_noelle(u_ll, u_rr, normal_direction::AbstractVector,\n equations::ShallowWaterEquations2D)\n\nSpecial estimate of the minimal and maximal wave speed of the shallow water equations for the left and right states u_ll, u_rr. These approximate speeds are used for the HLL-type numerical flux flux_hll_chen_noelle. These wave speed estimates together with a particular hydrostatic reconstruction technique guarantee that the numerical flux is positive and satisfies an entropy inequality.\n\nFurther details on this hydrostatic reconstruction and its motivation can be found in the reference below. The definition of the wave speeds are given in Equation (2.20).\n\nGuoxian Chen and Sebastian Noelle (2017) A new hydrostatic reconstruction scheme based on subcell reconstructions DOI:10.1137/15M1053074\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.nlayers-Union{Tuple{TrixiShallowWater.AbstractShallowWaterMultiLayerEquations{NDIMS, NVARS, NLAYERS}}, Tuple{NLAYERS}, Tuple{NVARS}, Tuple{NDIMS}} where {NDIMS, NVARS, NLAYERS}","page":"Home","title":"TrixiShallowWater.nlayers","text":"nlayers(equations::AbstractShallowWaterMultiLayerEquations)\n\nRetrieve the number of layers from an equation instance of the AbstractShallowWaterMultiLayerEquations.\n\n\n\n\n\n","category":"method"},{"location":"#TrixiShallowWater.source_term_bottom_friction-Tuple{Any, Any, Any, ShallowWaterExnerEquations1D}","page":"Home","title":"TrixiShallowWater.source_term_bottom_friction","text":"source_term_bottom_friction(u, x, t, equations::ShallowWaterExnerEquations1D)\n\nSource term that accounts for the bottom friction in the ShallowWaterExnerEquations1D. The actual friction law is determined through the friction model in equations.friction.\n\n\n\n\n\n","category":"method"}] }