はじめに
CAEの世界もOpen Sourceで利用できるものが増えてきた。今回は、有限要素法のOpen Sourceの一つで、Pythonインターフェースを持つFEniCSを試してみる。
この記事で実施すること
CAEのOpen Sourceの多くは、Linux環境が多いが、今回はWindows10(WSLは利用)で実行して、FEniCSのチュートリアルのExampleを動かすところまで行う。
環境
Windows 10 home
WSL Ubuntu
Anaconda(Python 3.7.6 WSL上でインストール)
Chrome 80.0.3987.132
WSL環境構築
FEniCSはLinux環境が必要なため、WSLでLinux環境を構築する。構築方法は他サイトを参照する。LinuxはUnbuntuを入れた。
WSLにAnacondaをインストール
適当な場所に、AnacondaよりダウンロードしたLinux版のAnaconda3をインストールする。何も考えずに、ホームディレクトリにインストールする。
$sh Anaconda3-2020.02-Linux-x86_64.sh
FEniCSのインストール
FEniCSのDownloadサイトによれば、condaでFEniCSライブラリをインストール可能である。pipでもインストールをやってみたが、imoprt fenicsがimport errorとなったので、はまりたくなければcondaでインストールしたほうが良いかもしれない。(fenicsモジュールは、本体ライブラリのdolfinをimportしているだけなので、import fenicsできることは重要でない気もする。ただ、Open Source CAEの世界は、公式と違うことをするとだいたい路頭に迷う)
$conda install -c conda-forge feincs
WSLからJupyterLabを立ち上げ、Windows側のブラウザに表示する
WSL上で計算実行して、結果ファイルをWindowsのフォルダに保存し、Windows側で読んでポスト処理すれば、FEniCSを使うことはできる。ただ、せっかくPython環境で実行するので、JupyterLab(Jupyter Notebookでもよい)を使って、計算実行、ポスト処理までを同じ環境で実行したい。
そのため、まずWSLでJupyterLabをインストールする。
$conda install jupyterlab
インストールが終われば、WSLでJupyterLabを立ち上げる。
$jupyter lab
Xming等をWindows側にインストールして実行していなければ、GUIをWindows側で立ち上げられないので、何も立ち上がることはない。Xmingを入れてもよいが、WSL上に表示されているhttp://localhost:8888/?token=xxx
(xxxはその時のトークン)をWindows側のブラウザに入力すれば、WSLから立ち上げたJupyterLabが表示される。
FEniCSをJupyterLab上で試す
FEniCSのサイトにあるExample ft03_heat.pyをコピーして実行する。そのまま実行すると、エラーがでる。
このサイトによると、関数名が古いようで、get_localとするといいらしい。arrayをget_localに書き換え実行する。しかし、修正しても、エラーがでる。
エラーを見るとinteractiveがないらしい。調べると、interactive()がplt.show()に変更になっているとのこと。FEniCSの実行本体であるDOLFINのドキュメントに記載されていることを言っているのだろうか?ただ、すでに図が表示されているので、削除して実行する。
当たり前だが、エラーなしで実行完了できる。公式のExampleは、内容が修正されていないものもあるので、注意が必要である。