はじめに
本シリーズでは、3Dモデリングソフト「Rhinoceros(ライノセラス)」上で動作するビジュアルプログラミング言語 Grasshopper 上でFEM解析を行えるコンポーネントを計算を理解してイチから実装する過程を記録します。
FEM(有限要素法)解析に挑戦する中で直面した課題や、試行錯誤した内容をアウトプットすることで、誰かの何かの助けになればと思ってます。
最初は平面応力要素、板要素、3次元要素といった基本的な線形解析から始めます。どこまでできるかわかりませんが、材料非線形、幾何学的非線形、トポロジー最適化なども深く理解したいので、記事にするかもしれません。
Grasshopperについて、FEM解析について、プログラミングについて、だれかの役に立てばうれしいです。
FEM解析とは?
本記事をご覧になられている方は、ご存知の方がほとんどかと思いますが、FEM(Finite Element Method:有限要素法)は、複雑な形状や構造を持つ物体を要素に分割して、その挙動を数値解析する手法です。FEM解析のほかにFEAという言葉も目にすることもあるかと思いますが、FEAはFinite Element Analysisの略でFEM解析と同じ意味です。
なぜイチから作るの?
Grasshopper上でFEM解析を行うツールとしては、Karamba3Dをはじめとした優れたプラグインがすでに存在しています。それでも、なぜイチから自作しようとなったのか。
1. ブラックボックスの中身を理解したい
これが理由としては一番大きいです。現代では、コンピューターによる構造解析が当たり前になり、その計算がどんな仮定を含んで処理されているのか具体的な中身を知らずに使っている人が多いのではないでしょうか。
解析ソフトがコンピュータに計算させるために、どんな仮定や近似が組み込まれているのかを理解することで、設計においてより正しい判断ができるようになると考えています。FEMの基本的なことが分かるようになれば、各種構造解析ソフトの技術解説書の読みやすさが格段にアップしますよ。
それとなんとなく、最近の解析は高度化しすぎていて、到底自分なんかがわからないと思っている人が多いように思います。実際はそんなに難しくないし、絶対無理と思っていたものが自分の手で作れると感動します。
2. 自由に機能拡張ができる
既存のCAEソフトでは、機能が制限されており、「こんなことがしたい」と思っても実現できないことがあったりします。
自作であれば、痒いところに手が届くどころか、痒くなったら自分で「かき放題」です。思いついた機能をちょこっと追加したり、好きなようにカスタマイズして検証できるのが自作の醍醐味です。
3. プログラミングのスキルを向上させたい
最後の理由は、プログラミングの勉強のためです。FEM解析の実装は、数学的な理論も複雑でそれを実装するのも、プログラミングのプの字くらいしか理解していない私にはとても難題です。プログラミングスキルを磨く絶好の機会と考えてます。
おわりに
本記事では、Grasshopper上でFEM解析をイチから実装するモチベーションについてお話ししました。
FEM解析は、理論と実装の両面で難しい部分が多くありますが、その分うまく動いた時に脳汁が出ます。このシリーズが、FEMに興味のある方やGrasshopperでの開発に挑戦したい方の参考になれば嬉しく思います。
次回は 平面応力要素についてまずは理論編として、平面応力要素の理論についてかいつまんで解説していく予定です。