模拟一维管道网络上的平流

计算科学 流体动力学 模拟 可视化 平流
2021-11-28 20:55:13

我正在尝试创建一个模拟,以帮助可视化不同的化学成分如何通过具有相关阀门、泵和化学输入的管道网络流动。在此模拟中,管道将以 1D 形式表示,并且泵流量和阀门状态理想地能够在模拟过程中由用户更改。

例如,最简单的管网可能由三个管道和两个泵组成。下图显示了理想情况下模拟能够实时执行的操作。箭头代表泵,圆圈代表输入和输出,线条代表管道。

简单管网示例

我已经创建了一个程序,该程序可以表示具有给定配置中的泵和阀门的这种管网,并确定每条管道中的流量。

我遇到的困难是模拟化学品通过管道的质量传输。到目前为止,我已经尝试了一种基于代理的方法,其中离散的流体丸剂通过管道(每个管道中的每个 v_pipe * dt 米一个丸剂)和一个简单的有限差分方案。基于代理的方法在某些情况下有效,但在管道流速发生变化时效果不佳。我在单个管道的有限差分法上取得了一些成功,但在数值扩散方面存在问题,并且无法使其与管道网络很好地配合使用。

是否有一种很好的模拟方法可以在每个管道中的流速可以变化的管道网络中实现这样的质量传输模拟?像有限体积法这样的东西会起作用吗?

2个回答

如果您认为流经网络的介质是不可压缩的(例如,液体或低速气体),这实际上是一个标准建模问题。然后,您可以根据通量(每秒升或千克)而不是离散包裹来制定所有内容。关键的实现是进入管道一端的通量等于从另一端出来的通量。然后,您在有泵的那些入口处规定通量,并且在所有内部接头处您有质量守恒,即进入每个节点的所有通量之和为零。您可能必须拥有一个或多个开放的出口(例如您示例中右侧的出口),以确保您没有过度确定的系统。你拥有的变量是通量xi通过管道i对于所有的管道。

这取决于您希望模拟的真实程度。

您可以采用元胞自动机方法(可能类似于您的 bolus 方法)。自动机的行为就像在流体中移动的小代理一样。给每个元胞自动机简单的规则,比如:'在每个时间步以管道速度向下移动这个管道''如果你到达一个节点并且它是关闭的停止''如果节点是打开的,沿着两个管道移动''如果速度通过速度的分数变化增加/减少变亮/变暗的颜色'

交界处的事情变得有点棘手,因为您需要应用尽可能保持质量的规则。

原则上,每条管道都可以是它自己的有限体积或有限差分模拟,并在适当的边界条件下连接在一起。因为你只需要平流(或者可能在未来的扩散?)有限体积是一个很好的选择。正如您所注意到的,数值扩散在这里成为一个问题。为了解决这个问题,我将转向有限体积方法并应用MUSCL 方案这样的通量限制器