Python中计算科学的网格生成

Python中计算科学的网格生成,python,math,computational-geometry,mesh,Python,Math,Computational Geometry,Mesh,我需要一个Python模块/包,它提供了一个网格,我可以在这个网格上进行计算科学?我不做图形,所以我不认为搅拌机包是我想要的 有人知道一个好的软件包吗?如果你想在网格上求解FE或CFD风格的方程,你可以在二维和三维中使用。Meshpy是一个很好的现有工具和工具的包装器 如果您正在寻找更典型的图形样式网格,在PyCon 2011上有一个有趣的演讲,它描述了一种实用的程序网格生成方法。演示文稿中的代码可用 如果你对从数据重建曲面感兴趣,你就不能越过斯坦福兔子的家 编辑: 一个无依赖性的替代方案可能是

我需要一个Python模块/包,它提供了一个网格,我可以在这个网格上进行计算科学?我不做图形,所以我不认为搅拌机包是我想要的


有人知道一个好的软件包吗?

如果你想在网格上求解FE或CFD风格的方程,你可以在二维和三维中使用。Meshpy是一个很好的现有工具和工具的包装器

如果您正在寻找更典型的图形样式网格,在PyCon 2011上有一个有趣的演讲,它描述了一种实用的程序网格生成方法。演示文稿中的代码可用

如果你对从数据重建曲面感兴趣,你就不能越过斯坦福兔子的家

编辑:

一个无依赖性的替代方案可能是使用类似的东西,它是平台独立的,并且在其后端使用类似于meshpy的工具。

我建议使用NumPy(特别是如果您以前使用过MATLAB)。许多在python中工作的计算科学家/机械工程师可能都同意这一点,但我有偏见,因为在我去年的大部分研究中都发现了这一点。这是SciPy的一部分:
我喜欢numpy.linspace(a,b,N),它生成一个N长度的向量,向量的值从a到b等间距分布。可以使用numpy.ndarray生成一个nx M矩阵,如果需要二维阵列,也可以使用numpy.meshgrid

最有用的软件包可能是

  • ,
  • ,
  • ,
  • ,及
  • ,
此外,还有一种改进网格质量的方法


(免责声明:我是pygmsh、pygalmesh、dmsh、meshzoo和optimesh的作者。)

我找到了MeshPy包。如果我理解正确,它使用Boost.Python包。我希望避免外部依赖;但是对于一个复杂的软件包,我猜如果没有外部依赖,它将很难做到。在windows上,事情可能会变得更加困难,因为您还将依赖于python的版本。boost的安装从源代码上来说并不是那么糟糕,只是很耗时,如果这有助于我在Mac上实际需要它的话,windows安装程序可能会让你运行得更快。依赖关系是否不好?MeshPy现在内置了Boost.Python的一个子集,因此没有需要担心的外部依赖关系。网格用于什么?平面区域?表面?固体?你打算在网格上做什么样的计算?我只是一个1+D笛卡尔网格;i、 例如,很多盒子。我还不确定(现在)要做什么样的计算。我只是想在做计算的时候做好准备。你知道有一个软件包可以用圆周上的点数来三角化一个圆吗?“dmsh”包对一个圆进行三角形化,但它使用沿圆周的每个三角形边的长度,而不是三角形的数量points@mathsnerd将边缘长度调整为目标点数有什么问题?如果我正确理解您的意思,那么我很乐意这样做,因为我非常喜欢dmsh的输出圆圈,但我不知道如何做,因为它不像:
圆周/h0=numPoints
,所以我不知道如何调整它。你有什么建议吗?@mathsnerd我不明白你的意思。当然是周长/h0=numPoints,还有什么?如果您尝试了一些东西,但没有成功,stackoverflow评论部分就不是讨论问题的合适地方。