BG_Flood  0.8
Documentation (Work-in-progress)
Reimann.cu File Reference
#include "Reimann.h"
Include dependency graph for Reimann.cu:

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 __global__ void UpdateButtingerXGPU (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float *dtmax, float *zb)
 
template __global__ void UpdateButtingerXGPU (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double *dtmax, double *zb)
 
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 __host__ void UpdateButtingerXCPU (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float *dtmax, float *zb)
 
template __host__ void UpdateButtingerXCPU (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double *dtmax, double *zb)
 
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 __global__ void UpdateButtingerYGPU (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float *dtmax, float *zb)
 
template __global__ void UpdateButtingerYGPU (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double *dtmax, double *zb)
 
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 __host__ void UpdateButtingerYCPU (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float *dtmax, float *zb)
 
template __host__ void UpdateButtingerYCPU (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double *dtmax, double *zb)
 
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 >
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() [1/3]

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

◆ UpdateButtingerXCPU() [2/3]

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

◆ UpdateButtingerXCPU() [3/3]

template<class T >
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() [1/3]

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

◆ UpdateButtingerXGPU() [2/3]

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

◆ UpdateButtingerXGPU() [3/3]

template<class T >
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() [1/3]

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

◆ UpdateButtingerYCPU() [2/3]

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

◆ UpdateButtingerYCPU() [3/3]

template<class T >
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() [1/3]

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

◆ UpdateButtingerYGPU() [2/3]

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

◆ UpdateButtingerYGPU() [3/3]

template<class T >
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.