流体流动,传热和Python

时间:2011-01-22 13:24:11

标签: python physics scientific-computing pde

完整编辑:

我将提供有关整个问题的更多信息。该项目处于早期阶段,我的问题实际上只是该事项的一小部分。

最终目标:
我目前正在尝试模拟Python中刚性障碍物周围的热空气流动。我有一个稳定的空气流入,大量的流动是短暂的和湍流。整个练习的目的是了解如何 - 气流表现为
- 障碍物加热
- 空气冷却,气压下降

到目前为止已完成:
不多,事情还处于早期阶段。我有一个2d矩形域和一个圆形障碍物。网格在体积和障碍物之间的边界越来越精细,因为这是有趣的东西发生的地方。目前我只考虑气流,没有对流或传热。我使用FEniCS软件集来解决Navier-Stokes方程。 Fenics附带了使用Chorin投影方法的N-S求解器的示例,我将此示例应用于我的设置。我将刚体建模为具有无滑移边界条件的区域(即我将气流速度设置为零)。求解器仍然在该区域中求解N-S方程,特别是障碍物内的压力随时间变化。可能最好避免这种情况并将N-S求解器限制在体积内。但目前我认为这不会对速度产生太大影响。

问题:
事情运行得很慢。我不介意最后的模拟是否需要几天,但目前只有2d的流体绕过障碍物并且网格不像我希望的那样精细。我希望这会更快,因为当热量发挥作用时它会变得更加复杂。

我的问题:
归结为一个问题:

在Python中解决Navier-Stokes方程的快速算法或方法是什么?

从头开始编写求解器我完全没问题,但这引发了同样的问题。今天早上我发现投影方法可能不是最糟糕的想法,因为它解除了压力和速度升级,我可以尝试将其分配给不同的CPU内核。

1 个答案:

答案 0 :(得分:6)

如果你从头开始编写,Python实际上是一个很好的选择。但是你需要很多背景才能从头开始。

耦合解决方案是一个难题。

有人向我指出你正在使用一个包 - FEniCS(谢谢你,Sven)。我原来的答案需要一些修改。我将从几个关于物理学的问题开始,然后转向包。

如果该温度下的空气马赫数小于0.1,则不可压缩的Navier Stokes适用于类似空气的气体。那是你的问题吗?这可能是真的,但我想我会问。

Navier Stokes不适用于你的坚固障碍。如果用一个网格模拟整个事物,你如何描述实体?它是高粘度流体吗?这可能使方程系统病态并且难以解决。如果您使用显式集成,它也会影响稳定的时间步长。

是稳定流动还是瞬态流动? (稳定更容易)是流动层流还是湍流? (层流更容易)

它是固体障碍物中的传导热传递和流体中的传导/对流。流体将沿着表面的固体障碍物具有动量和热边界层,网格必须解决这些障碍物。这就是固体和流体之间发生重要的热传递的地方。这将需要固体表面局部的精细网格来解决从边界条件到远场速度和温度的过渡。您是否已在网格中考虑到这一点?

在我看来,FEniCS正在使用有限元,但我没有看到文档中的任何内容告诉我你应该如何将动量和能量方程耦合在一起。

你必须在这里多说一些才能得到体面的建议。物理Stackoverflow中是否有数值方法?你需要它。