Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

有限要素法で格子分割 for Python

有限要素法の勉強中。3日目。 これまで研究で有限要素法(FEM)や有限体積法(FVM)をやってきた。しかし、それらは汎用コードの恩恵を受けて、GUI上で操作するだけであった。しかし、エンジニアたるもの自分でコーディングしなければという趣味的な衝動を受け、実装を試みている。

有限要素法の基本

  1. GEOMETRY: 領域設定
  2. MESHER: 格子生成
  3. BC: 境界条件・初期条件の設定
  4. SOLVE: 解析
  5. POST PROSSECE: 結果の表示

格子生成

まず初めにつまづいたのが、格子生成である。これが出来なければなにもはじまらない。 hollow_cylinder

格子(メッシュ)というのは、解析する形状を細かい領域に分割することである。格子には(二次元では)三角形や四角形が主に使われる。物理シミュレーションの分野以外にも、3Dのイメージ等で使われる。

ドロネー線図を使っての、格子分割が重要なようだ。

計算幾何講義」 http://www.kanenko.com/~kanenko/KOUGI/CompGeo/cpgeoc.pdf

実装してみる

有限要素法では、要素(エレメント)とそれを形成する節点(ポイント)が必要である。自動格子分割では、要素と節点の管理をどうするかがキモである。とりあえず四角要素で格子分割してみた。

https://gist.github.com/peace098beat/d4738a60e9c9e2e63c23

とりあえず、四角形要素に対して、各要素を保持しながら四角形を作ることができた。コーディング初心者の僕では難しかった。

 

pixmap

 

 

次回は、この四角系を三角要素に分割したい。分割では要素の削除・追加等の更新作業が必要になるのでまたややこしくなりそう。

 

 

参考

「基本的な有限要素法」 http://hplgit.github.io/INF5620/doc/notes/fem-sphinx/main_fem.html 1ページだが、非常にたくさんの資料が詰め込まれている。 「人工環境設計解析工学 メッシュ生成と アダプティブリメッシング」 http://www.nasl.t.u-tokyo.ac.jp/katsu/lectures/ee-analysis/adaptive.pdf 「2次元の階層メッシュを用いた高速なアダプティブ解析」 http://mps.q.t.u-tokyo.ac.jp/~muro/ResearchAreas5_J.htm

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

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

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

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

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

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