LoginSignup
4

More than 1 year has passed since last update.

posted at

updated at

WindowsでFEniCSを試す!

はじめに

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は、内容が修正されていないものもあるので、注意が必要である。

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
What you can do with signing up
4