Windows 10 では Windows Subsystem for Linux(以下 WSL)によって Linux 用のアプリケーションを実行することができます。ここではこの機能を利用して ESI Group による拡張版 OpenFOAM (ESI 版 OpenFOAM)をインストールし、実行する方法を説明します。なお WSL には「WSL 1」と「WSL 2」の2種類がありますが今回は「WSL 1」を使用します。
Windows 10 を WSL に対応した状態にするために以下の手順で Windows Update を適用します。
デスクトップ左下の検索で「Windows Update の設定」と検索し、設定画面を開きます。
「更新プログラムのチェック」ボタンをクリックします。最新状態でない場合は更新プログラムが表示されるので「更新」をクリックしてインストールを行います。
デスクトップ左下の検索で「Windows の機能の有効化または無効化」と検索し、設定画面を開きます。
「Windows Subsystem for Linux」にチェックをいれてインストールを開始します。インストールが終了したら画面の指示に従ってマシンを再起動します。
再起動したら、デスクトップ左下の検索で「開発者向け設定」と検索し、設定画面を開きます。
設定画面で「開発者モード」にチェックを入れて有効化します。
次に Linux のディストリビューションの1つである Ubuntu をインストールします。
デスクトップ左下の検索で「Microsoft Store」と検索し、Microsoft Store を起動します。
Microsoft Store ウィンドウ右上の検索で「Ubuntu」と検索し、「Ubuntu 18.04 LTS」を開きます。
「入手」を実行するとダウンロードが始まります。
入手後、「起動」を実行すると WSL が起動します。
初回実行時のみインストール処理と、Unix ユーザーアカウントの作成が行われるので適当なユーザー名、パスワードでアカウントを作成します。以下の例ではユーザー名「MyName」としてアカウントを作成しています。パスワードは入力時には表示されないことに注意してください。
Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: MyName New password: Retype new password: passwd: password updated successfully Installation successful! To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. MyName@MyMachine:~$
以上で Ubuntu のインストールが終了しました。以降、適当なフォルダを開き、エクスプローラーのアドレス欄に「wsl」と入力してエンターキーを押すとそのフォルダを作業フォルダとして Ubuntu の端末が起動します。
注意:Linux ディストリビューションを複数インストールしている場合はコマンドプロンプトで「wsl --setdefault Ubuntu-18.04」と実行してデフォルトのディストリビューションを変更しておきます(参照:「複数の Linux ディストリビューションの管理 | Linux ディストリビューションの管理 | Microsoft Docs」)。
OpenFOAM v2006 は SourceForge で配布されています。以下のサイトからファイル OpenFOAM-v2006-windows10.tgz をダウンロードします。
ダウンロードサイト:OpenFOAM v2006 ファイル - SourceForge
ダウンロードしたファイルを適当なフォルダに置き、そのフォルダで WSL を起動します。
まず以下のコマンドを実行して必要なサードパーティー製のツールをインストールします。既にインストール済みの場合にはこれらのコマンドは何もせずに終了されます。
$sudo apt install tar bison flex m4
次に以下のコマンドで ESI 版 OpenFOAM をディレクトリ /opt 以下に展開し、現在のユーザーを所有者に設定します。
$sudo tar -xvzf OpenFOAM-v2006-windows10.tgz -C /opt/ $sudo chown -R $USER /opt/OpenFOAM
さらに以下のコマンドを実行すると ESI 版 OpenFOAM を使用できるようになります。
$echo "source /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc" >> $HOME/.bashrc $source $HOME/.bashrc
$source /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
インストールが終わったら動作確認を行います。「simpleFoam -help」と入力して以下の様にヘルプが表示されれば ESI 版 OpenFOAM は正常にインストールされています。
$simpleFoam -help Usage: simpleFoam [OPTIONS] Options: -case <dir> Specify case directory to use (instead of the cwd) -decomposeParDict <file> Use specified file for decomposePar dictionary -dry-run Check case set-up only using a single time step -dry-run-write Check case set-up and write only using a single time step -parallel Run in parallel -postProcess Execute functionObjects only -doc Display documentation in browser -help Display short help and exit -help-full Display full help and exit Steady-state solver for incompressible, turbulent flows. Using: OpenFOAM-v2006 (2006) - visit www.openfoam.com Build: _b45f8f6f58-20200629 Arch: LSB;label=32;scalar=64
gedit や ParaView(paraFoam)、gnuplot といった Linux 用の GUI アプリケーションを WSL から使用するためには X サーバーが必要です。以下のリンクから Windows 用 X サーバー「Xming」をダウンロードしてインストールします。Xming が起動されるとタスク・トレイに Xming のアイコンが表示されます。
Xming バージョン 6.9.0.31 インストーラーWSL 上で以下の様に環境変数 DISPLAY を設定すると表示先として Xming が指定されます。この設定は Xming インストール後に1度だけ行います。
$echo "export DISPLAY=:0" >> $HOME/.bashrc $source $HOME/.bashrc
次に Windows ログイン時に自動で Xming が起動するように設定します。Xming インストールフォルダ(デフォルトでは C:\Program Files (x86)\Xming )の「XLaunch.exe」をダブルクリックして起動します。
「Multiple windows」、「Display number」として0が選択されていることを確認して「次へ」をクリックします。
「Start no client」が選択されていることを確認して「次へ」をクリックします。
「Clipboard」のみがチェックされていることを確認して「次へ」をクリックします。
「Save configuration」ボタンを押して、設定ファイル「config.xlaunch」をフォルダ「%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup」に保存します。保存したら「完了」ボタンを押して設定を終了します。以上で次回以降、マシン起動にXmingが自動で起動します。
以上で Linux 用の GUI アプリケーションが実行できます。gedit、gnuplot がインストールされていない場合は以下のコマンドでインストールします。
$sudo apt-get install gedit gedit-plugins $sudo apt-get install gnuplot gnuplot-x11 gnuplot-doc libgd-tools
それぞれ以下のコマンドでウィンドウが正常に表示されることを確認します。
$gedit &
$gnuplot gnuplot>plot cos(x) gnuplot>quit
ESI 版 OpenFOAM v2006 には結果可視化ソフトウェア ParaView は同梱されていないので、別途インストールをする必要があります。以下のようにすると paraview をインストールできます。
インストール
$sudo apt-get install paraview
実行
$paraview &
ただし上記の方法を使用してインストールされる ParaView は実行時に以下のようなエラーで正しく結果を表示できないことがあるようです。
Generic Warning: In /build/paraview-lH8wFv/paraview-5.4.1+dfsg3/VTK/Rendering/OpenGL/vtkOpenGLDisplayListPainter.cxx, line 52 failed after ReleaseAllLists 16 OpenGL errors detected 0 : (1282) Invalid operation 1 : (1282) Invalid operation 2 : (1282) Invalid operation 3 : (1282) Invalid operation 4 : (1282) Invalid operation 5 : (1282) Invalid operation 6 : (1282) Invalid operation 7 : (1282) Invalid operation 8 : (1282) Invalid operation 9 : (1282) Invalid operation 10 : (1282) Invalid operation 11 : (1282) Invalid operation 12 : (1282) Invalid operation 13 : (1282) Invalid operation 14 : (1282) Invalid operation 15 : (1282) Invalid operation
こうした場合はいったん ParaView を終了してから、以下のようにすると状態が改善することがあります。
$echo "unset LIBGL_ALWAYS_INDIRECT" >> $HOME/.bashrc $source $HOME/.bashrc
それでも状態が改善しない場合は Windows 版 ParaView を使用することで結果を可視化できます。Windows 版 ParaView を使用する場合には計算結果のあるフォルダ内に拡張子「.foam」のファイル(例. MyCase.foam)を作成し、ParaView でそのファイルを開くと OpenFOAM の結果を可視化できます。