完整的编辑:
我将提供有关整个问题的更多信息。该项目尚处于初期阶段,我的问题实际上只是事情的一小部分。
最终目标:
我目前正在尝试模拟Python中刚性障碍周围的热风流动。我有稳定的空气流入,大块的流动是 transient 的和湍流的。整个练习的目的是了解
-气流表现
-障碍升温
-空气冷却,气压下降
到目前为止:
不多,事情还处于初期。我有一个二维矩形域和一个圆形障碍物。网格在体积和障碍物之间的边界处变得越来越细,因为这是有趣的事情发生的地方。目前,我仅考虑气流,不考虑对流或传热。我使用FEniCS软件集合来求解Navier-Stokes方程。 Fenics附带了一个使用Chorin投影方法的N-S求解器的示例,我将此示例调整为我的设置。我将刚体建模为具有无边界边界条件的区域(即,将气流速度设置为零)。求解器仍在该区域求解N-S方程,特别是障碍物内部的压力会随时间变化。最好避免这种情况,并将N-S解算器限制在大多数范围内。但是目前,我认为这不会对速度产生太大影响。
问题:
事情运行得很慢。我不介意最终的模拟是否需要花费几天的时间,但是目前只有2d的流体绕着障碍物流动,并且网格还不如我最终希望的那样好。我希望它能更快一些,因为当热开始发挥作用时,它将变得更加复杂。
我的问题:
它归结为一个问题:
用Python解决Navier-Stokes方程的快速算法或方法是什么?
我完全可以从头开始编写求解器,但这引起了同样的问题。今天早上,我想到投影方法可能不是最坏的主意,因为它使压力和速度提升脱钩,我可以尝试将其分配给不同的CPU内核。
最佳答案
如果您是从头开始编写Python的,那么实际上是一个不错的选择。但是您需要大量的背景知识才能从头开始。
耦合解决方案是一个难题。
有人向我指出,您正在使用一个软件包-FEniCS(谢谢您,Sven)。我的原始答案需要一些修改。我将从有关物理的几个问题开始,然后转向包装。
如果在该温度下空气的马赫数小于0.1,则不可压缩的Navier斯托克斯适用于像空气这样的气体。您的问题就是这种情况吗?可能是真的,但是我想问一下。
Navier Stokes不适用于您的坚实障碍。如果用一个网格对整个对象建模,那么如何描述实体?它是高粘度流体吗?这可能会使方程组变得条件恶劣且难以求解。如果您使用显式积分,也会影响稳定的时间步长。
它是稳定的流动还是 transient 的? (更容易稳定)流动是层流还是湍流? (更容易分层)
它是固体障碍物中的传导热传递,以及流体中的传导/对流。流体将沿着网格必须解决的表面的固体障碍物具有动量和热边界层。那就是固体与流体之间重要的热传递发生的地方。这些将需要固体表面局部的细网格,以解决从边界条件到远场速度和温度的过渡。您是否在网格中考虑了这一点?
在我看来,FEniCS使用的是有限元,但我在文档中看不到任何东西可以告诉我如何将动量和能量方程式耦合在一起。
您必须在这里告诉很多更多的信息才能获得体面的建议。物理Stackoverflow中是否存在数值方法?您将需要它。
关于python - 流体流动,传热和Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4768045/