发明名称 基于分裂算法的湖泊三维水动力‑水温‑水质模拟预测方法
摘要 本发明公开了一种基于分裂算法的湖泊三维水动力‑水温‑水质模拟预测方法。构建湖泊三维水动力‑水温‑水质模型,将湖泊离散成若干网格单元,并对网格采用Arakawa C模式布置变量,基于分裂算法将湖泊三维水动力‑水温‑水质模型中各算子按照其物理波动过程的波频快慢特性进行分类,对低频慢过程算子采用显式处理,对高频快过程算子采用隐式处理,运用分裂算法分步离散求解模型,得到湖泊水域内不同位置和时间的三维流场、水温和水质指标浓度。本发明提出的基于分裂算法的湖泊三维水动力‑水温‑水质模拟预测方法能较准确地反映湖泊水体中的动量迁移、热量传递和污染物输移等复杂的物理过程,具有计算稳定性好、计算精度和计算效率高的特点。
申请公布号 CN105160162B 申请公布日期 2016.12.14
申请号 CN201510507180.7 申请日期 2015.08.18
申请人 华中科技大学 发明人 康玲;靖争;姜尚文
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 华中科技大学专利中心 42201 代理人 曹葆青
主权项 一种基于分裂算法的湖泊三维水动力‑水温‑水质模拟预测方法,其特征在于,包括以下步骤:(1)构建湖泊三维水动力‑水温‑水质模型,将湖泊计算域离散成若干网格单元,并对网格采用Arakawa C模式布置变量,采用分裂算法将湖泊三维水动力‑水温‑水质模型水动力控制方程组中水平动量方程各算子按照其物理波动过程的波频快慢特性进行分类,对低频慢过程算子采用显式处理,对高频快过程算子采用隐式处理,通过分裂算法分步离散并求解水动力控制方程组,得到湖泊水域内不同位置和时间的三维流场u、v、w及其水深H,其中u、v、w分别是x、y、z方向的流速;具体包括以下子步骤:(1.1)构建湖泊三维水动力‑水温‑水质模型,模型由反映湖泊水动力、水温和水质复杂变化过程的一组数量物理控制方程组构成,包括:水动力控制方程组:连续方程<img file="FDA0001124313390000011.GIF" wi="1214" he="78" />水位方程<img file="FDA0001124313390000012.GIF" wi="1310" he="102" />x动量方程<img file="FDA0001124313390000013.GIF" wi="1467" he="143" />y动量方程<img file="FDA0001124313390000014.GIF" wi="1467" he="134" />水温控制方程:<img file="FDA0001124313390000015.GIF" wi="1422" he="142" />水质控制方程:<img file="FDA0001124313390000016.GIF" wi="1422" he="127" />式中,<img file="FDA0001124313390000017.GIF" wi="202" he="127" />是σ坐标变换;<img file="FDA0001124313390000018.GIF" wi="1051" he="142" />是σ变换后的垂向流速;x,y为水平坐标,z为垂向坐标;h为自由水面到水底的水深值,η为静水位偏移位移,H=h+η为总水深;u,v分别为x,y方向的流速;t为时间;T为水温;C为污染物浓度;<img file="FDA0001124313390000021.GIF" wi="285" he="62" />Ω为地球自转角速度,<img file="FDA0001124313390000022.GIF" wi="43" he="47" />为所处纬度;V<sub>h</sub>和V<sub>v</sub>分别为水平涡黏系数和垂向涡粘系数;V<sub>b</sub>为垂向扩散系数;g为重力加速度;A<sub>HT</sub>和A<sub>VT</sub>为水平温度扩散系数和垂向温度扩散系数;A<sub>HC</sub>和A<sub>VC</sub>为水平水质扩散系数和垂向水质扩散系数;(1.2)将湖泊离散成若干网格单元,并对网格采用Arakawa C模式布置变量:对一个正方体网格单元,规定i、j和k分别为x、y和z方向的网格编号索引,变量ω设置在上下表面的中点上(i,j,k±1/2),在每一个横截面中,变量u设置在网格左右两边的中心(i±1/2,j,k),变量v设置在前后两边的中点上(i,j±1/2,k),水深H、水质浓度C、水温T设置在网格中心(i,j,k);(1.3)采用分裂算法将湖泊三维水动力‑水温‑水质模型水动力控制方程组中水平动量方程各算子按照其物理波动过程的波频快慢特性进行分类:对应于缓行的内重力波产生的作用力和表面重力长波产生的作用力的差异,将水平动量方程(3)、(4)的算子分为低频慢过程算子和高频快过程算子两类,其中,低频慢过程算子包括对流项、科氏力项和水平涡粘项,高频快过程算子包括重力梯度项和垂向涡粘项;(1.4)对对流项、科氏力项和水平涡粘项这些低频慢过程算子做显式处理,求得x方向中间流速u1和y方向中间流速v1,以x方向为例:<maths num="0001"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mi>u</mi><msub><mn>1</mn><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>=</mo><mo>-</mo><mfrac><mrow><mi>&Delta;</mi><mi>t</mi></mrow><mrow><mn>2</mn><mi>&Delta;</mi><mi>x</mi></mrow></mfrac><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mrow><mo>(</mo><mrow><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>3</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>u</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup></mrow><mo>)</mo></mrow><mo>-</mo><mfrac><mrow><msubsup><mi>v</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mrow><mi>n</mi><mo>*</mo></mrow></msubsup><mi>&Delta;</mi><mi>t</mi></mrow><mrow><mn>2</mn><mi>&Delta;</mi><mi>y</mi></mrow></mfrac><mrow><mo>(</mo><mrow><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mfrac><mrow><msubsup><mi>&omega;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mrow><mi>n</mi><mo>*</mo></mrow></msubsup><mi>&Delta;</mi><mi>t</mi></mrow><mrow><msub><mi>&Delta;&sigma;</mi><mi>k</mi></msub><mo>+</mo><mn>0.5</mn><mrow><mo>(</mo><mrow><msub><mi>&Delta;&sigma;</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>&Delta;&sigma;</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mo>)</mo></mrow></mrow></mfrac><mrow><mo>(</mo><mrow><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>n</mi></msubsup></mrow><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><msub><mi>v</mi><mi>h</mi></msub><mi>&Delta;</mi><mi>t</mi></mrow><mrow><msup><mi>&Delta;x</mi><mn>2</mn></msup></mrow></mfrac><mrow><mo>(</mo><mrow><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>3</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>u</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><mfrac><mrow><msub><mi>v</mi><mi>h</mi></msub><mi>&Delta;</mi><mi>t</mi></mrow><mrow><msup><mi>&Delta;y</mi><mn>2</mn></msup></mrow></mfrac><mrow><mo>(</mo><mrow><msubsup><mi>u</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>-</mo><mn>2</mn><msubsup><mi>u</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>u</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup></mrow><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mrow><mn>1</mn><mo>-</mo><mfrac><mrow><mn>2</mn><msub><mi>v</mi><mi>h</mi></msub><mi>&Delta;</mi><mi>t</mi></mrow><mrow><msup><mi>&Delta;x</mi><mn>2</mn></msup></mrow></mfrac></mrow><mo>)</mo></mrow><msubsup><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>fv</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mrow><mi>n</mi><mo>*</mo></mrow></msubsup></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001124313390000023.GIF" wi="1502" he="430" /></maths>式中:<maths num="0002"><math><![CDATA[<mrow><msubsup><mi>v</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mrow><mi>n</mi><mo>*</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mn>4</mn></mfrac><mrow><mo>(</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>k</mi></mrow><mi>n</mi></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001124313390000024.GIF" wi="1365" he="118" /></maths><maths num="0003"><math><![CDATA[<mrow><msubsup><mi>&omega;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow><mrow><mi>n</mi><mo>*</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mn>4</mn></mfrac><mrow><mo>(</mo><msubsup><mi>&omega;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>&omega;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>&omega;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>&omega;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow><mi>n</mi></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001124313390000031.GIF" wi="1366" he="111" /></maths>(1.5)显式离散水位方程(2),求得下一个时间节点的静水位偏移位移η<sup>n+1</sup>,根据已经求到的中间流速u1,v1和静水位偏移位移η<sup>n+1</sup>,对高频快过程算子重力梯度项做隐式处理,求得x方向中间流速u2和y方向中间流速v2,以x方向为例:<maths num="0004"><math><![CDATA[<mrow><mfrac><mrow><mi>u</mi><msub><mn>2</mn><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>-</mo><mi>u</mi><msub><mn>1</mn><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub></mrow><mrow><mi>&Delta;</mi><mi>t</mi></mrow></mfrac><mo>=</mo><mo>-</mo><mi>g</mi><mfrac><mrow><msubsup><mi>&eta;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>&eta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msubsup></mrow><mrow><mi>&Delta;</mi><mi>x</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001124313390000032.GIF" wi="1198" he="127" /></maths>(1.6)根据已经求到的中间流速u2和v2,对高频快过程算子垂向涡粘项做隐式处理,整理后分别得到关于下一个时间节点的x方向流速u<sup>n+1</sup>和y方向流速v<sup>n+1</sup>的线性方程式,以x方向为例:<maths num="0005"><math><![CDATA[<mrow><mi>U</mi><mi>T</mi><mo>&CenterDot;</mo><msubsup><mi>u</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>+</mo><mi>U</mi><mi>B</mi><mo>&CenterDot;</mo><msubsup><mi>u</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>+</mo><mi>U</mi><mi>C</mi><mo>&CenterDot;</mo><msubsup><mi>u</mi><mi>k</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mi>U</mi><mi>F</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001124313390000033.GIF" wi="1195" he="71" /></maths>式中UT、UB、UC,UF是包含已知变量u2的参数,在所有网格上写出式(11),得到一个涉及三维流场时空关系的线性矩阵方程组,采用托马斯法求解矩阵方程组,求得u<sup>n+1</sup>,并用同样的方法求出v<sup>n+1</sup>;(1.7)根据已经得到的x方向流速u<sup>n+1</sup>、y方向流速v<sup>n+1</sup>和连续方程(1),求得垂向流速ω<sup>n+1</sup>,根据σ反坐标变换求得笛卡尔坐标系下垂向流速w<sup>n+1</sup>;(1.8)重复步骤(1.4)‑(1.7),循环迭代计算,得到湖泊水域内不同位置和时间的三维流场u、v、w及其静水位偏移位移η,并根据静水位偏移位移η进一步求得水深H;(2)通过步骤(1)求得包括湖泊三维流场u、v、w和水深H在内的水动力参数,采用分裂算法分别将水温控制方程和水质控制方程中的算子分为低频慢过程算子和高频快过程算子两类,对其中的低频慢过程算子采用显式处理,对高频快过程算子采用隐式处理,通过分裂算法分步离散并求解水温控制方程和水质控制方程,得到湖泊水域内不同位置和时间的水温T和水质指标浓度C。
地址 430074 湖北省武汉市洪山区珞喻路1037号
您可能感兴趣的专利