Skip to content

Instantly share code, notes, and snippets.

@ketch
Created March 22, 2018 11:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ketch/e3683e0e64f843b9e24b31e7c6342d57 to your computer and use it in GitHub Desktop.
Save ketch/e3683e0e64f843b9e24b31e7c6342d57 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Shallow water with bathymetry"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this notebook we study the Riemann problem for the shallow water equations in the presence of varying bathymetry. Specifically, we consider the case in which the elevation of the bottom is piecewise constant with a jump at $x=0$. Thus the Riemann problem consists of the shallow water equations, including an additional term in the momentum equation (corresponding to the bathymetry):\n",
"\\begin{align}\n",
" h_t + (hu)_x & = 0 \\\\\n",
" (hu)_t + \\left(hu^2 + \\frac{1}{2}gh^2\\right)_x & = -ghb_x,\n",
"\\end{align}\n",
"together with initial data\n",
"\\begin{align}\n",
" (h(x,0),u(x,0)) & = \\begin{cases} (h_l, u_l) & x<0 \\\\ (h_r, u_r) & x>0 \\end{cases}\n",
"\\end{align}\n",
"and bathymetry\n",
"$$b(x) = \\begin{cases} b_l & x<0 \\\\ b_r & x>0 \\end{cases}.$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Stationary wave at $x=0$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The source term owing to the bathymetry is (like that introduced to represent traffic flow from an on-ramp) singular: since the bathymetry $b(x)$ is discontinuous at $x=0$, the term $b_x$ is given by a delta-function: \n",
"$$b_x = (b_r-b_l)\\delta(x) = \\Delta b \\delta(x).$$ \n",
"Based on what we have learned in earlier chapters, it is natural to expect that the Riemann solution will include a stationary jump at $x=0$, due to this singular source term. What are the appropriate jump conditions for thiw wave? As usual, we would like to impose continuity of the flux at $x=0$, which for the first equation gives \n",
"$$h_- u_- = h_+ u_+.$$ \n",
"where e.g. $h_\\pm$ denote the limiting values of $h$ as $x\\to0$ from the right and left.\n",
"The other appropriate condition is evidently\n",
"\\begin{align} \\label{h_ave}\n",
" h_+ u_+^2 - h_- u_-^2 + \\frac{1}{2}g(h_+^2-h_-^2) = -g\\Delta b \\tilde{h},\n",
"\\end{align}\n",
"but it is unclear what value should be used for $\\tilde{h}$.\n",
"The source term involves the product of a delta function ($b_x$) and a discontinuous function ($h$). The product of these two functions has no clear definition. What is the second jump condition that should be imposed at $x=0$?\n",
"\n",
"The answer is still a matter of debate, and is unclear from both a mathematical perspective (as just mentioned) and from a physical perspective, since the shallow water assumption that a column of fluid has a single uniform velocity must break down near a bathymetry jump."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Hydrostatic approach"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we will take a natural condition that has been proposed in the literature. That is that the momentum flux on either side of $x=0$ should be equal, after taking into account the fact that the bathymetry on the higher side supports part of the pressure of the water on the lower side. For concreteness, suppose that $b_r > b_l$. Then we impose\n",
"$$h_- u_-^2 + \\frac{1}{2}g(h_- - (b_r-b_l))^2 = h_+ u_+^2 + \\frac{1}{2}gh_+^2.$$\n",
"This expression can also be written\n",
"$$h_+ u_+^2 - h_- u_-^2 + \\frac{1}{2}g(h_+^2-h_-^2) = -g(h_- - \\Delta b/2)\\Delta b ,$$\n",
"which has the form of \\eqref{h_ave} above with $\\tilde{h} = h_- - \\Delta b/2$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Approach of Alcrudo et. al."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$h_+ - h_- + \\frac{1}{2g}(u_+^2 - u_-^2) + \\Delta b = 0$$\n",
"This can also be written\n",
"$$ \\frac{\\tilde{h}}{2}(u_+^2 - u_-^2) + \\frac{g}{2} (h_+^2 - h_-^2) = - g \\tilde{h}\\Delta b$$\n",
"where $\\tilde{h}$ is the arithmetic average $(h_++h_-)/2$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Smooth steady state approach (George)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"D. George (citation) showed that any two steady states in a smooth steady state solution satisfy \n",
"$$h_+ u_+^2 - h_- u_-^2 + \\frac{1}{2}g(h_+^2-h_-^2) = -g\\Delta b \\tilde{h},$$ \n",
"where\n",
"$$\\tilde{h} = \\frac{h_+ + h_-}{2} \\frac{\\widetilde{\\lambda^+ \\lambda^-}}{\\overline{\\lambda^+ \\lambda^-}}$$\n",
"with\n",
"$$\\overline{\\lambda^+ \\lambda^-} = \\left(\\frac{u_+ + u_-}{2}\\right)^2 - g \\frac{h_+ + h_-}{2}$$\n",
"and\n",
"$$\\widetilde{\\lambda^+ \\lambda^-} = \\max(0,u_+ u_-) - g \\frac{h_+ + h_-}{2}.$$\n",
"This is equivalent to the approach of Alcrudo above (I think)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Resonance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We expect that the Riemann solution will consist of two genuinely nonlinear waves (as in the case of the shallow water equations with flat bathymetry) and the stationary wave just described. However, as we have seen in the chapter on traffic with a variable speed limit, these waves can interact in more interesting ways. Note that we can write the SW with bathymetry system as a system of three equations:\n",
"\\begin{align}\n",
" h_t + (hu)_x & = 0 \\\\\n",
" (hu)_t + \\left(hu^2 + \\frac{1}{2}gh^2\\right)_x & = \\frac{1}{2}ghb_x \\\\\n",
" b_t & = 0.\n",
"\\end{align}\n",
"Here we have added the bathymetry as a third conserved quantity. The above system can be written as a homogeneous quasilinear hyperbolic system $q_t + A(q)q_x = 0$, with $q=[h,hu,b]^T$. The eigenvalues of $A(q)$ are then\n",
"$$\\lambda = u-\\sqrt{gh}, 0, u+\\sqrt{gh}.$$\n",
"This is exactly what we'd expect: the non-zero eigenvalues are the characteristic speeds present in the homogeneous shallow water system, while the zero eigenvalue corresponds to the stationary wave. However, notice that the ordering of the eigenvalues is not fixed, since the values $u\\pm\\sqrt{gh}$ can be positive or negative depending on the nature of the flow. In particular, these values can pass through zero, in which case the quasilinear system is not strictly hyperbolic -- it has a repeated eigenvalue. This leads to the phenomenon of resonance, in which a transcritical rarefaction wave is split by the stationary wave into two waves. One of them is a rarefaction, while the other may be a rarefaction or a shock (just as we saw in the case of the traffic flow model with varying speed limit).\n",
"\n",
"Thus in general the Riemann solution may consist of as many as four waves."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Examples"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from exact_solvers import shallow_water_bathymetry as swb\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from utils import riemann_tools"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def c1(q, xi, g=1.):\n",
" \"Characteristic speed for shallow water 1-waves.\"\n",
" h = q[0]\n",
" if h > 0:\n",
" u = q[1]/q[0]\n",
" return u - np.sqrt(g*h)\n",
" else:\n",
" return 0\n",
"\n",
"def c2(q, xi, g=1.):\n",
" \"Characteristic speed for shallow water 2-waves.\"\n",
" h = q[0]\n",
" if h > 0:\n",
" u = q[1]/q[0]\n",
" return u + np.sqrt(g*h)\n",
" else:\n",
" return 0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Subcritical cases"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b_l = 0.\n",
"b_r = 1.\n",
"h_l = 2.-b_l\n",
"h_r = 1.5-b_r\n",
"u_l = 1.\n",
"u_r = -1.\n",
"g=1.\n",
"\n",
"q_l = np.array([h_l,h_l*u_l])\n",
"q_r = np.array([h_r,h_r*u_r])\n",
"states, speeds, reval, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='hydrostatic')\n",
"states, speeds, reval_d, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='alcrudo')\n",
"fig, axes = plt.subplots(1,2,figsize=(14,4))\n",
"riemann_tools.plot_waves(states,speeds,reval,wave_types,t_pointer=False,ax=axes[0])\n",
"xi = np.linspace(-5,5,500)\n",
"axes[1].plot(xi,reval(xi)[0]+(xi>0),xi,reval_d(xi)[0]+(xi>0));\n",
"plt.legend(['Hydrostatic','Alcrudo']);"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b_l = 0.\n",
"b_r = 1.\n",
"h_l = 1.3-b_l\n",
"h_r = 1.2-b_r\n",
"u_l = 0.\n",
"u_r = 0.2\n",
"g=1.\n",
"\n",
"q_l = np.array([h_l,h_l*u_l])\n",
"q_r = np.array([h_r,h_r*u_r])\n",
"states, speeds, reval, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='hydrostatic')\n",
"states, speeds, reval_d, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='alcrudo')\n",
"fig, axes = plt.subplots(1,2,figsize=(14,4))\n",
"riemann_tools.plot_waves(states,speeds,reval,wave_types,t_pointer=False,ax=axes[0])\n",
"xi = np.linspace(-5,5,500)\n",
"axes[1].plot(xi,reval(xi)[0]+(xi>0),xi,reval_d(xi)[0]+(xi>0));\n",
"plt.legend(['Hydrostatic','Alcrudo']);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Resonant cases"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b_l = 0.\n",
"b_r = 1.\n",
"h_l = 2.-b_l\n",
"h_r = 2.-b_r\n",
"u_l = 0.\n",
"u_r = 2.\n",
"g = 1.\n",
"\n",
"q_l = np.array([h_l,h_l*u_l])\n",
"q_r = np.array([h_r,h_r*u_r])\n",
"states, speeds, reval, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='hydrostatic')\n",
"states, speeds, reval_d, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='alcrudo')\n",
"fig, axes = plt.subplots(1,2,figsize=(14,4))\n",
"riemann_tools.plot_waves(states,speeds,reval,wave_types,t_pointer=False,ax=axes[0])\n",
"xi = np.linspace(-5,5,500)\n",
"axes[1].plot(xi,reval(xi)[0]+(xi>0),xi,reval_d(xi)[0]+(xi>0));\n",
"plt.legend(['Hydrostatic','Alcrudo']);"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x1134b7790>"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b_l = 0.\n",
"b_r = 1.\n",
"h_l = 2.-b_l\n",
"h_r = 1.5-b_r\n",
"u_l = 1.4\n",
"u_r = 2.0\n",
"g=1.\n",
"\n",
"q_l = np.array([h_l,h_l*u_l])\n",
"q_r = np.array([h_r,h_r*u_r])\n",
"states, speeds, reval, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='hydrostatic')\n",
"states, speeds, reval_d, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='alcrudo')\n",
"fig, axes = plt.subplots(1,2,figsize=(14,4))\n",
"riemann_tools.plot_waves(states,speeds,reval,wave_types,t_pointer=False,ax=axes[0])\n",
"xi = np.linspace(-5,5,500)\n",
"axes[1].plot(xi,reval(xi)[0]+(xi>0),xi,reval_d(xi)[0]+(xi>0));\n",
"plt.legend(['Hydrostatic','Alcrudo'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Supercritical cases"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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GKfc/w5Llq+MOwwJqVCASKHIlHNW5TPZkIoKGDAAPvkExoyBHXaIOyLJk++//5727duzatUqAL777rvKx1OnTqVz58507tyZO+64o/I1Dz74IL169aJHjx4ceuihuDsXX3wxHTt2ZM899+SJJ54AYN68eXTr1o0uXbrQsWNHXn/9dYYNG0Z5eTldunRh4MCBAPTp04d99tmHPfbYg5EjRwJUu17jxo0rY7j++uvZc8896dy5M8OGDcvLvpKfLu1QR60061in7rvERi01IoXiiy9g9WoVCZANu/RSmDAB7roLunWLO5qidvWzM/joq9yOMdj9Z1vyp/+3xwbXySQIGYsWLaJXr140adKE7t2789xzz9GnTx8ef/xxfvvb31K/fn1OO+00RowYQbdu3bj44ovX2t57773H9OnTadq0KWPGjGHatGm8//77LFiwgH333Zdu3brx2GOPccQRR3DZZZdRUVHB8uXLOfjggxkxYgTTpk2r3Nb9999P06ZNKS8vZ99996Vfv35cd91166yXMWHCBMaNG8fbb79No0aNWLRo0SbuQcmpTyZC+WIAjrBp7L6oDD78OOagkqPDigX829VylRRKakQKhSqfycY8+ijccAP87nfBnxSlzTfffK0EITOmBmDQoEHccMMN9OnThwceeIB77rmHJUuWsGTJErqFSe5JJ53EhAkTKl9/2GGH0bRpUwAmT57MgAEDqFu3Lttttx2HHHII7777Lvvuuy+nn346q1atok+fPmslVdluu+02nnnmGQDmzJlDWVkZzTYwL9JLL73EaaedRqNGjQAq45AEWPgJPNyn8uHf6gCfhH8CwDDglK0fijsMCSmpESkUmTlq1P1MqjNlCgwaFLTO3Hpr3NGUhI21qMThwAMPZPbs2UyaNImKigo6duzIkiVLNviaLWow5qpbt2689tprPPfcc5x66qlccMEFnHzyyWutM2nSJF566SXefPNNGjVqRPfu3TW/TCFbtTy47Xkd7Pgrjrz1Nfrt05pBB+0Yb1xJ8d8J8NJVNGBF3JFISEmNSKFIpYIB39ttF3ckkjTz5kGfPsGx8dRT0KBB3BFJjE4++WROOOEErrjiCgC23nprtt56ayZPnsxBBx3Eo48+ut7XHnzwwfz973/nlFNOYdGiRbz22mv89a9/5fPPP6d169aceeaZrFixgvfee4+TTz6Z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\n",
"text/plain": [
"<Figure size 1008x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b_l = 0.\n",
"b_r = 1.\n",
"h_l = 2.-b_l\n",
"h_r = 2.-b_r\n",
"u_l = 3.\n",
"u_r = 0.\n",
"g=1.\n",
"\n",
"q_l = np.array([h_l,h_l*u_l])\n",
"q_r = np.array([h_r,h_r*u_r])\n",
"states, speeds, reval, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='hydrostatic')\n",
"states, speeds, reval_d, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='alcrudo')\n",
"fig, axes = plt.subplots(1,2,figsize=(14,4))\n",
"riemann_tools.plot_waves(states,speeds,reval,wave_types,t_pointer=False,ax=axes[0])\n",
"xi = np.linspace(-5,5,500)\n",
"axes[1].plot(xi,reval(xi)[0]+(xi>0),xi,reval_d(xi)[0]+(xi>0));\n",
"plt.legend(['Hydrostatic','Alcrudo']);"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b_l = 0.\n",
"b_r = 1.\n",
"h_l = 2.-b_l\n",
"h_r = 5.-b_r\n",
"u_l = 3.\n",
"u_r = 2.\n",
"g=1.\n",
"\n",
"q_l = np.array([h_l,h_l*u_l])\n",
"q_r = np.array([h_r,h_r*u_r])\n",
"states, speeds, reval, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='hydrostatic')\n",
"states, speeds, reval_d, wave_types = swb.exact_riemann_solution(q_l, q_r, b_l, b_r, g=g, which='alcrudo')\n",
"fig, axes = plt.subplots(1,2,figsize=(14,4))\n",
"riemann_tools.plot_waves(states,speeds,reval,wave_types,t_pointer=False,ax=axes[0])\n",
"xi = np.linspace(-5,5,500)\n",
"axes[1].plot(xi,reval(xi)[0]+(xi>0),xi,reval_d(xi)[0]+(xi>0));\n",
"plt.legend(['Hydrostatic','Alcrudo']);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.13"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"toc_cell": false,
"toc_position": {},
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment