BG_Flood  0.8
Documentation (Work-in-progress)
Reimann.h File Reference
#include "General.h"
#include "Param.h"
#include "Arrays.h"
#include "Forcing.h"
#include "MemManagement.h"
#include "Util_CPU.h"
Include dependency graph for Reimann.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<class T >
__global__ void UpdateButtingerXGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T *dtmax, T *zb)
 "Adaptive" second-order hydrostatic reconstruction. GPU version for t X-axis More...
 
template<class T >
__host__ void UpdateButtingerXCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T *dtmax, T *zb)
 "Adaptive" second-order hydrostatic reconstruction. CPU version for the X-axis More...
 
template<class T >
__global__ void UpdateButtingerYGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T *dtmax, T *zb)
 "Adaptive" second-order hydrostatic reconstruction. GPU version for the Y-axis More...
 
template<class T >
__host__ void UpdateButtingerYCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T *dtmax, T *zb)
 "Adaptive" second-order hydrostatic reconstruction. CPU version for the Y-axis More...
 
template<class T >
__host__ __device__ T hllc (T g, T delta, T epsi, T CFL, T cm, T fm, T hm, T hp, T um, T up, T &fh, T &fq)
 Calculate the Harten-Lax-van Leer-contact (HLLC) flux. More...
 

Function Documentation

◆ hllc()

template<class T >
__host__ __device__ T hllc ( g,
delta,
epsi,
CFL,
cm,
fm,
hm,
hp,
um,
up,
T &  fh,
T &  fq 
)

Calculate the Harten-Lax-van Leer-contact (HLLC) flux.

Description

This an implementation of the HLLC solver.

Where does this come from:

This scheme was adapted/modified from the Basilisk source code. http://basilisk.fr/src/riemann.h

Reference: (Basilisk reference the scheme from Kurganov reference below) Kurganov, A., & Levy, D. (2002). Central-upwind schemes for the Saint-Venant system. Mathematical Modelling and Numerical Analysis, 36(3), 397-425.

◆ UpdateButtingerXCPU()

template<class T >
__host__ void UpdateButtingerXCPU ( Param  XParam,
BlockP< T >  XBlock,
EvolvingP< T >  XEv,
GradientsP< T >  XGrad,
FluxP< T >  XFlux,
T *  dtmax,
T *  zb 
)

"Adaptive" second-order hydrostatic reconstruction. CPU version for the X-axis

Description

This function computes the flux term at the cell interface using the hydrostatic reconstruction from Buttinger et al (2019). This reconstruction is safe for steep slope with thin water depth and is well-balanced meaning that it conserve the "lake-at-rest" states.

For optimising the code on CPU and GPU there are 4 versions of this function: X or Y and CPU or GPU

Where does this come from:

This scheme was adapted/modified from the Basilisk / B-Flood source code. I (CypB) changed the zr and zl term back to the Audusse type reconstruction http://basilisk.fr/sandbox/b-flood/saint-venant-topo.h

Reference: Kirstetter, G., Delestre, O., Lagree, P.-Y., Popinet, S., and Josserand, C.: B-flood 1.0: an open-source Saint-Venant model for flash flood simulation using adaptive refinement, Geosci. Model Dev. Discuss. [preprint], https://doi.org/10.5194/gmd-2021-15, in review, 2021.* Buttinger-Kreuzhuber, A., Horvath, Z., Noelle, S., Bloschl, G., and Waser, J.: A fast second-order shallow water scheme on two-dimensional structured grids over abrupt topography, Advances in water resources, 127, 89-108, 2019.

◆ UpdateButtingerXGPU()

template<class T >
__global__ void UpdateButtingerXGPU ( Param  XParam,
BlockP< T >  XBlock,
EvolvingP< T >  XEv,
GradientsP< T >  XGrad,
FluxP< T >  XFlux,
T *  dtmax,
T *  zb 
)

"Adaptive" second-order hydrostatic reconstruction. GPU version for t X-axis

Description

This function computes the flux term at the cell interface using the hydrostatic reconstruction from Buttinger et al (2019). This reconstruction is safe for steep slope with thin water depth and is well-balanced meaning that it conserve the "lake-at-rest" states.

For optimising the code on CPU and GPU there are 4 versions of this function: X or Y and CPU or GPU

Where does this come from:

This scheme was adapted/modified from the Basilisk / B-Flood source code. I (CypB) changed the zr and zl term back to the Audusse type reconstruction http://basilisk.fr/sandbox/b-flood/saint-venant-topo.h

Reference: Kirstetter, G., Delestre, O., Lagree, P.-Y., Popinet, S., and Josserand, C.: B-flood 1.0: an open-source Saint-Venant model for flash flood simulation using adaptive refinement, Geosci. Model Dev. Discuss. [preprint], https://doi.org/10.5194/gmd-2021-15, in review, 2021.* Buttinger-Kreuzhuber, A., Horvath, Z., Noelle, S., Bloschl, G., and Waser, J.: A fast second-order shallow water scheme on two-dimensional structured grids over abrupt topography, Advances in water resources, 127, 89-108, 2019.

◆ UpdateButtingerYCPU()

template<class T >
__host__ void UpdateButtingerYCPU ( Param  XParam,
BlockP< T >  XBlock,
EvolvingP< T >  XEv,
GradientsP< T >  XGrad,
FluxP< T >  XFlux,
T *  dtmax,
T *  zb 
)

"Adaptive" second-order hydrostatic reconstruction. CPU version for the Y-axis

Description

This function computes the flux term at the cell interface using the hydrostatic reconstruction from Buttinger et al (2019). This reconstruction is safe for steep slope with thin water depth and is well-balanced meaning that it conserve the "lake-at-rest" states.

For optimising the code on CPU and GPU there are 4 versions of this function: X or Y and CPU or GPU

Where does this come from:

This scheme was adapted/modified from the Basilisk / B-Flood source code. I (CypB) changed the zr and zl term back to the Audusse type reconstruction http://basilisk.fr/sandbox/b-flood/saint-venant-topo.h

Reference: Kirstetter, G., Delestre, O., Lagree, P.-Y., Popinet, S., and Josserand, C.: B-flood 1.0: an open-source Saint-Venant model for flash flood simulation using adaptive refinement, Geosci. Model Dev. Discuss. [preprint], https://doi.org/10.5194/gmd-2021-15, in review, 2021.* Buttinger-Kreuzhuber, A., Horvath, Z., Noelle, S., Bloschl, G., and Waser, J.: A fast second-order shallow water scheme on two-dimensional structured grids over abrupt topography, Advances in water resources, 127, 89-108, 2019.

◆ UpdateButtingerYGPU()

template<class T >
__global__ void UpdateButtingerYGPU ( Param  XParam,
BlockP< T >  XBlock,
EvolvingP< T >  XEv,
GradientsP< T >  XGrad,
FluxP< T >  XFlux,
T *  dtmax,
T *  zb 
)

"Adaptive" second-order hydrostatic reconstruction. GPU version for the Y-axis

Description

This function computes the flux term at the cell interface using the hydrostatic reconstruction from Buttinger et al (2019). This reconstruction is safe for steep slope with thin water depth and is well-balanced meaning that it conserve the "lake-at-rest" states.

For optimising the code on CPU and GPU there are 4 versions of this function: X or Y and CPU or GPU

Where does this come from:

This scheme was adapted/modified from the Basilisk / B-Flood source code. I (CypB) changed the zr and zl term back to the Audusse type reconstruction http://basilisk.fr/sandbox/b-flood/saint-venant-topo.h

Reference: Kirstetter, G., Delestre, O., Lagree, P.-Y., Popinet, S., and Josserand, C.: B-flood 1.0: an open-source Saint-Venant model for flash flood simulation using adaptive refinement, Geosci. Model Dev. Discuss. [preprint], https://doi.org/10.5194/gmd-2021-15, in review, 2021.* Buttinger-Kreuzhuber, A., Horvath, Z., Noelle, S., Bloschl, G., and Waser, J.: A fast second-order shallow water scheme on two-dimensional structured grids over abrupt topography, Advances in water resources, 127, 89-108, 2019.