完整编辑:
我将提供关于整个问题的更多信息。项目处于早期阶段,我的问题实际上只涉及其中的一部分。
最终目标:
我目前正在尝试在Python中模拟围绕刚性障碍物周围的热空气流动。我有一个稳定的气流输入,在大量区域内的流动是暂态和湍流的。整个练习的目的是了解
- 空气流动的行为
- 障碍物如何加热
- 空气如何冷却以及气压下降
已完成的工作:
目前为止没有做太多工作,事情还处于早期阶段。我有一个二维矩形域和一个圆形障碍物。网格在大量区域和障碍物之间变得更细,因为有趣的事情发生在这里。目前我只考虑气流,没有对流或传热。我使用FEniCS软件集来求解Navier-Stokes方程。Fenics带有一个使用Chorin投影方法的N-S求解器示例,我改编了此示例以适应自己的设置。我将刚性体建模为具有无滑移边界条件的区域(即我将空气流动的速度设为零)。求解器仍然在该区域内求解N-S方程,特别是障碍物内部的压力会随时间变化。也许避免这种情况并将N-S求解器限制为大量区域是一个更好的想法。但是目前我认为这不会对速度产生太大影响。
问题:
这个东西运行得相当慢。如果最终模拟需要几天时间,我不介意,但目前只是二维流体流动围绕一个障碍物,网格不像我最终想要的那样细。我希望这能更快一些,因为当热量出现时会变得更加复杂。
我的问题:
归根结底只有一个问题:
在Python中解决Navier-Stokes方程的快速算法或方法是什么?
我完全可以自己从头编写求解器,但这也引起了同样的问题。今天早上我想到投影方法可能不是最坏的想法,因为它分离了压力和速度升级,我可以尝试将其分配给不同的CPU内核。