NHWAVE模型原理简介

  • 模型简介
  • 模型控制方程
  • 水动力模型控制方程
  • 紊流模型控制方程
  • 对流-扩散控制方程
  • 参考文献


这个系列的blog有点类似NHWAVE手册和代码的解读,内容之中也会穿插一些个人的学习体会。

模型简介

NHWAVE模型全称为Non-Hydrostatic Wave Model;它是由特拉华大学应用海岸研究中心开发。虽然以“波浪模型”来冠名,但个人认为它是一个适用于多种水力情况的水动力数值模型。对于传统的(大空间尺度)水动力模型,为了避免压力项和速度项的耦合求解,通常会将静水压力假定添加到模型中,以省略压力项的求解;这一类模型被称作“静压水动力模型”,MIKE、Delft3D、FVCOM都是静压水动力模型。而在上世纪末,部分学者提出了一种不需要将压力项和速度项完全耦合,但也考虑压力项求解的水动力模型;在这类模型中,压力项被分裂为静水压力项和动水压力项两个部分,通过求解动水压力项来实现较为精确的水动力模拟。

NHWAVE模型基于不可压缩N-S方程建立;对于其中的压力项,模型采用Casulli等人1提出的分步法来进行处理。此“分步法”是将水动力场求解分为两个步骤:

  1. 首先,不考虑动水压力,在满足静压假定的情况下求出估计的水动力场;
  2. 将上一步得到的水动力场估计值代入压力泊松方程,迭代求解出动水压力,并用得出的动水压力值修正水动力场数值。

为了能够模拟水动力场的紊流特征,NHWAVE模型中还包括k-ε模型、大涡模拟亚格子等紊流模型。
开发组的Ma等人在控制方程中加入了斜压项,来考虑密度的影响;通过求解盐度、泥沙等物质输运的对流-扩散方程,现在的NHWAVE能够模拟斜压问题。
此外,NHWAVE模型已通过MPI技术实现并行化,可实现高效的多核并行计算。

模型控制方程

水动力模型控制方程

python 水动力模拟 水动力数值模型_深度学习


如上图所示,水动力模型的控制方程(原始方程)是N-S方程。要注意的是,在方程(2)的扩散项中,扩散系数只有一个νt;这里的νt是包含了分子扩散效应和紊动扩散效应。在最新的模型代码中,νt是背景粘度(分子粘度)ν0和由紊流模型求解的νturb的叠加;要注意的是,本文下文紊流模型中所计算的νt其实是我这里所说的νturb

紊流模型控制方程

NHWAVE中默认的紊流模型是非线性k-ε模型2

python 水动力模拟 水动力数值模型_线性代数_02


python 水动力模拟 水动力数值模型_机器学习_03


注意:这里面的紊动能k和紊动能耗散率ε的控制方程(13)(14)是对流扩散方程。

对流-扩散控制方程

模型中泥沙、盐度、温度等标量及上面提到的紊动能k和紊动能耗散率ε都通过对流-扩散方程控制。

对流-扩散方程的形式如下所示3

python 水动力模拟 水动力数值模型_深度学习_04

参考文献


  1. Casulli, V. , & Stelling, G. S. . (1998). Numerical simulation of 3d quasi-hydrostatic, free-surface flows. Journal of Hydraulic Engineering, 124(7), 678-686. ↩︎
  2. Lin, P. , & Liu, L. F. . (1998). Turbulence transport, vorticity dynamics, and solute mixing under plunging breaking waves in surf zone. JOURNAL OF GEOPHYSICAL RESEARCH. ↩︎
  3. 时健. 河口盐淡水垂向混合的非静压模型模拟研究[D]. 河海大学, 2016. ↩︎