完整编辑:
我将提供有关整个问题的更多信息。该项目处于早期阶段,我的问题实际上只是关于这件事的一小部分。
最终目标:
我目前正在尝试在 Python 中模拟热空气在刚性障碍物周围的流动。我有稳定的空气流入,大量的流动是短暂的和湍流的。整个练习的目的是了解
- 气流的行为
- 障碍物升温
- 空气冷却和气压下降
到目前为止做的:
不多,事情还处于早期阶段。我有一个二维矩形域和一个圆形障碍物。网格在体块和障碍物之间的边界处变得越来越精细,因为那是发生有趣事情的地方。目前我只考虑气流,没有对流或热传递。我使用FEniCS用于求解 Navier-Stokes 方程的软件集合。Fenics 附带了一个使用 Chorin 投影方法的 NS 求解器示例,我将此示例应用于我的设置。我将刚体建模为具有无滑移边界条件的区域(即我将气流速度设置为零)。求解器仍然求解该区域的 NS 方程,特别是障碍物内的压力随时间变化。避免这种情况并将 NS 求解器限制在大容量范围内可能是一个更好的主意。但目前我认为这对速度影响不大。
问题:
事情运行得很慢。我不介意最终模拟是否需要几天时间,但目前它只是围绕障碍物的二维流体流动,并且网格最终没有我想要的那么好。我希望这会更快,因为当热量发挥作用时它会变得更加复杂。
我的问题:
归结为一个问题:
在 Python 中求解 Navier-Stokes 方程的快速算法或方法是什么?
我完全可以从头开始编写求解器,但这提出了同样的问题。今天早上我突然想到,投影方法可能不是最糟糕的想法,因为它解耦了压力和速度升级,我可以尝试将其分配给不同的 CPU 内核。