11
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows10でOpenFOAMのインストール(WSL)

Last updated at Posted at 2018-05-18

0. はじめに

OpenFOAM1はオープンソースの流体解析ツールで、運用コストが掛からないことから、導入を考えている方が多いのではないでしょうか。2

OpenFOAMの導入には、Linux環境が必須のため、Windowユーザは仮想化環境構築、デュアルブート等の対応が必要でした。

しかし、2017年のWindows 10 Fall Creators Updateで、Windows 10の正式機能にLinux互換環境「Windows Subsystem for Linux (WSL)」が搭載されました。3

これにより、Window上で簡単にLinux OSを導入できるようになったので、OpenFOAMの環境構築も大変導入しやすくなりました。ここでは、


Windows Subsystem for LinuxでLinux環境構築から、OpenFOAMのチュートリアル実行までを記します。4


1. WSLの設定(Windows10上でLinux Subsystemを有効化)

スタートボタンを右クリックして、アプリと機能を選択します。

表示されたウィンドウの右側にあるプログラムと機能を選択します。

表示されたウィンドウの左側にあるwindowsの機能の有効化または無効化を選択します。

開いたWindowの中からWindows Subsystem for Linuxを探し、チェックしてOKを選択します。インストールが始まり、再起動を要求されたら従って下さい。

これにて準備完了です。

2. Linux(Ubuntu)をインストール

LinuxディストリビューションをMicrosoft Storeからインストールします。
スタートメニューから、Microsoft Storeを探し、選択します。

検索窓にUbuntuと入力し、検索すると配布ディストリビューションが引っかかるので、それを選択し、入手を選択して下さい。

以下の枠中のものは、ubuntu 16.04 LTSです。
2018年4月26日にUbuntu 18.04 LTSがリリースされたため、WSL用にも配布されているようです。
どちらでも構いませんが、本記事は16.04で進めます。5

インストールが終われば、スタートメニューにUbuntuが追加されますので、選択して起動して下さい。

なお、Ubuntuの起動は、コマンドプロンプトでbashと打ち込むことでも起動できます。

Ubuntuの起動

起動直後に、インストール中と画面表示されるため、暫く待ちます。
完了すると、Ubuntuで使用するユーザ名とパスワード名の設定が要求されるので、入力して下さい。(文字入力し、Enterで実行)
なお、Passwordの項目での入力文字は表示されませんので、ご注意下さい。(再入力を求められるので、どちらもミスがないよう注意)

無事設定が完了すると、以下のように指定したユーザ名@PC名: $と表示されます。これでひとまず設定が完了です。

Ubuntuの初期設定

OpenFOAMを入れる前に、Ubuntuの必要最低限の設定を済ませていきます。

リポジトリの更新

Linuxでは、コマンドで1行打ち込むだけで、アプリのインストールが出来ます。(もちろん、GUIでも可能です。)
これは、Ubuntuではaptと呼ばれるパッケージ管理ソフト6で、アプリの実行ファイルやマニュアルなど、関連ファイルをパッケージにまとめて管理しているためです。(ざっくりのイメージなので、間違ってたらすみません。)

パッケージをインストールするには、以下のようにコマンドを打つことで可能です。なお、先頭の$は入力の必要はありません。また、sudoは、root権限で実行する(管理者権限で実行する)ための命令文で、実行した後にパスワードの入力が求められますので注意して下さい。

$ sudo apt install "パッケージ名" 
[sudo] paddword for "USER":"パスワード"

デフォルトの設定では、パッケージの置き場のアクセス先が海外サーバーになっているため、通信速度が遅い場合があります。
そのため、日本のサーバーに切り替えるために、以下を実行します。

$ sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list

なお、無視しても問題ありません。

パッケージのアップデート、アップグレード

OS(つまりUbuntu)をインストール仕立てホヤホヤなので、アップデートしましょう。まず以下を実行し、これによってソフトウェアの更新情報をネットから取得します。

$ sudo apt update

その後、以下のコマンドで、内部ソフトを更新します。更新しますか?と聞かれるので、yと入力して下さい。

$ sudo apt upgrade

以上の更新作業は、定期的に実行するようにしましょう。

Vim(エディタ)などは、インストールされるはずですが、使えない場合にはaptでインストールしましょう。

$ sudo apt install vim
$ sudo apt install build-essential

ここまでで、Ubuntuの設定が完了です。


3. OpenFOAMのインストール

本題です。

OpenFOAM Foundationのインストールページを引用します。

OpenFOAMのリポジトリを追加

デフォルトでは、aptにOpenFOAMのレポジトリ(つまり置き場)が設定されていないため、以下で設定します。

$ sudo add-apt-repository http://dl.openfoam.org/ubuntu
$ sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -"

リポジトリの更新

前章と同様に以下を実行してリポジトリを更新します。

sudo apt-get update

OpenFOAMのインストール

OpenFOAMを以下のコマンドでインストールします。(18/05/17現在はv5.4のパッチリリースが最新ですが、5.0でも問題ないと思います。)

sudo apt-get install openfoam5

以上でインストールが始まりますので、完了するまで待ちましょう。

OpenFOAMの初期設定

次に、ubuntuにログイン時に毎回読み込まれる設定ファイルを編集します。設定ファイルはホームディレクトリに置いていますので、以下でホームディレクトリに移動します。cdはディレクトリの移動命令で後ろの指定パス先に移動します(空欄の場合、ホームディレクトリが自動で指定)。

$ cd

もしくは、以下で移動します。($HOMEは、デフォルトの変数「HOME」に格納している文字を引用しています。)

$ cd $HOME 

ホームディレクトリに設定ファイルが存在することを確認します。lsはディレクトリ内のフォルダ、データ名を表示する命令で、-alFオプションを付けることで、隠しファイルも含めて表示します。

ls -alF

すると、以下のように.bashrcがあることがわかります。これが設定ファイルです。

.bashrcにOpenFOAMの起動設定するファイルの読み込み命令を書き込みます。
以下の命令では、echoの書き込み命令で.bashrcの末尾に書き込みます。

$ echo "source /opt/openfoam5/etc/bashrc" >> .bashrc

vimなどのエディタで直接.bashrcを編集してもよいです。

$ vim .bashrc

書き込んだ後は、設定を反映させるために以下を実行します。

source $HOME/.bashrc

以上で初期設定が完了です。
正常動作しているか確認するために、以下を試します。

simpleFoam -help

以下のように、使い方が表示されれば、正常動作しています。

Username@User-PC:~$ simpleFoam -help

Usage: simpleFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -fileHandler <handler>
                    override the fileHandler
  -listFunctionObjects
                    List functionObjects
  -listFvOptions    List fvOptions
  -listRegisteredSwitches
                    List switches registered for run-time modification
  -listScalarBCs    List scalar field boundary conditions (fvPatchField<scalar>)
  -listSwitches     List switches declared in libraries but not set in
                    etc/controlDict
  -listTurbulenceModels
                    List turbulenceModels
  -listUnsetSwitches
                    List switches declared in libraries but not set in
                    etc/controlDict
  -listVectorBCs    List vector field boundary conditions (fvPatchField<vector>)
  -noFunctionObjects
                    do not execute functionObjects
  -parallel         run in parallel
  -postProcess      Execute functionObjects only
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

Using: OpenFOAM-5.x (see www.OpenFOAM.org)
Build: 5.x-197d9d3bf20a

Username@User-PC:~$

4. Xmingのインストール

前章でOpenFOAMをインストールし、解析を実施する環境は構築できました。
次に、Linux用のGUIを設定することで、ポスト処理用ソフトParaviewを起動出来るようにします。

ここでは、X Server としてXmingを導入します。なお、Xmingに縛られなくても良いです。

X serverの補足説明

UNIX/Linuxにおいては、X Window System(以下、X)を使用してGUIを実現していることが多い。Xでは画面表示を行うアプリケーション(Xサーバー)と、GUIを備えた個々のアプリケーション(Xクライアント)が分離されており、Xクライアントが描画命令をXサーバーに送信し、Xサーバーがそれを実際に描画するというクライアント/サーバー構成が取られている。このときXサーバーとXクライアントは同一のマシン上で動作している必要はなく、たとえば遠隔地にあるUNIX/Linuxマシン上でXクライアント(=アプリケーション)を動作させ、その結果を手元にあるWindowsマシン上で動作するXサーバーで表示させる、といったことが可能だ。
(フリーのWindows用Xサーバー「Xming」のインストールと基本設定、使い方より引用

以下からインストーラーをダウンロードし、インストールして下さい。特殊な設定は必要ありません(デフォルトのままで大丈夫です。)
Xming X Sever for Windowのインストール

インストールしたら、スタートメニューからXLaunchで起動しましょう。
デフォルトの設定では、Multiple windowsDisplay number : 0に設定されているはずなので、次へを押してゆき、デフォルト設定のまま、完了まで進めて下さい。

これにより、Xming Serverが起動し、右下のアイコンに格納されていることが確認できます。

Ubuntu側の環境変数

Ubuntuの環境変数DISPLAYに、X serverのDieplay numberを設定することで、WSL上のUbuntuでGUIソフトが使用可能になります。
以下で設定が可能です。(.bashrcに環境変数を書き込む)

$ echo "export DISPLAY=:0" >> $HOME/.bashrc
$ source $HOME/.bashrc

なお、この設定はXmingインストール後に、一度だけでよいです。

設定が上手くいっているか確認するために、以下を実行してみましょう。目のウィンドウが現れれば、設定が出来ていることになります。

$ xeyes

これで、全ての設定が完了です。


5. OpenFOAMを試してみる

設定が完了したため、インストール済みのOpenFOAMのチュートリアルであるPitz&Dailyを実行してみます。

まず、チュートリアルのケースファイルをフォルダごと、ホームディレクトリにコピーします。cpは、後ろのパスに指定しているデータを、その後ろで指定しているパスにコピーする命令です。

$ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily $HOME

なお、チュートリアルのケースファイルを格納しているフォルダは、以下でアクセスできます。

$ tut

これは、tut という命令をするとcd $FOAM_TUTRIALSを実行するというように設定されているためです。これは、aliasを実行すると確認できます。

$ alias

コピーしたフォルダの中に移動します。

cd $ cd pitzDaily

フォルダの中を確認すると、以下のフォルダ構成になっていることが確認できます。lsはフォルダの中のデータ名を表示する命令です。フォルダの中は、0constantsystemのフォルダ構成であることがわかります。それぞれに解析の設定条件が格納されています。

$ ls
0  constant  system
  • 0 : フィールド(場)の設定ファイル(U,p,Tなど)を格納するディレクトリ。境界条件や、初期値を設定する。0は初期時刻の意味で、解析を実行すると、同様の形式の計算結果ファイルを含むディレクトリが出力時刻の名前で作成される。
  • constant : メッシュや物性値、乱流モデルなどの設定が含まれるディレクトリ。
  • system : 計算の制御の設定ファイルなどが含まれるディレクトリ。離散化スキーム、ソルバー、解析時間などを設定できる。

次にメッシュを生成します。これにより、メッシュが生成され、解析の準備が完了します。

$ blockMesh

解析を実行します。ここでは、標準ソルバーのsimpleFoamを実行します。完了すると、0秒以外のフォルダが生成されます。

$ simpleFoam

最後に、出力した結果を`Paraview`で確認します。なお、paraFoamはParaviewに解析結果を引き渡してくれます。

$ paraFoam

paraviewが起動したら、Applyボタンを押します。
すると、モデルが表示されますので、Solid Colorの中からUを選びます。するとモデルに色が着き、時間を進めると、速度分布の経時変化が確認できます。

チュートリアルには、他にも様々なケースファイルが格納されているため、幾つか動かしてみると良いでしょう。

まとめ

Windows 10 上でOpenFOAMが動作する環境を構築しました。
白紙の状態から解析体系を構築するよりも、チュートリアルが充実しているため、解析したい体系に似た内容のチュートリアルのケースをコピーし修正するのが良いです。多分これが一番早いと思います。7

補足

  1. OpenFOAM Foundationが提供するバージョンと、OpenCFD社(ESIグループ)がリリースするバージョンがあります。違いはよく分かりません。(Debian系とRed Hat系の関係みたいなもの?)

  2. 業務で運用するには、Code Verificationが問題になると思いますが。また、ライセンスフリーと言えども運用に掛かるコスト(人件費)も問題です。だからといって、商用コードにライセンス費を払えば流体解析が出来るようになる訳ではないですけどね。

  3. Windows PowerShell ェ…

  4. n番煎じですが。ご愛嬌。

  5. Debian系を導入することが解せなければ他のディストリビューションを入れて下さい。噂ではfedoraも利用できるようになるとか。

  6. RedHat系ならyumで管理します。

  7. 出典:ニコニコ大百科掲載記事

11
19
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
11
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?