From 3587d39711dde8f361dbfb0207f595cac89cf6d5 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Wed, 19 Jun 2024 08:33:52 +0000 Subject: [PATCH] build based on fd8096a --- dev/.documenter-siteinfo.json | 2 +- dev/index.html | 92 +++++++++++++++++------------------ 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 5a018ff..66c9a81 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-22T06:46:18","documenter_version":"1.4.1"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-06-19T08:33:48","documenter_version":"1.4.1"}} \ No newline at end of file diff --git a/dev/index.html b/dev/index.html index 5ca9b4f..5ea5a4f 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,31 +1,31 @@ -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.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.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.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.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.ShallowWaterMultiLayerEquations1DType
ShallowWaterMultiLayerEquations1D(gravity, H0, rhos)

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

\[\left\{ +\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.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 \\ @@ -38,7 +38,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 @@ -63,79 +63,79 @@ &&+ \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
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::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
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::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_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
-                                 equations::ShallowWaterEquationsWetDry1D)

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

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
Trixi.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                  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_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 equations::ShallowWaterEquationsWetDry1D)

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

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
Trixi.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
                                  equations::ShallowWaterEquationsWetDry2D)
 flux_nonconservative_ersing_etal(u_ll, u_rr,
                                  normal_direction_ll::AbstractVector,
                                  normal_direction_average::AbstractVector,
-                                 equations::ShallowWaterEquationsWetDry2D)
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 ShallowWaterEquationsWetDry2D.

On curvilinear meshes, this nonconservative flux depends on both the contravariant vector (normal direction) at the current node and the averaged one. This is different from numerical fluxes used to discretize conservative terms.

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
Trixi.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
Trixi.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 equations::ShallowWaterEquationsWetDry2D)
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 ShallowWaterEquationsWetDry2D.

On curvilinear meshes, this nonconservative flux depends on both the contravariant vector (normal direction) at the current node and the averaged one. This is different from numerical fluxes used to discretize conservative terms.

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
Trixi.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
Trixi.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
Trixi.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
Trixi.flux_nonconservative_ersing_etalMethod
flux_nonconservative_ersing_etal(u_ll, u_rr, orientation::Integer,
+                                 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
Trixi.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
Trixi.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
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 contains additional terms compared to flux_nonconservative_wintermeyer_etal that account for possible discontinuities in the bottom topography function. Thus, this flux should be used in general at interfaces. For flux differencing volume terms, flux_nonconservative_wintermeyer_etal is analytically equivalent but slightly cheaper.

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::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
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 contains additional terms compared to flux_nonconservative_wintermeyer_etal that account for possible discontinuities in the bottom topography function. Thus, this flux should be used in general at interfaces. For flux differencing volume terms, flux_nonconservative_wintermeyer_etal is analytically equivalent but slightly cheaper.

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.

On curvilinear meshes, this nonconservative flux depends on both the contravariant vector (normal direction) at the current node and the averaged one. This is different from numerical fluxes used to discretize conservative terms.

This contains additional terms compared to flux_nonconservative_wintermeyer_etal that account for possible discontinuities in the bottom topography function. Thus, this flux should be used in general at interfaces. For flux differencing volume terms, flux_nonconservative_wintermeyer_etal is analytically equivalent but slightly cheaper.

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.

Further details are available in the paper:#include("numerical_fluxes.jl")

  • 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::ShallowWaterEquationsWetDry2D)

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

On curvilinear meshes, this nonconservative flux depends on both the contravariant vector (normal direction) at the current node and the averaged one. This is different from numerical fluxes used to discretize conservative terms.

This contains additional terms compared to flux_nonconservative_wintermeyer_etal that account for possible discontinuities in the bottom topography function. Thus, this flux should be used in general at interfaces. For flux differencing volume terms, flux_nonconservative_wintermeyer_etal is analytically equivalent but slightly cheaper.

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.

Further details are available in the paper:#include("numerical_fluxes.jl")

  • 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::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.

On curvilinear meshes, this nonconservative flux depends on both the contravariant vector (normal direction) at the current node and the averaged one. This is different from numerical fluxes used to discretize conservative terms.

Further details are available 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_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. The surface_flux should still use, e.g., flux_fjordholm_etal.

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. The surface_flux should still use, e.g., flux_fjordholm_etal.

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::ShallowWaterEquationsWetDry2D)

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

On curvilinear meshes, this nonconservative flux depends on both the contravariant vector (normal direction) at the current node and the averaged one. This is different from numerical fluxes used to discretize conservative terms.

Further details are available 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_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. The surface_flux should still use, e.g., flux_fjordholm_etal.

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. The surface_flux should still use, e.g., flux_fjordholm_etal.

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
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)

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::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
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)

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.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::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.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