|
HyPar
1.0
Finite-Difference Hyperbolic-Parabolic PDE Solver on Cartesian Grids
|
Contains functions to compute the upwind flux at grid interfaces for the 2D shallow water equations. More...
#include <stdlib.h>#include <math.h>#include <basic.h>#include <arrayfunctions.h>#include <mathfunctions.h>#include <matmult_native.h>#include <physicalmodels/shallowwater2d.h>#include <hypar.h>Go to the source code of this file.
Functions | |
| int | ShallowWater2DUpwindRoe (double *fI, double *fL, double *fR, double *uL, double *uR, double *u, int dir, void *s, double t) |
| int | ShallowWater2DUpwindLLF (double *fI, double *fL, double *fR, double *uL, double *uR, double *u, int dir, void *s, double t) |
Contains functions to compute the upwind flux at grid interfaces for the 2D shallow water equations.
Definition in file ShallowWater2DUpwind.c.
| int ShallowWater2DUpwindRoe | ( | double * | fI, |
| double * | fL, | ||
| double * | fR, | ||
| double * | uL, | ||
| double * | uR, | ||
| double * | u, | ||
| int | dir, | ||
| void * | s, | ||
| double | t | ||
| ) |
Roe's upwinding scheme.
\begin{equation} {\bf f}_{j+1/2} = \frac{1}{2}\left[ {\bf f}_{j+1/2}^L + {\bf f}_{j+1/2}^R - \left| A\left({\bf u}_{j+1/2}^L,{\bf u}_{j+1/2}^R\right) \right| \left( {\bf u}_{j+1/2}^R - {\bf u}_{j+1/2}^L \right)\right] \end{equation}
This upwinding scheme is modified for the balanced discretization of the 2D shallow water equations. See the following reference:
| fI | Computed upwind interface flux |
| fL | Left-biased reconstructed interface flux |
| fR | Right-biased reconstructed interface flux |
| uL | Left-biased reconstructed interface solution |
| uR | Right-biased reconstructed interface solution |
| u | Cell-centered solution |
| dir | Spatial dimension |
| s | Solver object of type HyPar |
| t | Current solution time |
Definition at line 31 of file ShallowWater2DUpwind.c.
| int ShallowWater2DUpwindLLF | ( | double * | fI, |
| double * | fL, | ||
| double * | fR, | ||
| double * | uL, | ||
| double * | uR, | ||
| double * | u, | ||
| int | dir, | ||
| void * | s, | ||
| double | t | ||
| ) |
Characteristic-based local Lax-Friedrich upwinding scheme.
\begin{align} \alpha_{j+1/2}^{k,L} &= \sum_{k=1}^2 {\bf l}_{j+1/2}^k \cdot {\bf f}_{j+1/2}^{k,L}, \\ \alpha_{j+1/2}^{k,R} &= \sum_{k=1}^2 {\bf l}_{j+1/2}^k \cdot {\bf f}_{j+1/2}^{k,R}, \\ v_{j+1/2}^{k,L} &= \sum_{k=1}^2 {\bf l}_{j+1/2}^k \cdot {\bf u}_{j+1/2}^{k,L}, \\ v_{j+1/2}^{k,R} &= \sum_{k=1}^2 {\bf l}_{j+1/2}^k \cdot {\bf u}_{j+1/2}^{k,R}, \\ \alpha_{j+1/2}^k &= \frac{1}{2}\left[ \alpha_{j+1/2}^{k,L} + \alpha_{j+1/2}^{k,R} - \left(\max_{\left[j,j+1\right]} \lambda\right) \left( v_{j+1/2}^{k,R} - v_{j+1/2}^{k,L} \right) \right], \\ {\bf f}_{j+1/2} &= \sum_{k=1}^2 \alpha_{j+1/2}^k {\bf r}_{j+1/2}^k \end{align}
where \({\bf l}\), \({\bf r}\), and \(\lambda\) are the left-eigenvectors, right-eigenvectors and eigenvalues. The subscripts denote the grid locations.
This upwinding scheme is modified for the balanced discretization of the 1D shallow water equations. See the following reference:
| fI | Computed upwind interface flux |
| fL | Left-biased reconstructed interface flux |
| fR | Right-biased reconstructed interface flux |
| uL | Left-biased reconstructed interface solution |
| uR | Right-biased reconstructed interface solution |
| u | Cell-centered solution |
| dir | Spatial dimension |
| s | Solver object of type HyPar |
| t | Current solution time |
Definition at line 118 of file ShallowWater2DUpwind.c.