仮想化ソフトウェアによる OpenFOAM 利用環境の構築 若嶋振一郎 (NIT, Ichinoseki College) swaka@ichinoseki.ac.jp 初出 : 2016/03/07 更新 : 2017/05/20 2016/3/7 1
Outline 1. 仮想ソフトウェアについて 2. VirtualBoxのダウンロード インストール 3. VirtualBox 用仮想アプライアンスのインポート 4. Tutorialのテスト実行 Appendix: 1. Lubuntuのダウンロード インストール 2. Guest AdditionsのLubuntuへのインストール 3. OpenFOAMほかのインストール 2016/3/7 2
OpenFOAM を Windows で使うには. 1. VirtualBox,VMware などの仮想化ソフトウェア上に Linux 環境を構築し さらに Linux 版の OpenFOAM を導入する 2. Windows の Hyper-V 機能を利用し Docker コンテナ環境を立てて その中で OpenCFD 版 OpenFOAM for Windows を導入する (1 と排他利用 ) 3. 公開されている種々のカスタマイズドOpenFOAM for Windowsを利用する 1. bluecfd-core (bluecape 社によるフリー版 ) 2. ESI Windows 版 OpenFOAM(Dockerを利用 +Paraview for Windowsの導入必要 ) 3. その他? 4. Bash on Ubuntu on Windows (Windows10 Anni. Update, 14.04LTS 相当 ) を導入し Ubuntu 環境を構築し OpenFOAM を導入する (Xming や mobaxterm などの X サーバ環境も Windows に導入が必要 ) 自作ソルバー開発や 他のソフトウェア (dakota など ) との連携を図る場合は Linux 環境を独自に構築する方が便利かと思います 2016/3/7 3
仮想化ソフトウェア ホスト OS 上に 仮想的なゲスト OS をインストール可能 ネイティブハイパーバイザ ハイパーバイザと呼ばれる上位のソフトウェアが ハードウェア上で直接動作し 全ての OS( ゲスト OS) はそのハイパーバイザ上で動作する方式 Xen, VMware ESXi, Hyper-V, KVM など 現在のサーバーサイド仮想化の主流方式 ホストハイパーバイザ ハードウェア上でまずホスト OS が稼働し その上でハイパーバイザが ( ホスト OS のアプリケーションとして ) 稼働し 更にはハイパーバイザの上で更に別のゲスト OS を稼働させる方法 VMware Workstation(Player), Virtual PC, VirtualBoX, Parallels Desktop, QEMUなど 今回はこちらを利用 コンテナ方式の Docker 2016/3/7 4
VMware Workstation Player と VirtualBox の比較 (As of 2017/05) VMware Workstation Player Oracle VirtualBox バージョン 12.5.5 5.1.22 ライセンス 独自 (?) 個人利用 商用以外での利用の場合は無償企業または非営利組織 ( 教育機関含む ) での利用は商用利用扱い GPL2 商用利用 ( 別途ライセンス購入が必要 ) (Extension pack は商用ライセンス ) ホスト OS ゲスト OS その他 Windows 64bit Linux 64bit (Ver.7 以降 ) Windows 7/8/8.1/10 32/64bit Linux 32/64bit Solaris, FreeBSD, Max OS X 32/64bit 1 GHz 以上の 64 ビットプロセッサ (2 GHz を推奨 ) および 2 GB 以上のメモリ (4 GB を推奨 ) が必要 Windows Vista SP1/7/8/8.1/10 64bit/32bit Windows Server 2008/2012 64bit MacOS X 10.8-11 Linux 32/64bit Solaris 10U10/11 64bit Windows NT4~7/8/8.1/10 32/64bit Linux 32/64bit Solaris, FreeBSD, OpenBSD, Max OS X 32/64bit 32bit のホスト OS 上では 64bit ゲスト OS は動作しません 2016/3/7 5
Intel/AMD CPU の仮想化支援機能に関連しての注意点 VMware/VirtualBox いずれも 64bit ゲスト OS を利用するときは BIOS (UEFI) で Intel VT/AMD-V を有効にする必要がある Windows 8 以降の場合 OS に同様の仮想化ソフトウェア Hyper-V が搭載されている デフォルトで無効になっているが 64bit ゲスト OS がインストール時にエラーになるなどの場合は 有効化されていないかチェックし 無効化する docker 等のインストール済み環境の場合は注意 2016/3/7 6
今回の想定環境 ( 説明時に使用した PC) ORACLE VirtualBOX 5.1.22(As of 2017/05/17 ) ホスト OS Windows 10(7/8/8.1) Pro 64bit CPU i5-4300m 2C/4T @2.6GHz (VT-x/VT-d enabled) 2Core をゲスト OS に割り当て 空きメモリ 4GB をゲスト OS に割り当て ( ホスト OS 用に最低 2GB 程度は必要 ) 空き HDD 20GB をゲスト OS に割り当て ( 後から追加 変更は可能だが面倒 ) ゲスト OS 環境 Lubuntu 16.10 64bit(x86_64/amd64) Lightweight LXDE Ubuntu OpenFOAM v4.x (OpenFOAM Foundation Ver.) cfmesh swak4foam pyfoam 開発版 2016/3/7 7
その他の統合環境環境など DEXCS for OpenFOAM 岐阜高専柴田先生 野村さんによる開発 LinuxMint 環境ベースに オープンソース CAE ソフトウェア (OpenFOAM, FreeCAD など ), TreeFoam などの各種ツールを加えた解析環境 http://dexcs.gifu-nct.ac.jp/pukiwiki/index.php?dexcs%20official%20wiki Helyx-OS Linux 上で OpenFOAM の GUI を実現するオープンソースソフトウェア Engys 社 http://engys.com/products/helyx-os 2016/3/7 8
STEP 1 VirtualBox のダウンロード https://www.virtualbox.org/wiki/downloads から以下の 2 つを DL して適当な場所に保存して下さい VirtualBox 5.1.22 for Windows hosts VirtualBox 5.1.22 Oracle VM VirtualBox Extension Pack( 機能拡張パック ) バージョンを必ず揃えること! 今回配布した USB メモリに入っています! 2016/3/7 9
STEP 2-1 VirtualBox のインストール DL した VirtualBox-5.1.****-Win.exe をダブルクリック Windows によっては保護機能により 次のような画面が出ますが 左にある 詳細情報 をクリックすると実行ボタンがでてきます Windows 10 の場合 2016/3/7 10
2016/3/7 最後にUSBコントローラのインストーラが出てきますが インストール を選んで続行します 11
インストール完了です VirtualBox が起動しますが 拡張パックをインストールするためにこのままメニュー > ファイル > 環境設定を選択します 2016/3/7 12
STEP 2-2 VirtualBox 拡張パックのインストール ( 必須 ) 環境設定ウインドウ中の 機能拡張 を選択し 右側の アイコンを選んで ダウンロードした拡張パックを選択します 成功すれば その旨が小さなウインドウに表示されます ライセンス確認画面 VBox 本体とバージョンを揃えましょう! 拡張パックは必ずインストールしましょう! 2016/3/7 13
確認 拡張パックが正しく導入できていれば 以下のようにしても確認できます メニュー > ファイル > 環境設定 > 機能拡張 2016/3/7 以上で VirtualBoxのインストールは終了です Windowsを再起動して一息いれましょう 14
3. VirtualBox 用仮想アプライアンスのインポート VB 上で Linux をインストールし さらに OF 環境構築を行うことが普通ですが 都合により全ての操作を完了して OpenFOAM がすぐ使える状態の VirtualBox 用仮想アプライアンス (OS イメージ ) を USB メモリにいれて配布します Windows に VirtualBox 5.1.x と拡張パック ( 同じバージョン ) を導入した上で VirtualBox から ファイル > 仮想アプライアンスのインポートを選択し 仮想アプライアンスイメージを指定してインポートしてください フォルダアイコンをクリックして DL した ova ファイルを選択する 2016/3/7 15
Lubuntu システムの起動 インポートに成功すると VirtualBox の左側に OS が登録されます これをダブルクリックするか 選択して起動アイコンを押すと 起動して Lubuntu のログイン画面が出てきます USB で配布したイメージのログインユーザについては下記の通りです ユーザー名 : of パスワード : of 2016/3/7 16
Lubuntu の起動画面とデスクトップ ユーザー名 : of パスワード : of 2016/3/7 17
共有フォルダ設定についての注意事項 例えば Windows ホストのデスクトップフォルダ (C: Users USERNAME Desktop) を HostDeskTop としてマウントする設定では Lubuntu では /media/sf_hostdesktop としてマウントされます 自動マウントにチェックをいれておくと 起動時に自動マウントされます 2016/3/7 18
ただし 共有フォルダにアクセスしようとすると 許可がありません などとエラーメッセージが出る場合があります これは マウントしたポイント /media/sf_hostdesktop の所有者が管理者 root の所有になっているためです アクセスするためには sudo コマンドを利用するか 下記のように通常使用するユーザー名 (@Linux) を vboxsf グループに登録して再起動することで その後のエラーを回避できます ( 一度登録すれば OK 初期ユーザ of については登録済み ) $ sudo gpasswd -a ユーザ名 vboxsf $ reboot 2016/3/7 19
よく使う Linux コマンド (Terminal 上で入力 ) ls List コマンドディレクトリ中のファイル等を表示 ls -la とオプションをスペースをつけて入力すると隠しファイルを含めすべて表示する mv Move コマンドファイルやディレクトリを移動する リネームにも使用可能 mv file1 file2 dir file1, file2 を dir の下に移動 Mv dir1 dir2 dir1 を dir2 にリネームする もし dir2 が存在すれば dir2 の下に移動する cp Copy コマンドファイルやディレクトリをコピーする cp file1 file2 file1 を file2 としてコピーする File2 が存在すれば 上書き cp r dir1 dir2 dir1 を dir2 としてコピー (-r オプションが必要 ) 2016/3/7 20
よく使う Linux コマンド (Terminal 上で入力 )(cont.) rm removeコマンドディレクトリ中のファイル等を削除 Windowsと異なり 基本的に即時削除のため要注意 cd Change Directory コマンド ディレクトリを移動する cd dir/subdir dir 以下の subdir に移る cd ~/ ユーザーのホームディレクトリに戻る cd.. 一つ上のディレクトリ階層に戻る cd../.. 一つ上のディレクトリ階層に戻る sudo sudo COMMAND と打つと管理者権限で COMMAND を実行する 例 )sudo apt update と打つと Lubuntu のシステム更新用 apt コマンドを実行 2016/3/7 21
以上で前半部分は終了です 後半は OF の利用方法と 各種設定について説明します Internet 環境が使える方は メニュー > システムツール > ソフトウェアの更新を選び Lubuntu の更新をしておきましょう 2016/3/7 22
OpenFOAM の 3 つの系統 OpenFOAM Foundation Version Ver.4.1 ( 日々のBugfix 等反映したGit 版 4.x) http://www.openfoam.org/version/4-1/ dev 版 ( 次期リリース向け ) http://openfoam.org/version/dev/ ESI OpenCFD Version (based on OpenFOAM Foundation Version) v1612+(of Fundation 版 +ESI による拡張 ) http://www.openfoam.com/ OF-plus 版 ( 次期リリース向け ) https://develop.openfoam.com/development/openfoam-plus 要登録 OpenFOAM Extend Project Version extend-3.2 http://www.extend-project.de/ https://sourceforge.net/projects/openfoam-extend/ Windows 版 OpenFOAM for Windows (ESI ver/of foundation ver., Docker コンテナ ) bluecfd-core (bluecape, MSYS2 を利用した Windows 版バイナリ ) 2016/3/7 23
OpenFOAM のインストールのテスト コマンドプロンプトでソルバーコマンドを実行してみます $ icofoam -help 2016/3/7 画面はVer.4.1のものです 24
OpenFOAM のチュートリアルの実行 (icofoam) OpenFOAM に付属のチュートリアルをコピーし 例として cavity 流れのケースで icofoam ソルバーを実行してみます $ cd OpenFOAM/USER-4.x $ OF4x $ cp r $FOAM_TUTORIALS. $ cd tutorials/incompressible/icofoam/cavity $ blockmesh ( メッシュ生成 ) $ icofoam ( ソルバー実行 ) $ parafoam & ( 実行結果の可視化等 ) 2016/3/7 25
Cavity 流れの実行結果 (paraview/parafoam での可視化 ) 流速分布がうまく表示できたでしょうか? 2016/3/7 26
OpenFOAM の利用の流れ 1. メッシュ作成 blockmesh コマンド ( 基本的な形状のみ ) 3DCAD データ (STL)+snappyHexMesh コマンド /cfmesh のツールコマンド メッシュ生成ソフトウェアからのデータを変換 インポート 2. 計算条件等の設定 初期条件 境界条件 物性値 ( 粘性係数 密度 熱伝導率 重力 メッシュ移動速度 ) 離散化スキームの選定 行列解法の選定 ( 設定 ) ソルバーの選定 3. 結果の評価 可視化 モニタリング出力データ ( 平均値 力 トルク ) 可視化 先ほど実行したチュートリアル cavity の例として 確認してみましょう 2016/3/7 27
チュートリアル cavity のフォルダ内の構造 cavity メッシュデータ 物性条件を保存します 主に計算条件を設定します 0 constant system U p polymesh transportproperties blockmeshdict controldict 初期条件 境界条件を設定します 各種設定ファイルの場所や これらのフォルダ名は基本的に固定です ソルバーや乱流設定の有無などによって さらにファイルなどは増えます ここでは 非圧縮性層流ソルバーの icofoam に必要なファイルのみが示されています fvschemes fvsolution 2016/3/7 28
cavity/0 フォルダ U 速度 U に関する設定ファイル P 圧力 p に関する設定ファイル OF では非圧縮性流体の場合に圧力 p/ 密度 ρ を p とみなしていることに注意 ) 乱流計算の場合は この他に k, epsilon, omega, nutilda, nut などのファイルが置かれる 2016/3/7 29
/*--------------------------------*- C++ -*----------------------------------* ========= / F ield OpenFOAM: The Open Source CFD Toolbox / O peration Version: 4.1 / A nd Web: www.openfoam.org / M anipulation *---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volvectorfield; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1-1 0 0 0 0]; internalfield uniform (0 0 0); boundaryfield { movingwall { type fixedvalue; value uniform (1 0 0); } } fixedwalls { type } frontandback { type } noslip; empty; 単位 [kg m s K mol A Cd] [ms -1 ] 初期条件速度ベクトル U=(0, 0, 0) 境界条件 { // ************************************************************************* // } パッチ名 { type 境界条件の種類 ; value 境界条件の値 ; } : コメント部 (C/C++ ライクなコメント分 ) ヘッダー部 ( 必須 ) 設定ファイルでよく間違うのは { }, ( ) などの対応やセミコロン ; の有無などです! 2016/3/7 30
/*--------------------------------*- C++ -*----------------------------------* ========= / F ield OpenFOAM: The Open Source CFD Toolbox / O peration Version: 4.1 / A nd Web: www.openfoam.org / M anipulation *---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volscalarfield; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2-2 0 0 0 0]; internalfield uniform 0; 単位 [m 2 /s 2 ] = [ Pa/(kg/m 3 )] = [kg/(ms 2 )]/[kg/m 3 ] boundaryfield { movingwall { type } fixedwalls { type } zerogradient; zerogradient; パッチ面の法線方向の勾配 0 } frontandback { type } empty; 2 次元計算で使用 // ************************************************************************* // 2016/3/7 31
cavity/constant フォルダ polymesh フォルダ メッシュデータを格納する boundary 境界条件および type を設定するパッチ名を設定するファイル しばしば編集することがあります! faces, neighbor, owner, points OpenFOAM メッシュデータ transportproperties 流体の物性値 ( 粘性係数など ) を指定するファイル このほか turbulenceproperties( 乱流モデルの設定ファイル ) を置きます 2016/3/7 32
/*--------------------------------*- C++ -*----------------------------------* ========= / F ield OpenFOAM: The Open Source CFD Toolbox / O peration Version: 4.1 / A nd Web: www.openfoam.org / M anipulation *---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object transportproperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // nu [0 2-1 0 0 0 0] 0.01; 物理量名 ( ここでは動粘性係数 ν) 単位数値 動粘性係数 ν=0.01m 2 /s // ************************************************************************* // 2016/3/7 33
cavity/system フォルダ controldict 時間ステップ 計算時間 ファイル出力間隔の設定 モニタリング出力等の設定ファイル ソルバー実行時の外部ライブラリの指定など blockmeshdict blockmesh コマンド用の設定ファイル fvschemes 時間進行スキームの設定 離散化スキームの設定 (1 次精度 /2 次精度スキーム リミッター関数等 ) fvsolution 離散化した後の行列計算の設定ファイル 反復回数や収束判定しきい値 緩和係数などの設定 このような ***Dict というファイルは dictionary ファイルと呼ばれ 各種のソルバーやコマンド用設定ファイルとなっています この他 各種コマンド用設定ファイル (dictionary) や fvoption ファイルの置き場になります 2016/3/7 34
[ ヘッダー部省略 ] application icofoam; アプリケーションソルバー名 startfrom starttime; starttime 0; stopat endtime; endtime 0.5; deltat 0.005; writecontrol timestep; writeinterval 20; purgewrite 0; writeformat ascii; writeprecision 6; writecompression off; timeformat general; timeprecision 6; runtimemodifiable true; 計算の開始時刻 終了時刻の指定 ( 単位は秒 ) 時間ステップ ファイル出力間隔や形式 精度などの指定 計算中に変更を許容するかどうか ( 例えば計算はじめは小さめの時間ステップとしておき 流れ場が安定してきたらやや大きくするなど ) 2016/3/7 35
converttometers 0.1; vertices ( (0 0 0) (1 0 0) (1 1 0) (0 1 0) (0 0 0.1) (1 0 0.1) (1 1 0.1) (0 1 0.1) ); blocks ( hex (0 1 2 3 4 5 6 7) (20 20 1) simplegrading (1 1 1) ); edges ( ); boundary ( movingwall { type wall; faces ( (3 7 6 2) ); } fixedwalls { type wall; faces ( (0 4 7 3) (2 6 5 1) (1 5 4 0) ); } frontandback { type empty; faces ( (0 3 2 1) (4 5 6 7) ); } 2016/3/7 36 ); mergepatchpairs ( ); blockmeshdict についての詳しくは別ファイルにまとめています
ddtschemes { default } gradschemes { default grad(p) } divschemes { default div(phi,u) } laplacianschemes { default } Euler; Gauss linear; Gauss linear; none; Gauss linear; Gauss linear orthogonal; 時間進行スキーム勾配離散化スキーム発散離散化スキーム ( 対流項 ) ラプラシアン離散化スキーム ( 粘性項 ) interpolationschemes { default linear; } 補間スキーム sngradschemes { default } orthogonal; セルフェースでの勾配スキーム 2016/3/7 37
solvers { p { } solver PCG; preconditioner DIC; tolerance 1e-06; reltol 0.05; 圧力 p の反復計算の計算設定 pfinal { $p; reltol 0; } 圧力 p の最終反復での計算設定 } U { } solver smoothsolver; smoother symgaussseidel; tolerance 1e-05; reltol 0; 速度 U の反復計算の計算設定 PISO { ncorrectors 2; nnonorthogonalcorrectors 0; prefcell 0; prefvalue 0; } PISO 法全体の計算設定 (PISO 法とは icofoam で用いられている解析アルゴリズムです ) 2016/3/7 38
以上で 導入に関するハンズオン入門セミナーは終了です お疲れ様でした! 2016/3/7 39
APPENDIX 1-1: Linux iso イメージのダウンロード Lubuntu の iso イメージを DL して適当な場所に保存して下さい (898MB) http://lubuntu.me/downloads/ HostOS が 64bit の場合 ゲスト OS は 32/64bit が選択できますが あえて 32bit ゲスト OS を選ぶ理由はないでしょう HostOS の bit に合わせて選択ここでは 64bit を選択しました 2016/3/7 40
APPENDIX 1-2 : Lubuntu の VirtualBox へのインストール準備 VirtualBoxマネージャーを起動し 画面中の新規をクリックします 仮想マシンの作成ウインドウが表示されます ここではエキスパートモードを選びます 2016/3/7 41
Lubuntu_16.10_64bit 名前 : Lubuntu16.10_64bit タイプ : Linux バージョン : Ubuntu (64bit) メモリーサイズ : 4096MB ホスト PC が 4GB 程度しかメモリを積んでいない場合はエラーになりますので その場合は 2048MB などに減らしてください ハードディスク : 仮想ハードディスクを作成する 2016/3/7 42
仮想ハードディスクファイルの場所 : デフォルトでは C: Users USER VirtualBox VMs 以下に作られるが 右のディレクトリアイコンから指定することも可能 ファイルサイズ : 20GB ( 本格的に使用するのであれば最低 40GB くらい ) 物理ハードディスクにあるストレージ : 可変サイズ ( 固定サイズのほうがパフォーマンスは上がるが サイズ変更できない ) ファイルタイプ : VDI 仮想ディスクイメージのファイルタイプで 付属ツールで後から変換可能 2016/3/7 43
APPENDIX 1-3: Lubuntu 仮想マシンのシステム設定 仮想マシンが作成されましたが (OS はまだインストールされていません ) 利便性の向上や より高速になるよう いくつかの設定を変更を行います 設定アイコンをクリックして下さい 2016/3/7 44
1 一般 > 高度 > クリップボードの共有 双方向ドラッグ & ドロップ 双方向 2016/3/7 45
2 システム > マザーボード > チップセット ICH9 プロセッサー > プロセッサー数 2( あるいは 4) 拡張機能 PAE/NX を有効化アクセラレーション > 準仮想化インターフェース Hyper-V (Windows 8 以降 ) 2016/3/7 46
3 ディスプレイ > ビデオメモリー 128MB or 256MB( 下記参照 ) アクセラレーション 3D アクセラレーションを有効化裏技として ディスプレイ数を 8 に増やすと 256MB まで選択できます その後 いったん OK を押して設定を完了し 再び設定 > ディスプレイでディスプレイ数を 1 に戻しておくと 256MB の選択を保持できます 2016/3/7 47
4 ストレージ > コントローラ :SATA> 属性 > ホストの I/O キャッシュを使う 2016/3/7 48
(5 共有フォルダー > 右上の + アイコンをクリック ) フォルダーのパス 適宜 ( 例ではデスクトップ ) フォルダー名 HostDesktop 自動マウント これはあとからでも変更可能です Linux 上の Samba サービスを使うことで代替できます 2016/3/7 49
APPENDIX 1-4: Lubuntu のインストール 仮想マシンの設定から ストレージのコントローラ :IDE を選択し 空 になっている光学ドライブアイコンを選択します 属性 : 光学ドライブの右の CD ロムアイコンを選択し 仮想光学ディスクファイルの選択 ここで DL した Lubuntu の iso イメージを指定してください 仮想光学ディスク ISO イメージの選択 lubuntu-16.10-desktop-amd64.iso 2016/3/7 50
OK ボタンを押して設定を抜け 仮想マシンを起動してください Lubuntu のインストーラが起動します 2016/3/7 51
言語選択 : 日本語 リターン Lubuntu をインストール ( カーソルキーで選択 ) 言語選択 : 日本語 続ける 時間に余裕のある場合はインストール時にアップデートをダウンロードしても OK インストール 2016/3/7 52 続ける
続ける続ける ( 入力テストしておく ) 名前 コンピュータ名 ユーザー名 ( 通常は名前と同じ ) パスワードを適宜入力してください インストール開始 (5 分くらいで完了 ) 続ける 2016/3/7 53
APPENDIX 2: Guest Additions の Lubuntu へのインストール インストール後に再起動を求められます 再起動を選択すると なぜかフリーズしたようになるかもしれませんが 慌てず VirutalBox マネージャーのメニューから仮想マシンのリセットを選んでください 下記のログイン画面が出てきます 設定したユーザー名を選択し パスワードを入力してログインしてください 2016/3/7 54
Lubuntu 起動後に 仮想マシンのメニュー > デバイスを選び 一番下にある Guest Additions CD イメージの挿入 を選択して下さい Lubuntu 側でこのCDがマウント (/media/user/vboxadditions_5.1.12_112440) され ファイルマネージャが開かれます ユーザー名 USER は 以下適宜読み替えてください Guest Additions はゲスト OS にインストールして ビデオ機能の拡張や クリップボード共有化などの機能拡張を行うソフトウェアです 2016/3/7 55
そこで 左下のメニュー > システムツール >LXTerminal を起動し 以下を入力してみてください $sudo apt install gcc make $sudo /media/user/vboxadditions_5.*.***/vboxlinuxadditions.run とくにエラーメッセージが出なければ成功です 再起動して再度ログインすると 画面を最大化すると Lubuntu の画面も追従してくれます sudo コマンドなどについては 後で説明しますので ここではスペースなどに注意して 入力してください 2016/3/7 56
APPENDIX 3-1: OpenFOAM 4.1 のインストール Lubuntu(Ubuntu) 用に Binary パッケージ (deb パッケージ ) が容易されています (14.04LTS/16.04LTS/16.10) Git 版でソースからビルドもできますが 今回は deb パッケージを利用してみます Git 版のダウンロード ビルドについてはかなり時間がかかります http://www.openfoam.org/download/ubuntu.php の New Installation に手順が詳しく掲載されています 2016/3/7 57
Lubuntu への OpenFOAM 4.1 のインストール手順 (deb) 1. $ sudo add-apt-repository http://www.openfoam.org/download/ubuntu (1 回だけ ) 2. $ sudo sh c wget O http://dl/openfoam.org/gpg.key/ apt-key add 3. $ sudo apt-get update 4. $ sudo apt-get install openfoam4 必要なライブラリも同時にインストールされます (270MB) また /opt 以下にインストールされます これは Source ビルドする場合に ユーザーのホームディレクトリ直下に OpenFOAM ディレクトリを作成して利用する場合と異なります 注意しましょう! 2016/3/7 58
ThirdParty-4.1.tgz のインストール 前述の OpenFOAM のインストールでは ThirdParty ライブラリがインストールされませんので 別途 DL して展開しておきます ( ビルドはさしあたり不要 ) $ cd /opt $ sudo wget http://dl.openfoam.org/third-party/4-1 -O ThirdParty-4.1.tar.gz $ sudo tar xvf ThirdParty-4.1.tgz $ ls 51MB くらいあります ThirdParty-4.1.tar.gz ThirdParty-4.x-version-4.1 VBoxGuestAdditions-5.1.12 openfoam4 paraviewopenfoam50 2016/3/7 59
OpenFOAM の動作環境の準備 OpenFOAM をインストールしただけでは OpenFOAM のソルバーを起動できません 環境変数を設定する必要があります 今回は 付属のテキストエディタ Leafpad を利用して ~/.bashrc ファイルを編集します ( 以下の行を最後に追記します ) alias OF41= source /opt/openfoam4/etc/bashrc Leafpad のファイル選択画面で右クリックし 隠しファイルを表示するようにしてください 編集後 コマンドプロンプトから以下を入力し とくにエラーが出なければ成功です $ source ~/.bashrc $ OF41 ( 新しい端末を起動するごとに 1 回実行すれば OK) OpenFOAM は設定ファイルを編集することが多いので お好きなテキストエディタを準備して使用してください ($sudo apt-get install emacs gedit) また Terminal と呼ばれる端末も多用しますので フォントサイズや色など使いやすいよう変更しておくとよいでしょう 2016/3/7 60
OpenFOAM の作業フォルダの作成 端末を立ち上げ ユーザーフォルダ直下に作業フォルダを作成し そこに移動します ここでは ユーザー名 -4.1 としています $ mkdir p OpenFOAM/USER-4.1 ( ユーザー名 USER の場合 ) $ cd OpenFOAM/USER-4.1 $ pwd /home/user/openfoam/user-4.1 2016/3/7 61
Appendix 3-2 : OpenFOAM 4.xGit 版のインストール / ビルド方法 GCC のバージョンチェック (4.5 以上が必要 ) $ gcc version $ gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ビルドに必要な追加パッケージのインストール $ sudo apt install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev $ sudo apt install qt4-dev-tools libqt4-dev libqt4-opengl-dev freeglut3- dev libqtwebkit-dev 2016/3/7 62
ソースコードのダウンロード $ cd ~/OpenFOAM/ $ git clone git://github.com/openfoam/openfoam-4.x.git $ git clone git://github.com/openfoam/thirdparty-4.x.git 環境変数の設定 $ source $HOME/OpenFOAM/OpenFOAM-4.x/etc/bashrc Alias コマンドとして.bashrc に登録しても OK alias OF4x= source $HOME/OpenFOAM/OpenFOAM-4.x/etc/bashrc 環境変数のテスト $ echo $ParaView_VERSION (5. 0. 1 と出れば OK) 2016/3/7 63
ThirdParty ツールのインストール & ビルド $ cd $HOME/OpenFOAM/Thirdparty-4.x $./Allwmake Paraview(ParaFoam) のビルド $./makeparaview $ wmrefresh 2016/3/7 64
OpenFOAM のビルド $ cd $HOME/OpenFOAM/OpenFOAM-4.x $./Allwmake j OpenFOAM の更新 $ cd $HOME/OpenFOAM/OpenFOAM-4.x $ git pull $./Allwmake -update ( まっさらにして 再ビルドする場合 ) $ wcleanplatfoam $./Allwmake -j 2016/3/7 65
git(git)/svn(subverison)/hg(merucurial) のインストール バイナリパッケージなどをダウンロードして展開するのではなく 開発版をダウンロードして使用したい場合には これらのコマンドをしばしば利用します ( 括弧内はアプリケーション名 ) 標準でインストールされていませんので 以下のようにして 3 つまとめてインストールしてしまいます $ sudo apt install git subversion mercurial 2016/3/7 66
Python 関連のツールおよびその他のインストール いろいろ追加インストールしておきます $ sudo apt install python-setuptools python-dev python-numpy pythonmatplotlib python-qt4 cmake bison flex tk tk-dev libblas-dev liblapackdev gfortran(1 行で ) 2016/3/7 67
1OpenFOAM 便利ツールのインストール :pyfoam PythonスクリプトベースのOpenFOAM 用ツール集 使わなくても問題はないが 収束の残さ表示など便利な機能が多数 https://openfoamwiki.net/index.php/contrib/pyfoam ダウンロードは以下のように実施します $ cd OpenFOAM/USER-4.1 $ svn co https://svn.code.sf.net/p/openfoamextend/svn/trunk/breeder/other/scripting/pyfoam/ (1 行 ) $ cd PyFoam $ python setup.py install 更新する場合は $ cd PyFoam $ svn update 2016/3/7 $ python setup.py install 68
2OpenFOAM 便利ツールのインストール :cfmesh OF 付属の snappyhexmesh と同様なメッシュツールである cfmesh の開発版をインストールします https://sourceforge.net/projects/cfmesh/ $ cd ~/OpenFOAM/USER-4.1 $ git clone git://git.code.sf.net/p/cfmesh/code cfmesh-dev $ cd cfmesh-dev $ OF41 $./Allwmake (10 分ほどかかります ) 更新する場合は $ cd cfmesh-dev $ git pull $./Allwmake 2016/3/7 69
3OpenFOAM 便利ツールのインストール :swak4foam 非標準のライブラリツールである swak4foam の開発版をインストールします 非定常な境界条件や 新しい変数の抽出など多様な設定が可能になります https://openfoamwiki.net/index.php/contrib/swak4foam $ cd ~/OpenFOAM/USER-4.1 $ hg clone http://hg.code.sf.net/p/openfoam-extend/swak4foam swak4foam-dev (1 行 ) $ cd swak4foam-dev $ OF41 $ hg update develop 注意 ( 次のスライドに続く )! 2016/3/7 70
ここで./Allwmake と行きたいところですが Lubuntu16.10 の bison が新しすぎるのでエラーになります エラーメッセージにあるように 以下のコマンドを実行し 適切な bison のバージョンをローカルにインストールします $./maintainancescripts/compilerequirements.sh bison 2.7.1 が DL されて自動ビルドされ ローカルにインストールまで行われるはずです 続いて Allwmake スクリプトを実行し swak4foam をビルドしましょう $./Allwmake 2016/3/7 71