読者です 読者をやめる 読者になる 読者になる

Hope is a Dream. Dream is a Hope.

非公開ふぃふぃ工房ブログ

有限要素法で格子分割 for Python | その2 ドロネー線図

数値計算

Pythonで有限要素法のプログラムを作っているが、格子分割にとまどっている。ポリゴン関連で調べていると、どうもドロネー図を利用している感じだった。

 

Pythonでドロネー図

scipyのDelaunayを使うことで、任意の点からドロネー図を作ることができる。

http://blog.monophile.net/posts/programming/delaunay.html

from scipy.spatial import Delaunay
import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(2,200)
tri = Dealunay(x)
plt.triplot(x[:,0],x[:,1],tri.vertices)
plt.show()

だたし動かない。

QH6214 qhull input error: not enough points(2) to construct initial simplex (need 202)

While executing: | qhull d Qx Qbb Qz Qc Qt
Options selected for Qhull 2012.1 2012/02/18:
run-id 1307781299 delaunay Qxact-merge Qbbound-last Qz-infinity-point
Qcoplanar-keep Qtriangulate _zero-centrum Qinterior-keep
Q3-no-merge-vertices-dim-high
Traceback (most recent call last):
File "E:/Python/FEM_MeshingTool/prototpye_01/main.py", line 367, in <module>
tri = Delaunay(x)
File "qhull.pyx", line 1736, in scipy.spatial.qhull.Delaunay.__init__ (scipy\spatial\qhull.c:14349)
File "qhull.pyx", line 328, in scipy.spatial.qhull._Qhull.__init__ (scipy\spatial\qhull.c:3681)
scipy.spatial.qhull.QhullError: Qhull error

Scipy.spatial.Delaunayのサンプル下なら動いた。

http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.spatial.Delaunay.html

points = np.array([[0, 0], [0, 1.1], [1, 0], [1, 1]])
from scipy.spatial import Delaunay
tri = Delaunay(points)

Python Triangle

http://dzhelil.info/triangle/

 

やっと道がみえた、次回はScipyのDelaunayをキーワードに調査する。

次の記事>

図解 設計技術者のための有限要素法はじめの一歩 (KS理工学専門書)

図解 設計技術者のための有限要素法はじめの一歩 (KS理工学専門書)

理論と実務がつながる 実践有限要素法シミュレーション―汎用コードで正しい結果を得るための実践的知識

理論と実務がつながる 実践有限要素法シミュレーション―汎用コードで正しい結果を得るための実践的知識

有限要素法概説―理工学における基礎と応用 (FEM+BEM (3))

有限要素法概説―理工学における基礎と応用 (FEM+BEM (3))

<解析塾秘伝>有限要素法に必要な数学

<解析塾秘伝>有限要素法に必要な数学

<解析塾秘伝>有限要素法のつくり方! -FEMプログラミングの手順とノウハウ-

<解析塾秘伝>有限要素法のつくり方! -FEMプログラミングの手順とノウハウ-

有限要素法入門

有限要素法入門

俺の彼女と幼なじみが修羅場すぎる12 (GA文庫)

俺の彼女と幼なじみが修羅場すぎる12 (GA文庫)