使用matlab求解二维浅水方程的数值解(一)—浅水波

最近在读《ocean modelling for beginners》这本书,对于做海洋数值模拟工作的小白来说,这绝对是一本好书。强烈推荐给理论基础较弱的学习者,这本书循序渐进,由简入繁的讲解了物理海洋方面的物理现象、理论基础、算法实现等等。

第五章讲的是二维浅水方程,书中进行了一些案例的模拟,并给出了相关代码。其中,模拟部分的代码使用Fortran,后处理部分使用Scilab。我试着用matlab,按照书中的有限差分方法,写了该部分的模拟及后处理代码。首先,原始方程组如下:
使用matlab求解二维浅水方程的数值解(一)—浅水波_第1张图片

离散方法如下:
使用matlab求解二维浅水方程的数值解(一)—浅水波_第2张图片

模拟案例设置如下:
与书中练习8一样,模拟区域为500*500m,空间步长10m,时间步长0.1s,重点内容初始条件为网格中心处初始水位1m。
模拟结果如图所示:

这个模拟案例比较简单,模拟的是水位起伏引起的波动。下篇博客将模拟波浪的折射,看看水深地形将会对波浪造成什么样的影响,敬请期待。

你可能感兴趣的:(Matlab,海洋数值模拟)