用Python进行CFD工作
我是一名气象学家,最近我在尝试研究自己制作探测器的可能性。
为了实现这个目标,我有以下工作计划:
- 我想使用pyformex来生成3D模型。另一个选择是openSCAD。不过我先从pyformex开始,生成简单的圆柱形探测器模型,并添加一些额外的功能,比如进气管等。
- 接下来,我想使用PyDistMesh将模型分割成网格,并用Xrt准备一个光线追踪的点云模型。
- 在第三步,我想进行计算流体力学(CFD)相关的工作。
现在,我有几个问题:
- 有没有其他简单的Python库可以用来生成3D模型?我希望有一个非常简单的系统,可以像这样发出命令:
p = Parallelogram (length, height, width)
,或者p.position(x,y,z)
等。如果能有内置的鼠标交互功能就更好了,也就是说,有一个可以用来显示模型的绘图组件,我可以用鼠标旋转、缩放和移动。 - 还有其他的网格生成工具吗?
- 在这一步,我需要一个多物理场系统。我尝试过使用OpenFOAM,但它太庞大了(不容易上手)。我看过SU2,但它似乎更关注航空工程,而不是流体动力学(我想模拟探测器的飞行,这更接近航空工程,同时也涉及大气状态)。Fluidity似乎更符合我的需求,但我找不到它的Python版本。那么有没有一些通用的、不太复杂的多物理场Python库,适合地球物理和一般的水动力学模拟?我也看过MOOSE,但没有找到它的Python绑定。
- 科学可视化方面:有没有一些3维或4维(或者更高维度)的可视化库?如果可能的话,我希望能发出简单的命令,比如
Plot
,而不是先生成一个窗口/表单,然后再把图表放上去。
最后,也是最重要的,如果用C++、Fortran或其他语言(除了Java)也能做到这些,我也会考虑使用它们。
1 个回答
1
你可以看看 http://freecadweb.org/。这个项目似乎正在积极开发中。它是一个相对完整的开源CAD软件,使用Python编写。我相信它也有一些网格生成的工具。
如果你对计算流体力学(cfd)感兴趣,可以考虑使用openfoam - http://www.openfoam.com/。这是一个开源的cfd软件,不过学习起来可能会有点难。不过,似乎有一些Python库可以和它连接,不过我不太确定这些库的活跃程度: