1.一种基于通用计算的流域水质实时模拟方法,其特征在于,包括:步骤S1:通用计算框架下的流域网格划分;
步骤S2:流域水质模型的并行化设计;
其中,步骤S1包括依次执行1.1、1.2和1.3所列内容;
1.1栅格模式的流域网格划分;
1.2模拟网格的定义;
1.3网格邻域拓扑的构建;
步骤S2中包括依次执行2.1、2.2、2.3、2.4所列内容;
2.1通用计算对水质模型的基本要求;
2.2模拟网格的属性化;
2.3模拟网格的水动力并行算法设计;
2.4模拟网格的水质模拟并行算法设计;
所述2.3中包括三项计算,即:
I模拟网格水深的计算;
II模拟网格的水速计算;
III时间片上水动力模拟的并行计算流程;
III中,为保证水动力计算的可并行性,时间片上的水动力模拟分两步进行:第一步,水速增量计算,先依据水源点供水量计算模拟网格的水量增量,然后进行水速增量模拟,计算各网格单元新的水深和水速;第二步,水流迁移计算;以第一步得到的网格单元新水深和水速为基础,进行水流迁移计算,得到的水深和水速作为下一个时间片的初始水深和水速。
2.如权利要求1所述的基于通用计算的流域水质实时模拟方法,其特征在于,所述2.4中包括四项模拟及计算过程,即:i水速增量环节中的水质模拟;
ii水流迁移环节中的水质模拟;
iii污染物扩散模拟;
iv时间片上水质模拟的并行计算流程。
3.如权利要求2所述的基于通用计算的流域水质实时模拟方法,其特征在于,1.1栅格模式的流域网格划分:在栅格模式下,流域按一定分辨率划分为大小相等的矩形网格,网格中每一个单元称为像元;将栅格像元作为二维水质模型中的体积微元。
4.如权利要求3所述的基于通用计算的流域水质实时模拟方法,其特征在于,1.2模拟网格的定义:为河道设置最大水体范围,并假定在模拟时段内水和污染物运动局限于该范围内的像元;以此为基础,将流域范围内的像元分为两类,一类为水体像元,另一类为外部像元。
5.如权利要求4所述的基于通用计算的流域水质实时模拟方法,其特征在于,在二维水质模型中,每一个像元均需要与周围8邻域像元进行水和污染物交换,需要将与水体邻接的外部像元的相关属性同时存储到显存中;将与水体邻接的外部像元称为边界像元,则参与水质模拟的网格包括水体像元和边界像元两部分;其中,水体像元为实际水质计算的网格单元,边界像元为邻接的水体像元提供邻接属性的网格单元。
6.如权利要求5所述的基于通用计算的流域水质实时模拟方法,其特征在于,模拟网格集合表示为式(1):M={cellid|1≤id≤Nm} (1)式(1)中,Nm为集合中模拟网格的个数;id为各模拟网格在集合中存储的序号,用于唯一标识每一个模拟网格;
水质模拟所需的地形、水深、水速、污染物浓度均表达成长度为Nm的数组,模拟网格的数量决定了流域的水质模拟所需的显存大小。
7.如权利要求1所述的基于通用计算的流域水质实时模拟方法,其特征在于,1.3网格邻域拓扑的构建:模拟网格在污染物扩散与迁移计算时,在模拟网格划分的基础上,还要构建网格邻域拓扑;对于每一个模拟网格,其8邻域按照一定的顺序进行编码,依次记录邻域网格在模拟网格集合中的序号。
8.如权利要求1所述的基于通用计算的流域水质实时模拟方法,其特征在于,2.1通用计算对水质模型的基本要求是:在通用计算过程中,整体任务被划分为大量可并行的计算单元,每一个计算单元由一个内核独立完成,通用计算要求计算单元之间是相对独立的,每一个计算单元的计算结果对其他计算单元不产生任何影响,任务的执行结果与计算单元执行顺序无关;
二维水质模型在时间上将污染物扩散过程分解为相等间隔的时间片;
在每一个时间片上,水质模拟分解为微元为基本单位的模拟计算,上一个时间片微元模拟的污染物浓度,作为下一个时间片初始浓度;
通过时间片的迭代,实现流域水质模拟;以通用计算实现水质模拟,核心在于一个时间片上各模拟网格的计算独立性,即在水质模拟过程中,模拟网格仅能修改它自身的属性,不能修改其他网格的属性;在一个时间片上,各模拟网格的水流和污染物仅扩散到8邻域模拟网格中。
9.如权利要求8所述的基于通用计算的流域水质实时模拟方法,其特征在于,2.2模拟网格的属性化,其中,为实现水质模拟的通用计算,将模拟网格的属性表示为一个多元组,如式(2):cell={H,s,b,Wf,vf,cf,Wt,vt,ct} (2)式(2)中,H为网格的地形高度;s为网格类型,分为水体网格和边界像元两类;b为网格的邻域拓扑信息;Wf、vf、cf分别表示时间片上网格的初始水深、水速和污染物浓度;Wt、vt、ct分别表示时间片上网格的终止水深、水速和污染物浓度;
在时间片上,依据模拟网格的{Wf,vf,cf},计算得到该时间片的{Wt,vt,ct};下一个时间片计算时,将其进行交换;这种机制避免了模拟网格计算结果的相互影响,保证了计算单元的独立性,为通用计算的水质模拟奠定数据基础。
10.如权利要求9所述的基于通用计算的流域水质实时模拟方法,其特征在于,2.3模拟网格的水动力并行算法设计,其中,水动力模型是水质模型的基础;通过水动力模型,模拟出网格的水深和水速,依据水深和水速,模拟污染物的扩散、迁移和衰减;
设时间片序号为n,时间片时间序列t表示为式(3):
t={tn n≥1} (3)
相邻时间片时间差Δt见式(4):
Δt=tn+1‑tn (4)
在一个时间片上,模拟网格的水动力模拟核心在于水深、水速的计算;对于流域任一模拟网格,在模拟时表示为中心网格r,其8邻域网格表示为b。
11.如权利要求10所述的基于通用计算的流域水质实时模拟方法,其特征在于,时间片上的水动力模拟按如下方式进行:I模拟网格水深的计算
在栅格模式下,模拟网格的水体看作为一个立方体水柱,由于模拟网格为栅格模式下的一个像元,设像元分辨率为C,模拟网格的水量V由式(5)计算:2
Vr=WrC (5)
式(5)中,Wr为中心栅格的水深;
由式(5)可见,网格水量与水深为线性关系;在网格水深计算时,将所有输入输出水量均转换为水深,依据水量平衡原理,tn+1时刻的网格r的水深 见式(6):式(6)中, 为时间片上模拟网格的初始水深;ξr、 分别为时间片上模拟网格的供水和邻域网格的水量流入,代表了网格的水量收入; 和 分别为时间片上模拟网格的下渗量、蒸发量和水量流出量,代表网格的水量支出;
3
设某水源点流量为ξ,单位为m/s,则时间片上水源点所在网格因供水增加的水深ξr见式(7):式(7)中,N均为每小时需要迭代的时间片数;
在模型中将河道下渗率和蒸发率设定为常数,与 相乘后得到时间片上的 和为模拟网格在水平方向上的水量流入和流出,需要结合8邻域网格的水速和水深进行计算;为保证模拟网格水深计算的独立性,仅计算模拟网格在时间片上从邻域网格进入的水量和当前网格因水流迁移剩余的水量;设邻域网格b的水流速度矢量为 则流入到网格r的水量比例Sb→r为式(8):式中,(Δx、Δy)为邻域网格坐标相对中心网格坐标的偏移,单位为像素;vmax表示时间片上允许的最大速度标量;
中心网格剩余水量比例Sr为式(9):
依据质量守恒定律,中心网格因水流迁移,时间片输出水深为式(10):式(10)中, 表示中心网格tn和tn+1时刻的水深; 表示邻域网格tn时刻的水深; 分别表示tn时刻邻域网格b流入到中心网格r的水量比例; 表示tn时刻中心网格剩余水量比例;
依据式(9),当模拟网格水速大小等于vmax时,时间片上的网格水流全部流出;为保证模型正常运行,为流域设定固定的vmax,并认为流域任意位置上的水速均小于等于vmax;在实际模拟时,当水速超过vmax时,将其设置为vmax;因此,vmax决定了水质模拟的时间片间隔,见式(11):依据式(11),每小时需要迭代的时间片数N为:
II模拟网格的水速计算
重力和压力梯度力对模拟网格产生水平方向上的速度增量,通过中心网格和邻域网格水体高度差近拟模拟;设邻域栅格相对中心栅格的水体高差为ΔHb,时间片上邻域栅格对中心栅格产生的速度矢量增量ΔV表示为式(13):式(13)中,α为与水体密度、重力加速度、摩擦力相关的正数常量,通过流域实际水文数据进行率定;
地表水流由于受到地表摩擦力的影响,使水流速度发生垂直变化;在径流汇流模拟过程中,当水深低于给定阈值时,将水速乘以衰减系数以减小水流速度;设水流摩擦力的上界深度dmax,单位为m,下界深度为dmin,单位为m,衰减系数ε近拟定义为式(14):式(14)中,σ为摩擦比例系数,通过流域实际水文数据进行率定;
在一个时间片上,如果网格水速小于vmax,则网格水只有部分流出,同时也接纳8邻域网格的部分水量;依据动量守恒定律,网格因水流迁移,输出速度见式(15):III时间片上水动力模拟的并行计算流程:首先依据水源点供水量计算模拟网格的水量增量,然后进行水速增量模拟,计算各网格单元新的水深和水速;第二步,水流迁移计算;
以第一步得到的网格单元新水深和水速为基础,进行水流迁移计算,得到的水深和水速作为下一个时间片的初始水深和水速;
2.4模拟网格的水质模拟并行算法设计,其包括:
将水质模拟与水动力模型耦合,在水速增量、水流迁移环节中加入污染物迁移、扩散和衰减计算;
i水速增量环节中的水质模拟:水源点不仅是水流的供给点,也是污染物的供给点;设水源点排污浓度为δ,单位为mg/l,则水源点排污后,时间片上的输出浓度见式(16):式(16)中, 分别表示tn和tn+1时刻中心网格的污染物浓度; 为tn时刻中心网格的排污浓度;
在水速增量环节中,同时考虑污染物降解;污染物降解系数以天为单位,需要将其换算到一个时间片上污染物的降解率;设污染物降解系数在流域内为一个常数kd,则在时间片tn上的污染物降解率kn为式(17):
1/(24×N)
kn=1‑(1‑kd) (17)
综合式(16)和式(17),污染物输出浓度为:
ii水流迁移环节中的水质模拟:在水流迁移过程中,伴随着污染物的迁移;假定污染物在模拟网格中均匀分布,则依据质量守恒定律,因水流迁移,网格污染物浓度为式(19):式中,为邻域栅格b在tn时刻的污染物浓度;
iii污染物扩散模拟:在二维水质模型中,中心网格r向邻域网格b扩散,导致中心网格污染物减少;邻域网格b向中心网格r扩散,导致中心网格污染物增加;将污染物扩散系数设置为一个常量E,则相邻两网格单元因扩散导致的污染物实际迁移量与它们的浓度差有关;
将相邻两网格单元的水均看作为一个立方体水柱,水柱的高度等于水深,并认为污染物扩散发生在两水柱交叠区域,其水柱高度Wbr为式(20):Wbr=max(min(Hr+Wr,Hb+Wb)‑max(Hr,Hb),0) (20)为定量描述水流混合模拟导致的污染物浓度变化,将所述常量E换算到时间片上污染物向外扩散的距离en,见式(21):综合式(20)和式(21),中心网格污染物扩散后浓度为式(22):由于相邻2个网格的污染物交叠区相同,故在时间片污染物扩散模拟过程中,中心网格独立计算的结果仍然满足污染物质量守恒。
12.如权利要求11所述的基于通用计算的流域水质实时模拟方法,其特征在于,iv时间片上水质模拟的并行计算流程:时间片上的水质模拟分三步进行,即水速增量计算、水流迁移计算和污染物扩散模拟;每一步输出的污染物浓度作为下一步污染物初始浓度;污染物扩散模拟完成后输出的污染物浓度为下一个时间片的初始浓度。