浅水方程(Shallow Water Equations)
浅水方程(Shallow Water Equations)

浅水方程(Shallow Water Equations)

基于https://matthias-research.github.io/pages/publications/hfFluid.pdf这篇论文

采用Gird2D网格去模拟.

$\frac{D h}{D t} = -,h,\nabla\cdot\mathbf{v}$ (质量守恒) $ \frac{D\mathbf{v}}{D t} = -,g,\nabla \eta ;+; \mathbf{a}_{\mathrm{ext}}$ (动量守恒)

第一条是质量守恒:柱状水体高度随水平散度改变;第二条是动量守恒:自由面坡度产生水平方向压强梯度(即 −g∇η)。D/Dt 表示随流(拉格朗日)导数:沿流线观测到的时变率,等于 ∂/∂t+v⋅∇.

因为: D/Dt=∂t+v⋅∇ (∂/∂t = 固定位置看时间变化;D/Dt = 跟着流体看总变化)

$\frac{D h}{D t} = -,h,\nabla\cdot\mathbf{v}$ ——> $ \frac{\partial h}{\partial t} + \nabla\cdot!\big(h,\mathbf{v}\big) = 0$ (质量守恒)

$ \frac{D\mathbf{v}}{D t} = -,g,\nabla \eta ;+; \mathbf{a}_{\mathrm{ext}}$ ——> $\quad \frac{\partial \mathbf{v}}{\partial t}+(\mathbf{v}\cdot\nabla)\mathbf{v}=-,g\nabla\eta+\mathbf{a}^{\text{ext}}$ (动量守恒)

  • 网格与量纲:二维高度场位于 x–z 平面;重力沿 y。使用交错网格(staggered grid):高度 $h_{i,j}$、地形 $H_{i,j} $存在格心;速度 $u_{i+\frac12,j}$、$w_{i,j+\frac12}$ 在格面。网格间距 $\Delta x$、时间步 $\Delta t$。
  • 几何量:水面高 $\eta = H + h$。水平速度$\mathbf{v} = (u,w)$。重力 g。外加加速度 $\mathbf{a}_{\text{ext}}$。

高度积分(离散化推导)

  • 把质量守恒写成保体积形式:∂h/∂t=−∇⋅(hv)(式(3));对 xz 用一阶迎风通量近似,得到(式(4)):

    $\frac{\partial h_{i,j}}{\partial t}\approx
    -\frac{\big(,\tilde h,u,\big){i+\frac12,j}-\big(,\tilde h,u,\big){i-\frac12,j}}{\Delta x};
    -\frac{\big(,\tilde h,w,\big){i,j+\frac12}-\big(,\tilde h,w,\big){i,j-\frac12}}{\Delta x},$

  • 其中 $\tilde h$ 在通量处按迎风方向选取(式(5)(6)):

    $\tilde h_{i+\frac12,j}= \begin{cases} h_{i+1,j}, & u_{i+\frac12,j}\le0\ h_{i,j},& u_{i+\frac12,j}>0\end{cases}$

    $\tilde h_{i,j+\frac12}= \begin{cases} h_{i,j+1}, & w_{i,j+\frac12}\le0\ h_{i,j},& w_{i,j+\frac12}>0\end{cases}$

  • 显式时间推进:$h_{i,j}^{,n+1}= h_{i,j}^{,n} + \left(\partial h_{i,j}/\partial t\right)\Delta t$。作者强调此处的迎风$ \tilde h$ 选取比一些教材里的简单平均更稳。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注