2011-11-02 91 views
7

我需要一個Python模塊/包,它提供了一個網格,我可以在其中進行計算科學?我沒有做圖形,所以我不認爲攪拌機包是我想要的。在Python中計算科學的網格生成

有沒有人知道一個好的包裝?

+1

一個網格是什麼?平面區域?表面?一個固體?你打算在網格上做什麼樣的計算? – lhf

+0

我只是一個1 + D笛卡爾網格;即很多盒子。我不知道我會做什麼樣的計算(還)。我只是想在自己做計算的時候做好自己的準備。 – jlconlin

回答

5

如果您嘗試解決網格上的FE或CFD樣式方程,則可以在2維和3維中使用MeshPy。 Meshpy是現有工具tetgentriangle的一個很好的包裝。

如果您正在尋找更爲典型的圖形樣式網格,在PyCon 2011 "Algorithmic Generation of OpenGL Geometry"上有一個有趣的演講,其中描述了一種實用的過程網格生成方法。從演示文稿中的代碼可online

如果你想從數據表面重建,你不能走過去的Standford 3D Scanning Repository,斯坦福兔子

編輯家:

無依賴的替代方案可能是使用諸如獨立於平臺的gmsh之類的東西,並使用類似工具在其後端進行網格劃分。

+0

我找到了MeshPy包。如果我理解正確,它使用Boost.Python包。我希望避免外部依賴;但是對於一個複雜的軟件包,我猜測沒有外部依賴關係就很難做到。 – jlconlin

+0

在Linux上,依賴關係很容易滿足。在Windows上,事情可能會變得更加困難,因爲你也會依賴於python的版本。從源代碼安裝boost並不是那麼糟糕,只需要很長時間,如果這有助於http://www.boostpro,windows安裝程序可能會讓你更快。com/download/ –

+0

我實際上在Mac上需要這個。那裏的依賴關係不好? – jlconlin

0

我推薦使用NumPy(特別是如果您以前使用過MATLAB)。許多在python中工作的計算科學家/機械工程師可能會同意,但我有點偏頗,因爲它在我研究的最後一年發現了它的方式。它是SciPy的一部分:http://numpy.scipy.org/ 我喜歡 numpy.linspace(a,b,N)這使得從a到b的等距值的N長度向量。您可以使用 numpy.ndarray來製作N x M矩陣,或者如果您想要2D陣列,請使用 numpy.meshgrid

4

最有用的包在那裏也許

我創建了a repo展示了一些示例。

(聲明:我是pygmsh和frentos的作者。)