1.已知t=n时刻,A’(i-1,j-1) B‘(i-1,j+1) C’(i+1,j+1) D‘(i+1,j-1) 节点,中心是P(i,j)点
, ,
初始条件设置为全局u,v为一个相同的常数,则q0=0
求出ABCD点坐标(x,y)
2.插值求解ABCD的u、v、h、q
f = interpolate.interp2d(x, y, z, kind='cubic')
kind: {‘linear’, ‘cubic’, ‘quintic’},可选
3.求出中间变量e1 e2 e3 e4,再计算P点的uvhq
a*b*c,对位点乘,再对行求和,得到[e1 e2 e3 e4]
内部节点
4.重新计算ABCD 坐标xy
5.边界点的处理
A——e1,B——e2,C——e3,D——e4
右侧AB——e1e2,P xmin
左侧CD——e3e4,P xmax(沿x轴,原点是左)
上边AD——e1e4,P ymax
下边BC——e2e3,P ymin
5种边界条件的已知情况,uvhq只需知道2个,就能求出另外两个
(1)给定速度,已知u v
竖直边界(与x垂直)(左右):up=f(t),vp=0
水平边界(与y垂直)(上下):up=0,vp=f(t)
(2)不透水边界,给定u或v,q
左右:up=0 ,qp=0
上下:vp=0 ,qp=0
(3) 不透水边界,给定u,v=0
(4)水位边界,给定h(t)
左右:vp=0 ,hp=h(t)
上下:up=0 ,hp=h(t)
左侧节点:
上边节点:
下边节点:
角,两边都是边界
以h边界的左右公式,设qp=0,计算出左上、左下、右上、右下角节点
(5)堰边界
过堰水流速度
Cv是流速系数,hd是参照水深
右侧边界