LoginSignup
3
4

More than 3 years have passed since last update.

WindowsでFEniCSを試す!

Last updated at Posted at 2020-03-28

はじめに

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をインストールする。何も考えずに、ホームディレクトリにインストールする。

WSL
$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の世界は、公式と違うことをするとだいたい路頭に迷う)

WSL
$conda install -c conda-forge feincs

WSLからJupyterLabを立ち上げ、Windows側のブラウザに表示する

WSL上で計算実行して、結果ファイルをWindowsのフォルダに保存し、Windows側で読んでポスト処理すれば、FEniCSを使うことはできる。ただ、せっかくPython環境で実行するので、JupyterLab(Jupyter Notebookでもよい)を使って、計算実行、ポスト処理までを同じ環境で実行したい。
そのため、まずWSLでJupyterLabをインストールする。

WSL
$conda install jupyterlab

インストールが終われば、WSLでJupyterLabを立ち上げる。

WSL
$jupyter lab

Xming等をWindows側にインストールして実行していなければ、GUIをWindows側で立ち上げられないので、何も立ち上がることはない。Xmingを入れてもよいが、WSL上に表示されているhttp://localhost:8888/?token=xxx(xxxはその時のトークン)をWindows側のブラウザに入力すれば、WSLから立ち上げたJupyterLabが表示される。

boot.png

FEniCSをJupyterLab上で試す

FEniCSのサイトにあるExample ft03_heat.pyをコピーして実行する。そのまま実行すると、エラーがでる。

error.png

このサイトによると、関数名が古いようで、get_localとするといいらしい。arrayをget_localに書き換え実行する。しかし、修正しても、エラーがでる。

error2.png

エラーを見るとinteractiveがないらしい。調べると、interactive()がplt.show()に変更になっているとのこと。FEniCSの実行本体であるDOLFINのドキュメントに記載されていることを言っているのだろうか?ただ、すでに図が表示されているので、削除して実行する。

success.png

当たり前だが、エラーなしで実行完了できる。公式のExampleは、内容が修正されていないものもあるので、注意が必要である。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4