明渠中的湍流

尽管明渠中的湍流也是使用3节点网络单元建模的,但求解过程却大不相同。这是因为流向通常是已知的,并且水跃(弗劳德数等于1;这相当于气动流中的声速条件)可能发生在单元内部,即使横截面是恒定的。这使得建立非线性方程组并通过反复线性化系统来求解的方法变得非常困难。明渠湍流稳态方程的常用求解方法如下(首先聚焦于由一条单元线组成的单一渠道):

从上游单元开始这个迭代过程是合乎逻辑的,因为这样通常可以确定质量流量(而水库不能),并且如果存在某个超临界流段,则由上游条件控制。待求未知量为温度、流体深度(沿重力矢量方向测量;必须使用*DLOAD卡片指定重力矢量进行渠道计算)和质量流量。它们对应于表24中所示的自由度。临界深度实际上不是一个独立的未知量,一旦质量流量已知就会计算出来。


表24: 明渠节点处的自由度。
自由度 角节点 中点节点
0 温度 -
1 - 质量流量
2 深度 -
3 临界深度 -

目前,流体单元例程包括闸门(含堰)、直渠道、水库和收缩(含扩大和跌落)例程。IO单元(输入/输出)不需要例程,并且不被视为"真正的"单元。字段ineighe(i)给出节点i中真正单元的数量。字段iponoel和inoel允许确定属于节点i的所有单元(真正的和IO)。入口iponoel(i)指向inoel(1,iponoel(i))中的第一个单元,inoel(2,iponoel(i))指向下一个单元,依此类推,直到inoel(2,...)=0。单元nelem的上游、中游和下游节点分别称为nup、ndo和ndo,上游和下游邻居(假设只有一个)分别为nelup和neldo。上下游深度分别为hup和hdo。

还有用于计算以下内容的额外例程:

摩擦可以是White-Coolebrook类型(xks > 0)或Manning类型(Manning系数 = -xks,xks < 0)。对于White-Coolebrook,摩擦系数f根据粒度xks在friction_coefficient.f中计算。

计算模式(从上游到下游,即超临界,或从下游到上游,即亚临界)由变量mode(字符*1)表示,分别取'F'表示前进或'B'表示后退。如果前进模式(洪水曲线)暂时中断以计算回水曲线,则切换点(上述点A)存储在堆栈中:存储的切换点数为nstack,对于切换点i,A的上游单元存储在istack(1,i)中,对应于A的节点存储在istack(2,i)中。

上述迭代过程导致以下算法:

现在,给出了一些关于真正单元的更详细信息。



小节