|
| template<int NumberOfDofs, int NumberOfUnknowns, int NumberOfAuxiliaryVariables> |
| static GPUCallableMethod void | computeFirstDerivatives (double *const __restrict__ oldQWithHalo) InlineMethod |
| | Partial derivative calculation:
|
| |
| template<int NumberOfDofs, int NumberOfUnknowns, int NumberOfAuxiliaryVariables> |
| static GPUCallableMethod void | extrapolateHalo (double *const __restrict__ oldQWithHalo) InlineMethod |
| |
| static GPUCallableMethod double | fWave (const double *const __restrict__ QR, const double *const __restrict__ QL, const double *const __restrict__ FR, const double *const __restrict__ FL, const double *const __restrict__ LR, const double *const __restrict__ LL, const tarch::la::Vector< Dimensions, double > &xR, const tarch::la::Vector< Dimensions, double > &xL, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ APDQ, double *const __restrict__ AMDQ) InlineMethod |
| | F-Wave Riemann Solver for the Shallow Water Equation.
|
| |
| static GPUCallableMethod double | hllem (const double *const __restrict__ QR, const double *const __restrict__ QL, const double *const __restrict__ FR, const double *const __restrict__ FL, const double *const __restrict__ LR, const double *const __restrict__ LL, const tarch::la::Vector< Dimensions, double > &xR, const tarch::la::Vector< Dimensions, double > &xL, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ APDQ, double *const __restrict__ AMDQ) InlineMethod |
| | An new formulation of the HLLEM Riemann solver for the Shallow Water Equation with support for inundation.
|
| |
| static GPUCallableInlineMethod void | eigenvalues (const double *const __restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ L) InlineMethod |
| |
| static GPUCallableInlineMethod double | maxEigenvalue (const double *const __restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal) InlineMethod |
| |
| static GPUCallableInlineMethod void | maxEigenvalue (const double *const __restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ maxEigenvalue) InlineMethod |
| |
| static GPUCallableInlineMethod void | flux (const double *const __restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ F) InlineMethod |
| |
| static GPUCallableInlineMethod void | nonconservativeProduct (const double *const __restrict__ Q, const double *const __restrict__ deltaQ, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ BTimesDeltaQ) InlineMethod |
| |
template<int NumberOfDofs, int NumberOfUnknowns, int NumberOfAuxiliaryVariables>
| static GPUCallableMethod void applications::exahype2::swe::computeFirstDerivatives |
( |
double *const __restrict__ |
oldQWithHalo | ) |
|
|
static |
Partial derivative calculation:
Backward difference for single derivatives. Central difference for double derivatives.
Only numerator of the finite difference scheme is calculated here.
The division by the denominator takes place in the ncp function after retrieval from the average value.
For single derivatives, one can change the numerical scheme to forward, central or backward by using appropriate neighbour cell values defined above. For double derivatives, only central difference can be used with the variables defined above.
| static GPUCallableMethod double applications::exahype2::swe::fWave |
( |
const double *const __restrict__ |
QR, |
|
|
const double *const __restrict__ |
QL, |
|
|
const double *const __restrict__ |
FR, |
|
|
const double *const __restrict__ |
FL, |
|
|
const double *const __restrict__ |
LR, |
|
|
const double *const __restrict__ |
LL, |
|
|
const tarch::la::Vector< Dimensions, double > & |
xR, |
|
|
const tarch::la::Vector< Dimensions, double > & |
xL, |
|
|
const tarch::la::Vector< Dimensions, double > & |
h, |
|
|
const double |
t, |
|
|
const double |
dt, |
|
|
const int |
normal, |
|
|
double *const __restrict__ |
APDQ, |
|
|
double *const __restrict__ |
AMDQ |
|
) |
| |
|
static |
F-Wave Riemann Solver for the Shallow Water Equation.
Note: This solver does not support inundation. For dry cells, we assume an infinitely high solid wall at the shore-line, which is equivalent to reflecting boundary conditions. Thus no water is able to pass the shoreline, and we have to assure that the particle velocity at the boundary is zero.
Literature:
@article{bale2002wave, title={A wave propagation method for conservation laws and balance laws with spatially varying flux functions}, author={Bale, D.S. and LeVeque, R.J. and Mitran, S. and Rossmanith, J.A.}, journal={SIAM Journal on Scientific Computing}, volume={24}, number={3}, pages={955–978}, year={2002}, publisher={Citeseer}}
@book{leveque2002finite, Author = {LeVeque, R. J.}, Date-Added = {2011-09-13 14:09:31 +0000}, Date-Modified = {2011-10-31 09:46:40 +0000}, Publisher = {Cambridge University Press}, Title = {Finite Volume Methods for Hyperbolic Problems}, Volume = {31}, Year = {2002}}
@webpage{levequeclawpack, Author = {LeVeque, R. J.}, Lastchecked = {January, 05, 2011}, Title = {Clawpack Sofware}, Url = {https://github.com/clawpack/clawpack-4.x/blob/master/geoclaw/2d/lib}}
| static GPUCallableMethod double applications::exahype2::swe::hllem |
( |
const double *const __restrict__ |
QR, |
|
|
const double *const __restrict__ |
QL, |
|
|
const double *const __restrict__ |
FR, |
|
|
const double *const __restrict__ |
FL, |
|
|
const double *const __restrict__ |
LR, |
|
|
const double *const __restrict__ |
LL, |
|
|
const tarch::la::Vector< Dimensions, double > & |
xR, |
|
|
const tarch::la::Vector< Dimensions, double > & |
xL, |
|
|
const tarch::la::Vector< Dimensions, double > & |
h, |
|
|
const double |
t, |
|
|
const double |
dt, |
|
|
const int |
normal, |
|
|
double *const __restrict__ |
APDQ, |
|
|
double *const __restrict__ |
AMDQ |
|
) |
| |
|
static |
An new formulation of the HLLEM Riemann solver for the Shallow Water Equation with support for inundation.
Literature:
@article{DUMBSER2016275, title = {A new efficient formulation of the HLLEM Riemann solver for general conservative and non-conservative hyperbolic systems}, journal = {Journal of Computational Physics}, volume = {304}, pages = {275-319}, year = {2016}, issn = {0021-9991}, doi = {https://doi.org/10.1016/j.jcp.2015.10.014}, url = {https://www.sciencedirect.com/science/article/pii/S0021999115006786}, author = {Michael Dumbser and Dinshaw S. Balsara}}
@article{KURGANOV, title = {A Second-Order Well-Balanced Positivity Preserving Central-Upwind Scheme for the Saint-Venant System}, year = {2007}, month = {03}, pages = {}, volume = {5}, journal = {Communications in mathematical sciences}, author = {Kurganov, Alexander and Petrova, G.}, doi = {10.4310/CMS.2007.v5.n1.a6}}