一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于多GPU并行框架的河流泥沙输移过程数值模拟方法

2022-09-03 20:29:47 来源:中国专利 TAG:

基于多gpu并行框架的河流泥沙输移过程数值模拟方法
技术领域
1.本发明属于河流泥沙输移过程数值模拟技术领域,涉及一种基于多gpu并行框架的河流泥沙输移过程数值模拟方法。


背景技术:

2.对于河流泥沙输移过程,一方面,河流泥沙输移过程涉及到悬移质和床沙输移过程,运动过程包括了泥沙的冲刷和淤积变化过程;另一方面,河流泥沙输移运动会改变河道和河床的地形,而河道和河床的复杂地形变化会引起河流某些河段水流发生强烈的起伏震荡动演变运动,需要重点研究这些区域的泥沙输移过程。因此,通过研究河流泥沙输移过程,可对河流的泥沙输移运动规律和洪水风险进行准确评估。特别是在黄河流域,泥沙的冲刷和淤积变化过程会改变河床的地形情况,继而影响黄河下游河流水位的变化,可能会导致河流下游洪水灾害的高风险性;同时可能会威胁到整个下游区域市民的生活居住和房屋财产安全,也会破坏河流下游城市水体生态环境。综上,对河流泥沙输移过程进行研究很重要,不仅能对河流泥沙输移过程的机理进行详细的分析,也能对河流洪涝规划设计和洪水应对管理预案提供可靠的依据和科学的指导。
3.对于河流泥沙输移过程研究的方法,国内外学者主要是采用数学模型对河流泥沙输移过程进行模拟仿真,而以水动力模型为基础构建河流泥沙输移过程数值模型已被众多学者所应用,能准确实现了泥沙输移过程的动态模拟,通过建立水沙模型分析并考虑河流泥沙运动的洪水演进变化过程,探讨河流泥沙输移运动的时空分布情况。在模拟功能方面,现有的数值模型主要是模拟单个的河流床沙泥沙输移过程或者悬移质泥沙输移过程;在应用方面,现有的数值模型较多的模拟河流泥沙输移过程,没有考虑结合河流泥沙输移过程和洪水风险的模拟评价;在计算效率方面,尽管有部分学者采用了单个gpu并行计算技术应用在河流泥沙输移过程,但是在大规模河流区域模拟计算性能较低。在计算网格方面,现有的多gpu数值计算方法,主要是基于结构网格计算的多gpu计算方法,结构网格的计算单元不能更准确反映关键精细地形的特征,因此现有方法尚未涉及到非结构网格的多gpu计算方法。综上,河流泥沙输移过程的快速模拟对泥沙动态运动过程分析、洪水风险评估、河道河床地形环境变化等很重要。因此,需要建立一种高精度、高性能、多过程的耦合河流泥沙输移过程的高性能数值模拟方法。


技术实现要素:

4.本发明的目的是提供一种基于多gpu并行框架的河流泥沙输移过程数值模拟方法,解决了现有技术中存在的河流泥沙输移过程模拟方法的模拟过程功能单一和模拟计算性能不足的问题。
5.本发明所采用的技术方案是,基于多gpu并行框架的河流泥沙输移过程数值模拟方法,具体按照以下步骤实施:
6.步骤1,将整个河流划分为相同长度的两段河道,再将两段河道所在两部分计算区
域细分计算区域一和计算区域二,两计算区域中间相邻的两列计算网格区域为重叠区域,计算区域一和计算区域二均由多个三角形的非结构网格组成;
7.步骤2,将重叠区域中间边界左右两侧的三角形网格一一对应共用一条边;
8.步骤3,对水流及泥沙耦合过程中的变量进行初始化,并设定计算总历时、边界条件,设定每一次迭代计算的时间步长值为δt;
9.步骤4,创建两个gpu,分别将计算区域一和计算区域二存储到对应的gpu中。
10.步骤5,创建两个cuda流,为每个gpu分配内存,将初始化后的变量从cpu中分别复制到对应的gpu内存中;
11.步骤6,在多gpu中进行河流泥沙输移过程的并行计算,根据设定的时间步长δt计算,完成第一次时间步长计算,得到每个河段下游出口断面的水位值;
12.步骤7,根据设定的计算总历时,在每个gpu中更新时间步长,重复步骤6,进行循环计算,直到所有时间步长的循环计算任务完成后,将每个gpu计算的结果数据存储到cpu中进行合并后输出。
13.本发明的特点还在于,
14.步骤2具体按以下步骤实施:将重叠区域两侧的网格单元均划分为整齐的一列网格单元,重叠区域中间边界左右两侧的三角形网格一一对应共用一条边,保证重叠区域的共用边上的界面通量能计算正确。
15.步骤3中,变量包括:降雨、入流流量、地形高程、曼宁系数、床沙泥沙浓度、悬移质泥沙浓度;边界条件包括:时间步长值δt、总历时值、河道上游入口边界、下游出口边界、河道两侧的边界。
16.步骤6具体为:在多gpu中进行并行计算,并将重叠区域中间边界左右两侧的网格计算结果进行gpu和gpu间数据交换通信,在两个gpu上分别同步计算每个三角形网格界面的源项和通量得到水深值,再在两个gpu上同步计算水深,得到每个河段下游出口断面的水位值。
17.并行计算方式为:建立了水流及泥沙过程耦合输移方程,采用有限体积法对输移方程进行离散求解;
18.输移方程具体表示为:
[0019][0020][0021]
式中:
[0022]
q——为q
x
、qy、h的变量矢量,其中q
x
、qy分别为x和y方向的单宽流量,h为水深;
[0023]
f、g——为x和y方向的通量矢量;
[0024]
s——为源项矢量;
[0025]
η——为水位值;
[0026]
zb——为河道的地形高程;
[0027]
u、v——为x和y方向的流速,其中为q
x
=uh和qy=vh;
[0028]
g——为重力系数,g=9.81m/s2;
[0029]
c1、c2——为悬移质泥沙和床沙泥沙的浓度;
[0030]
β——为淤积物和水流的速度差值;
[0031]sx1
、s
x2
——为x方向悬移质泥沙和床沙泥沙的底坡源项;
[0032]sy1
、s
y2
——为y方向悬移质泥沙和床沙泥沙的摩阻力源项;
[0033]
e1、d1——为悬移质泥沙沉积率和携沙率;
[0034]
e2、d2——为床沙泥沙沉积率和携沙率。
[0035]
步骤7中,在2个gpu中对时间步长进行更新计算,并将重叠区域中间边界左右两侧的网格计算结果进行gpu和gpu间数据交换通信,在2个gpu上同步并行计算水流及泥沙过程耦合的输移过程,直到所有时间步长的循环计算任务完成后,将2个gpu的计算结果数据复制存储到cpu中,结果数据包括计算区域每个网格的坐标数据、地形高程数据、水位数据,再将这些数据进行数据合并,最后提取每个时刻的水位值,计算得到多个历时的每个河段下游出口断面的水位值。
[0036]
本发明的有益效果是:本发明采用基于三角形网格的多gpu并行计算的河流泥沙输移过程模拟方法,能适用于具有复杂地形的河流泥沙输移过程高精度模拟,能有效进行更精细地形河流的加速模拟,在计算精度和加速性能方面具有较强的优势;也能分析泥沙输移过程引起河床地形变化后的河流水位变化,为地区防洪规划建设提供技术支撑。
附图说明
[0037]
图1是本发明基于多gpu并行框架的河流泥沙输移过程数值模拟方法流程图;
[0038]
图2是本发明基于多gpu并行框架的河流泥沙输移过程数值模拟方法中基于三角形网格计算区域划分的多gpu并行计算过程示意图;
[0039]
图3是本发明基于多gpu并行框架的河流泥沙输移过程数值模拟方法中基于多gpu并行计算的河道区域划分及各相邻河段上下游边界数据通信过程示意图。
具体实施方式
[0040]
下面结合附图和具体实施方式对本发明进行详细说明。
[0041]
本发明提供了一种基于多gpu并行框架的河流泥沙输移过程数值模拟方法,如图1所示,具体按照以下步骤进行实施:
[0042]
步骤1,首先人工将整个河流区域划分为长度相同的两段河道,再将两段河道所在两部分计算区域细分为三角形的非结构网格,具体方式为:
[0043]
步骤1.1,将整个河流区域划分为长度相同的两段河道,河道的距离是相同的,再将两段河道所在两部分计算区域细分计算区域一和计算区域二,两计算区域中间相邻的两列计算网格区域为重叠区域,如图2所示;
[0044]
步骤1.2,将所在河流的两段河道所在两部分计算区域均细分为多个三角形的非结构网格;
[0045]
步骤2,将重叠区域中间边界左右两侧的三角形网格一一对应共用一条边;具体为:将重叠区域两侧的网格单元均划分为整齐的一列网格单元,重叠区域中间边界左右两侧的三角形网格一一对应共用一条边,保证重叠区域的共用边上的界面通量能计算正确;
[0046]
步骤3,对水流及泥沙耦合过程中的变量进行初始化,并设定计算总历时、边界条件,设定每一次迭代计算的时间步长值为δt;
[0047]
变量包括:降雨、入流流量、地形高程、曼宁系数、床沙泥沙浓度、悬移质泥沙浓度;边界条件包括:时间步长值δt、总历时值、河道上游入口边界、下游出口边界、河道两侧的边界。
[0048]
步骤4,创建两个gpu,分别将计算区域一和计算区域二存储到对应的gpu中;具体为:创建两个gpu,gpu0和gpu1读取已画好网格的地形文件,网格总数为m,将计算区域一存储在gpu0中,网格总数为m1,将计算区域二存储在gpu1中,网格总数为m-m1。
[0049]
步骤5,创建2个cuda流,通过2个cuda流分别为2个gpu的计算任务进行调用和分配,分别为2个gpu分配内存,再将每个河道计算区域初始化后的变量从cpu中复制存储到对应的gpu中,数据包括:降雨、入流流量、地形高程、曼宁系数、床沙泥沙浓度、悬移质泥沙浓度。
[0050]
步骤6,如图3所示,在多gpu中进行河流泥沙输移过程的并行计算,根据设定的时间步长δt计算,完成第一次时间步长计算,在进行第一次时间步长δt计算时,并将重叠区域中间边界左右两侧的网格计算结果进行gpu和gpu间数据交换通信,在两个gpu上分别同步计算两个河段上每个三角形网格界面的源项和通量得到水深值,再在两个gpu上同步计算水深,继而得到每个河段及河流下游出口断面的水位值。
[0051]
采用p2p数据通信方法实现相邻两个gpu之间的数据通信,如图3所示,将gpu0上计算河段0的下游出口边界的数值复制到gpu1中,作为河段1的上游入口条件进行河段1的水位计算;同时将当前的gpu1中河段1的上游入口的数值复制到gpu0中,作为河段0的下游出口信息参与计算,以上两个河段的水流及泥沙过程耦合的输移过程计算均是在2个gpu中并行实现的,加快了计算效率。
[0052]
水流及泥沙过程耦合的输移过程计算方式为:建立了水流及泥沙过程耦合输移方程,采用有限体积法对输移方程进行离散求解。
[0053]
输移方程具体表示为:
[0054]
[0055][0056]
式中:
[0057]
q——为q
x
、qy、h的变量矢量,其中q
x
、qy分别为x和y方向的单宽流量,h为水深;
[0058]
f、g——为x和y方向的通量矢量;
[0059]
s——为源项矢量;
[0060]
η——为水位值;
[0061]
zb——为河道的地形高程;
[0062]
u、v——为x和y方向的流速,其中为q
x
=uh和qy=vh;
[0063]
g——为重力系数,g=9.81m/s2;
[0064]
c1、c2——为悬移质泥沙和床沙泥沙的浓度;
[0065]
β——为淤积物和水流的速度差值;
[0066]sx1
、s
x2
——为x方向悬移质泥沙和床沙泥沙的底坡源项;
[0067]sy1
、s
y2
——为y方向悬移质泥沙和床沙泥沙的摩阻力源项;
[0068]
e1、d1——为悬移质泥沙沉积率和携沙率;
[0069]
e2、d2——为床沙泥沙沉积率和携沙率。
[0070]
水位值η的计算方式为:每个河段出口断面的水位值和全段河流下游出口断面的水位值可根据断面上每个网格单元的水深值与高程相加得到。水位值η具体表示为:
[0071]
η=h zbꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0072]
式中:
[0073]
η——为每个断面处各个网格单元的水位值;
[0074]
h——为每个断面处各个网格单元的水深值;
[0075]
zb——为每个断面处各个网格单元的地形高程值;
[0076]
步骤7中,根据设定的计算总历时,在每个gpu中更新时间步长,重复步骤6,进行循环计算,直到所有时间步长的循环计算任务完成后,将每个gpu计算的结果数据存储到cpu中进行合并后输出。
[0077]
具体为:在2个gpu中对时间步长进行更新计算,并将重叠区域中间边界左右两侧的网格计算结果进行gpu和gpu间数据交换通信,在2个gpu上同步并行计算水流及泥沙过程耦合的输移过程,直到所有时间步长的循环计算任务完成后,将两个gpu的计算结果数据复制存储到cpu中,结果数据包括计算区域每个网格的坐标数据、地形高程数据、水位数据,再将这些数据进行数据合并,合并后的计算区域的网格总数为m个,最后提取每个时刻的水位值,并采用matlab数据分析提取每个时刻的水位值,计算得到多个历时的每个河段下游出口断面的水位值。
[0078]
本发明提出了一种基于非结构网格的计算区域多gpu划分方法,创建了一种多gpu
并行计算框架的河流泥沙输移过程数值模型,较传统泥沙输移运动模拟更具有多过程准确模拟和高效模拟优势特征,可快速且可靠地预测不同断面的水位变化,为快速制定洪水灾害的应急预案提供支撑。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献