Ship Resistance Simulations with OpenFOAM - OpenFOAM Workshop
仮想化ソフトウェアによる...
Transcript of 仮想化ソフトウェアによる...
仮想化ソフトウェアによるOpenFOAM利用環境の構築
若嶋振一郎(NIT, Ichinoseki College)
2016/3/7 1
初出: 2016/03/07更新: 2017/05/20
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に導入が必要)
2016/3/7 3
※自作ソルバー開発や、他のソフトウェア(dakotaなど)との連携を図る場合は、Linux環境を独自に構築する方が便利かと思います。
仮想化ソフトウェア
• ホスト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は商用ライセンス)
ホストOSWindows 64bit
Linux 64bit (Ver.7以降)
Windows Vista SP1/7/8/8.1/10 64bit/32bitWindows Server 2008/2012 64bit
MacOS X 10.8-11Linux 32/64bit
Solaris 10U10/11 64bit
ゲストOSWindows 7/8/8.1/10 32/64bit
Linux 32/64bitSolaris, FreeBSD, Max OS X 32/64bit
Windows NT4~7/8/8.1/10 32/64bitLinux 32/64bit
Solaris, FreeBSD, OpenBSD, Max OS X 32/64bit※ 32bitのホストOS上では64bitゲストOSは動作しま
せん
その他1 GHz 以上の 64 ビットプロセッサ (2 GHz を推奨)および 2 GB
以上のメモリ (4 GB を推奨)が必要←
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(機能拡張パック)
2016/3/7 9
バージョンを必ず揃えること!
今回配布したUSBメモリに入っています!
STEP 2-1 VirtualBoxのインストール
• DLしたVirtualBox-5.1.****-Win.exeをダブルクリック
• Windowsによっては保護機能により、次のような画面が出ますが、左にある「詳細情報」をクリックすると実行ボタンがでてきます。
Windows 10の場合
2016/3/7 10
最後にUSBコントローラのインストーラが出てきますが、「インストール」を選んで続行します。2016/3/7 11
インストール完了です。
VirtualBoxが起動しますが、拡張パックをインストールするためにこのままメニュー>ファイル>環境設定を選択します。
2016/3/7 12
STEP 2-2 VirtualBox拡張パックのインストール(必須)
• 環境設定ウインドウ中の「機能拡張」を選択し、右側の▽アイコンを選んで、ダウンロードした拡張パックを選択します。
• 成功すれば、その旨が小さなウインドウに表示されます
ライセンス確認画面
2016/3/7 13
VBox本体とバージョンを揃えましょう!拡張パックは必ずインストールしましょう!
【確認】
•拡張パックが正しく導入できていれば、以下のようにしても確認できます
• メニュー>ファイル>環境設定>機能拡張
※ 以上で、VirtualBoxのインストールは終了です。Windowsを再起動して一息いれましょう2016/3/7 14
3. VirtualBox用仮想アプライアンスのインポート
• VB上でLinuxをインストールし、さらにOF環境構築を行うことが普通ですが、都合により全ての操作を完了してOpenFOAMがすぐ使える状態のVirtualBox用仮想アプライアンス(OSイメージ)をUSBメモリにいれて配布します。
• WindowsにVirtualBox 5.1.xと拡張パック(同じバージョン)を導入した上で、VirtualBoxから、ファイル>仮想アプライアンスのインポートを選択し、仮想アプライアンスイメージを指定してインポートしてください
2016/3/7 15
フォルダアイコンをクリックして、DLしたovaファイルを選択する
Lubuntuシステムの起動
• インポートに成功すると、VirtualBoxの左側にOSが登録されます。
• これをダブルクリックするか、選択して起動アイコンを押すと、起動してLubuntuのログイン画面が出てきます
• USBで配布したイメージのログインユーザについては下記の通りです
•ユーザー名: of•パスワード: of
2016/3/7 16
Lubuntuの起動画面とデスクトップ
2016/3/7 17
ユーザー名: ofパスワード: of
共有フォルダ設定についての注意事項
•例えば、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 24※画面はVer.4.1のものです。
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. 結果の評価、可視化モニタリング出力データ(平均値、力、トルク・・・)可視化
2016/3/7 27
先ほど実行したチュートリアルcavityの例として、確認してみましょう
チュートリアルcavityのフォルダ内の構造
2016/3/7 28
cavity
0 systemconstant
U
p
polyMesh
transportProperties
blockMeshDict
controlDict
fvSchemes
fvSolution
初期条件・境界条件を設定します
メッシュデータ・物性条件を保存します 主に計算条件を設定します
※各種設定ファイルの場所や、これらのフォルダ名は基本的に固定です※ ソルバーや乱流設定の有無などによって、さらにファイルなどは増えます。ここでは、非圧縮性層流ソルバーのicoFoamに必要なファイルのみが示されています
cavity/0フォルダ
• U• 速度Uに関する設定ファイル
• P• 圧力pに関する設定ファイル
• OFでは非圧縮性流体の場合に圧力p/密度ρをpとみなしていることに注意)
•乱流計算の場合は、この他にk, epsilon, omega, nuTilda, nutなどのファイルが置かれる
2016/3/7 29
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 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 noSlip;}
frontAndBack{
type empty;}
}
// ************************************************************************* //
コメント部(C/C++ライクなコメント分)
ヘッダー部(必須)
単位 [kg m s K mol A Cd]・・・・[ms-1]
初期条件 速度ベクトルU=(0, 0, 0)
境界条件{
}
パッチ名{
type 境界条件の種類;value 境界条件の値;
}
:
設定ファイルでよく間違うのは、{ }, ( )などの対応やセミコロン;の有無などです!
2016/3/7 31
/*--------------------------------*- 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;
boundaryField{
movingWall{
type zeroGradient;}
fixedWalls{
type zeroGradient;}
frontAndBack{
type empty;}
}
// ************************************************************************* //
パッチ面の法線方向の勾配0
2次元計算で使用
単位 [m2/s2] = [ Pa/(kg/m3)] = [kg/(ms2)]/[kg/m3]
cavity/constantフォルダ
• polyMeshフォルダ• メッシュデータを格納する
• boundary ・・・・境界条件およびtypeを設定するパッチ名を設定するファイル
→ しばしば編集することがあります!
• faces, neighbor, owner, points ・・・・OpenFOAMメッシュデータ
• transportProperties• 流体の物性値(粘性係数など)を指定するファイル
• このほか、turbulenceProperties(乱流モデルの設定ファイル)を置きます
2016/3/7 32
2016/3/7 33
/*--------------------------------*- 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.01m2/s
cavity/systemフォルダ
• controlDict• 時間ステップ、計算時間、ファイル出力間隔の設定
• モニタリング出力等の設定ファイル
• ソルバー実行時の外部ライブラリの指定 など
• blockMeshDict• blockMeshコマンド用の設定ファイル
• fvSchemes• 時間進行スキームの設定
• 離散化スキームの設定(1次精度/2次精度スキーム、リミッター関数等)
• fvSolution• 離散化した後の行列計算の設定ファイル
• 反復回数や収束判定しきい値、緩和係数などの設定
• この他、各種コマンド用設定ファイル(dictionary)やfvOptionファイルの置き場になります
2016/3/7 34
このような***Dictというファイルは、dictionary
ファイルと呼ばれ、各種のソルバーやコマンド用設定ファイルとなっています
2016/3/7 35
[ヘッダー部省略]
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 36
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)
);}
);
mergePatchPairs();
blockMeshDictについての詳しくは別ファイルにまとめています
2016/3/7 37
ddtSchemes{
default Euler;}
gradSchemes{
default Gauss linear;grad(p) Gauss linear;
}
divSchemes{
default none;div(phi,U) Gauss linear;
}
laplacianSchemes{
default Gauss linear orthogonal;}
interpolationSchemes{
default linear;}
snGradSchemes{
default orthogonal;}
時間進行スキーム
勾配離散化スキーム
発散離散化スキーム(対流項)
ラプラシアン離散化スキーム(粘性項)
補間スキーム
セルフェースでの勾配スキーム
2016/3/7 38
solvers{
p{
solver PCG;preconditioner DIC;tolerance 1e-06;relTol 0.05;
}
pFinal{
$p;relTol 0;
}
U{
solver smoothSolver;smoother symGaussSeidel;tolerance 1e-05;relTol 0;
}}
PISO{
nCorrectors 2;nNonOrthogonalCorrectors 0;pRefCell 0;pRefValue 0;
}
圧力pの反復計算の計算設定
圧力pの最終反復での計算設定
速度Uの反復計算の計算設定
PISO法全体の計算設定(PISO法とは、icoFoamで用いられている解析アルゴリズムです)
以上で、導入に関するハンズオン入門セミナーは終了です。お疲れ様でした!
2016/3/7 39
APPENDIX 1-1: Linux isoイメージのダウンロード
• LubuntuのisoイメージをDLして適当な場所に保存して下さい(898MB)
• http://lubuntu.me/downloads/
HostOSのbitに合わせて選択ここでは64bitを選択しました
※ HostOSが64bitの場合、ゲストOSは32/64bitが選択できますが、あえて32bitゲストOSを選ぶ理由はないでしょう。
2016/3/7 40
APPENDIX 1-2 : LubuntuのVirtualBoxへのインストール準備
• VirtualBoxマネージャーを起動し、画面中の新規をクリックします
•仮想マシンの作成ウインドウが表示されます
• ここではエキスパートモードを選びます
2016/3/7 41
名前: Lubuntu16.10_64bitタイプ: Linuxバージョン: Ubuntu (64bit)
メモリーサイズ: 4096MB※ホストPCが4GB程度しかメモ
リを積んでいない場合はエラーになりますので、その場合は2048MBなどに減らしてください
ハードディスク:「仮想ハードディスクを作成する」
2016/3/7 42
Lubuntu_16.10_64bit
仮想ハードディスクファイルの場所:デフォルトでは、C:¥Users¥USER¥VirtualBox VMs以下に作られるが、右のディレクトリアイコンから指定することも可能
ファイルサイズ: 20GB(本格的に使用するのであれば最低40GBくらい)
物理ハードディスクにあるストレージ:可変サイズ(固定サイズのほうがパフォーマンスは上がるが、サイズ変更できない)
ファイルタイプ: VDI※仮想ディスクイメージのファイルタイプで、付属ツールで後から変換可能
2016/3/7 43
• 仮想マシンが作成されましたが(OSはまだインストールされていません)、利便性の向上や、より高速になるよう、いくつかの設定を変更を行います
• 設定アイコンをクリックして下さい
APPENDIX 1-3: Lubuntu仮想マシンのシステム設定
2016/3/7 44
①一般>高度>クリップボードの共有→双方向ドラッグ&ドロップ→双方向
2016/3/7 45
②システム>マザーボード>チップセット→ICH9プロセッサー>プロセッサー数→2(あるいは4)
拡張機能→☑PAE/NXを有効化アクセラレーション>準仮想化インターフェース→Hyper-V
(Windows 8以降)
2016/3/7 46
③ディスプレイ>ビデオメモリー→128MB or 256MB(下記参照)アクセラレーション→☑3Dアクセラレーションを有効化
裏技として、ディスプレイ数を8に増やすと、256MBまで選択できます。その後、いったんOKを押して設定を完了し、再び設定>ディスプレイでディスプレイ数を1に戻しておくと256MBの選択を保持できます
2016/3/7 47
④ストレージ>コントローラ:SATA>属性>☑ホストのI/Oキャッシュを使う
2016/3/7 48
(⑤共有フォルダー>右上の+アイコンをクリック)
フォルダーのパス→適宜(例ではデスクトップ)フォルダー名→HostDesktop☑自動マウント
※ Linux上のSambaサービスを使うことで代替できます
これはあとからでも変更可能です
2016/3/7 49
APPENDIX 1-4: Lubuntuのインストール
•仮想マシンの設定から、ストレージのコントローラ:IDEを選択し、「空」になっている光学ドライブアイコンを選択します
•属性: 光学ドライブの右のCDロムアイコンを選択し、仮想光学ディスクファイルの選択→ここで、DLしたLubuntuのisoイメージを指定してください
仮想光学ディスクISOイメージの選択
2016/3/7 50
lubuntu-16.10-desktop-amd64.iso
• 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
※ Guest AdditionsはゲストOSにインストールして、ビデオ機能の拡張や、クリップボード共有化などの機能拡張を行うソフトウェアです
• Lubuntu起動後に、仮想マシンのメニュー>デバイスを選び、一番下にある“Guest Additions CDイメージの挿入”を選択して下さい
• Lubuntu側でこのCDがマウント(/media/USER/VBOXADDITIONS_5.1.12_112440)され、ファイルマネージャが開かれます
2016/3/7 55
ユーザー名USERは、以下適宜読み替えてください。
• そこで、左下のメニュー>システムツール>LXTerminalを起動し、以下を入力してみてください
$sudo apt install gcc make
$sudo /media/USER/VBOXADDITIONS_5.*.***/VBoxLinuxAdditions.run
• とくにエラーメッセージが出なければ成功です。再起動して再度ログインすると、画面を最大化するとLubuntuの画面も追従してくれます
2016/3/7 56
sudoコマンドなどについては、
後で説明しますので、ここではスペースなどに注意して、入力してください
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
ThirdParty-4.1.tar.gz ThirdParty-4.x-version-4.1 VBoxGuestAdditions-5.1.12 openfoam4 paraviewopenfoam50
51MBくらいあります
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/bashrcAliasコマンドとして.bashrcに登録してもOKalias 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 python-matplotlib python-qt4 cmake bison flex tk tk-dev libblas-dev liblapack-dev gfortran(1行で)
2016/3/7 67
①OpenFOAM便利ツールのインストール:pyFoam• PythonスクリプトベースのOpenFOAM用ツール集
• 使わなくても問題はないが、収束の残さ表示など便利な機能が多数
• https://openfoamwiki.net/index.php/Contrib/PyFoam
• ダウンロードは以下のように実施します
$ cd OpenFOAM/USER-4.1
$ svn co https://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder/other/scripting/PyFoam/ (1行)
$ cd PyFoam
$ python setup.py install
更新する場合は
$ cd PyFoam
$ svn update
$ python setup.py install2016/3/7 68
②OpenFOAM便利ツールのインストール: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
$ ./Allwmake2016/3/7 69
③OpenFOAM便利ツールのインストール: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