数值解法
二维对流扩散方程的求解,依托于二维水动力模型的求解出的流场,采用有限体积法进行求解。
有限体积离散
在空间上,在任意有限控制体上进行积分得:
∂t∂∫ΩhcdΩ+∫Ω(∂x∂huc+∂x∂hvc)dΩ=∫Ω(∂x∂(hEx∂x∂c)+∂y∂(hEy∂y∂c))dΩ+∫ΩsdΩ(1)
根据格林公式将面积分转为线积分:
∂t∂∫ΩhcdΩ+∫∂Ω[huc,hvc]⋅ndℓ=∫∂Ω([hEx∂x∂c,hEy∂y∂c]⋅ndℓ+∫ΩsdΩ(2)
其中∂Ω为控制体的边界,n为边界的外法向量,dΩ、dℓ分别为面积微元和弧微元。针对采用三角形网格系统的二维水动力模型,每个控制体为三角形,线积分有:
∫∂Ω[huc,hvc]⋅ndℓ=k=1∑3[huc,hvc]⋅[nk,x,nk,y]Lk(3)
∫∂Ω([hEx∂x∂c,hEy∂y∂c]⋅ndℓ=k=1∑3[hEx∂x∂c,hEy∂y∂c]⋅[nk,x,nk,y]Lk(4)
其中Lk为第条边的长度,[nk,x,nk,y]为第条边的外法向量。
令Qc为在单元Ci内的平均值,即:
Qc=Ωi1∫CihcdΩi(5)
则可以得到半离散式常微方程:
ΩidtdQc=−k=1∑3[huc,hvc]⋅[nk,x,nk,y]Lk+k=1∑3[hEx∂x∂c,hEy∂y∂c]⋅[nk,x,nk,y]Lk+Sc(6)
其中Ωi为单元Ci的面积,Sc为源项。
在实际计算时,单元每条边的对质量流通量已经由二维潜水方程采用 HLLC 黎曼求解器求出,水质的通量采用一阶迎风格式:
FluxC=flux0{cLcRif flux0>0.0else(7)
计算,其中cL、cR分别为边左右水质浓度的重构值。重构的方法同流速的重构。
扩散通量采用:
Fdiff=21(hL+hR)(Ex∂xcnx+Ey∂ycny)(8)
其中分hL、hR别为边左右水深的重构值,∂xc、∂yc分别为边左右水质浓度的原始梯度。
时间二阶积分
在时间上,采用 Hancock 预估校正法,在采用合理的时间步长的条件下可以稳定运行,虽然不具有采用四阶龙格库塔法具有 TVD 性质的优点,但只需要计算一次黎曼问题,效率能够大大提高。
1.预测步
在预测步,计算区域内的水质状态由t时刻更新到t+2Δt时刻,其中Δt为时间步长。
若单元为全淹没状态,浓度的预测量为:
cit+2Δt=ciΔt+2Δt(u∂xc+v∂yc)∣it(9)
否则采用当前时刻的浓度作为预测量。
2.校正步
在校正步,水质状态由t时刻更新到t+Δt时刻,以t+2Δt时刻水流、水质的状态计算式(5.1-7)右端的通量,时间上采用一阶差分向前差分,即:
(hc)it+Δt=(hc)it+ΩiΔt{−k=1∑3[huc,hvc]⋅[nk,x,nk,y]Lk+k=1∑3[hEx∂x∂c,hEy∂y∂c]⋅[nk,x,nk,y]Lk+Sc}it+2Δt(10)