CAE FEM プログラミング

有限要素法の弾塑性解析Pythonコードを実行してみた

投稿日:2024年7月6日 更新日:

有限要素法、弾塑性解析についてWeb検索をしていた所、Pythonコードを見つけました。

https://qiita.com/Altaka4128/items/86e25d66196dfe7160f3

塑性域に達した時の処理について理解を深める事ができて大変ありがたいです。

実行方法

記事よりコードをコピーして以下のファイルを用意しました。

・main.py
・FEM1d.py
・Node1d.py
・d1t2.py
・Material.py
・Boundary1d.py

コマンドプロンプトでpythonコードを配置したディレクトリにいき、

py -3.12 main.py

で実行できました。
(私の環境ではpython3.9, 3.10, 3.12を共存させています。解析実行は最新のpython3.12で行いました。)

ゼロ割のWarningがでる原因はFEM1d.py内のvecDispFirstがvecDispの参照渡しとなっているからのようです。

vecDispFirst = vecDisp.copy()

としておいたほうが良さそうです。
この修正をしなくても一応解析は最後まで流れて正しい結果が得られます。これは収束判定を2つ行っているので、ゼロ割を起こす方を無視しても、もう一方の

if np.isclose(LA.norm(vecd), 0.0):

で収束判定を正しく行えているからのようです。

Abaqus Learning Edition2023で検証

記事内にAbaqusのinpファイルもあるのでAbaqusでも実行してみました。

1次元モデルなのでただの棒線ですが、変位量が一致する結果が得られました。

-CAE, FEM, プログラミング

執筆者:

関連記事

iPhoneアプリ[FEM BLOCKi]で有限要素解析をやってみた第3回 固有値解析

世界一、お気楽な有限要素法講座の第3回目の記事です。今回は固有値解析をやってみます。これまでと同様にWeb上から例題を探し、iPhoneアプリFEM BLOCKiで実行してみます。 なお、本記事中では …

iframeでCookieを取得、書き込みをする方法 SameSite Secure -Javascript

ブラウザゲームを公開していてユーザーの設定をcookieに保存したくなりました。諸事情でiframeを使用しておりcookieの取得に苦労したので、その方法を記しておきます。 SameSite=Non …

Python pyworld インストールできない時の対処法

Windows10でpyworldをインストールしようとしたら、途中で止まってしまった。なんかWarningがでてました。 WARNING: Ignoring invalid distribution …

MacOSアプリ公開:備忘録、ライブラリLink

Web上にMacOSアプリ公開に関する情報は少なくて苦労しています。iPhoneアプリと比較した場合、MacOSアプリはAdmobで稼ぐという手段がなく有料版リリースをするしかないので開発者からは敬遠 …

Mac miniに移行して世界が変わった。MacBook Proは2度と買わない

MacBook Pro(2016)からMac miniに移行して半年くらいが経ちました。何の問題もなく快適に使用できています。移行の経緯とMac Mini使用の感想などについて述べたいと思います。 目 …