OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能...
Transcript of OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能...
OpenFOAM®の実用化にむけた開発動向と
京での運用経験
2014.10.17 第2回 OpenFOAMワークショップ
株式会社CAEソリューションズ
フルイド事業部
大槻真人
Richard Kenny
OpenFOAM ®の利点と課題
HELYX ®による課題解決の試み
京での運用経験
2
ご紹介内容
弊社のOpenFOAM ®へのとりくみ
• 2001 – 2004 商用ライセンス
• Nabla社日本販売代理(FOAM)
• 大学、研究機関中心に販売
• 2005 – 2010 オープンソースに移行後サポート継続
• カスタマイズ
• サポートメニュー作成
• スクール開催
• 2011 - 2014 クラウドに展開
• 受託解析
• クラウドCAE:HPCベンダー連携
• サポート体系化
• 実用化:専用アプリ開発、GUIベンダー連携
3
FOCUSでのOpenFOAMサポート
4
2496cores(208nodes)(24TFPS)
48GB RAM/node (total10TB) OpenFOAM ®講習(基礎/応用隔月実施)
OpenFOAM ®サポート、コンサルティング
京
FOCUS
http://www.j-focus.or.jp/
OpenFOAM ®の利点と課題
5
可視、自由に拡張可能 (オープンソース)
大規模並列計算のコスト低減(ライセンスフリー)
メッシュに対するロバスト性
GUIが付属しないため、設定に時間がかかる
適時のサポート
ドキュメント
HELYX ®
利点
課題
• 英国Engys社が開発
• 使い易いGUI (Java + VTK)
• 拡張版OpenFOAM®
• エキスパート技術者のサポート
• 保守と検証
• 独自に作成したOpenFOAM解説書
• オプションモジュール(別途購入)
6
HELYX ®
HELYX ® • HELYX-OSは誰でも利用できるGPLライセン
スによるオープンソースのOpenFOAM用GUI
– ダウンロードサイト
• http://sourceforge.net/projects/helyx-os/
• HELYXは年間サポートがついた、商用版
– GUI+OpenFOAMの独自改良版
HelyxHexMesh/改良ソルバ/オプションモジュール
改良部分も含めGPLライセンスに準拠
7
Engys社
• CAE製品とサービスの提供
• オープンソース・ソリューションを基本に
• ソリューション・プラットフォーム
– CFD → HELYX®/OpenFOAM
– 最適化 → DAKOTA
– GUI → HELYX-OS/HELYX
• 経歴
– 2009 → 英国にて設立
– 2010 – 現在 → 世界に5拠点
– 2012 → 米国ARCとのジョイントベンチャー
Streamline Solutions社設立
英国ロンドン本社
イタリア・トリエステ
事務所
米国・インディアナポリス事務所
8
HELYX vs. HELYX-OS
商品形態 無償ダウンロード版
(サポート付有償版あり) 有償商用版
GUI 部ライセンス形態 GPLライセンス フローティングライセンス
カーネルコード 標準 OpenFOAM® v2..3 Engys拡張版OpenFOAM®ライブラリ
メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh
ケース設定 GUIからOpenFOAMファイルのR/W 左記と独自のcaseSetupユーティリティ
ソルバ 標準OpenFOAMソルバの実行 拡張版ソルバの実行
サポート オプションとして有償サポートあり 拡張機能を含むサポートとバージョン
アップ
取扱説明書(英語) 有償サポート版には
チュートリアルガイド付
GUI, カーネルコードの取扱説明書、チュートリアル付
9
Technology | HELYX Mesh
• 特徴線の自動抽出 (no need for .eMesh)
• 表面スナップの改善
• レイヤ層の改善
Standard v2.2 HELYX 2.1
Comparison snappyHexMesh
(searchableCylinder)
11
Technology | HELYX Mesh
• 複数領域のサポート (CHT, AMI)
• AMI スライド面の自動設定 (re-patching & zoning)
12
Technology | HELYX Mesh
• STLにおけるクラックの検出と修復
13
© 2014 ENGYS. All rights reserved.
© 2014 ENGYS. All rights reserved.
© 2014 ENGYS. All rights reserved.
17
インペリアルカレッジ
Nabla社(FOAM)
OpenCFD社 Wikki社
ICON社
Engys社
1992
1999
2004
2009
OpenFOAM ®開発者の系譜
SGI OpenCFD foundation
ESI OpenCFD foundation
OpenFOAM-2.3
foam-extend-3.1
HELYX
(OpenFOAM-2.2.x)
2004
2011
2012
FOCUS京へ • 波力発電システムの解析 ~700万セル
OpenFOAM-2.1.x + wave2Foam
FOCUS 256coreで20日程度
• ファンの空力騒音の解析 ~1000万セル
HELYX-CORE 2.1 ( OpenFOAM-2.2.x )
FOCUS 256coreで10日~20日
18
OpenFOAMの移植
• 64bit計算ノードでクロス・コンパイル
富士通mpiccコンパイラ
• OpenFOAM-2.1 -2.2 のパッチ
京ヘルプデスクより提供
• swak4foam[1] (wave2foam[2]が依存)の修正
• テスト・修正
19
[1] http://openfoamwiki.net/index.php/Contrib/swak4Foam
[2] http://openfoamwiki.net/index.php/Contrib/waves2Foam
1) "micro" queue ( < 384 nodes, max compute time = 30mins )
• Uses the /scratch disk space
• No staging of files required (hence, simpler jobscripts)
• Useful for run-time testing and debugging.
• For convenient sharing amongst users include libraries and binaries of OpenFoam in the case folder
i.e.
0
OpenFOAM include essential libs, binaries and config files only
constant
processor0
processor1
..
system
京でのOpenFOAMの実行
1) "micro" queue (continued)
Typical job script contents:
#!/bin/sh
#PJM --rsc-list rscgrp=micro
#PJM --rsc-list "node = 1x3x5" number of nodes, 1 node = 8 cores
#PJM --rsc-list "elapse = 00:30:00" hours : mins : secs
#PJM --mpi "shape = 1x3x5" TOFU node topology
#PJM --mpi "proc=120" number of cores
# Environment settings
export PJM_O_PWD=$PWD
PATH=..
LD_LIBRARY_PATH=..
# Run
mpiexec -np 120 "solver-executable" -case $PJM_O_PWD -parallel
# Debug
# fdb "solver-executable" -script=fdbScriptFile
2) "small" and "large" queues
• Uses the /data disk space
• We use staging (but with no ranking, i.e. don't use the wildcard %r, to preserve OpenFoam case
structure).
For convenient sharing amongst users include libraries and binaries of OpenFoam in the case folder i.e.
0
OpenFOAM include essential libs, binaries and config files only
constant
processor0
processor1
..
processorN
system
2) "small" and "large" queues (continued)
• Jobscript contents
## ++++++++++++LIBRARY dirs&files for STAGING-IN++++++++++++++++
#PJM --stgin-dir " ./OpenFOAM/OpenFOAM-2.2_engysEdition2.1/bin ./OpenFOAM/OpenFOAM-
2.2_engysEdition2.1/bin"
..
## ++++++++++++CASE dirs&files for STAGING-IN++++++++++++++++
#PJM --stgin-dir "./constant ./constant"
#PJM --stgin-dir "./system ./system"
##Processor dirs and subdirs
#PJM --stgin-dir " ./processor0 ./processor0 recursive=4" "stage in" field data at 4 levels
..
2) "small" and "large" queues (continued)
# +++++++++++++CASE dirs&files for STAGING-OUT+++++++++++++
#PJM --stgout-dir " ./postProcessing ./postProcessing recursive=4 " post processing results
#Processor dirs and subdirs
#PJM --stgout-dir " ./processor0 ./processor0 recursive=4" "stage out" field data at 4 directory levels
..
## Setup local compute environment
source /work/system/Env_base
##
## Setup local OpenFOAM environment
export WM_PROJECT_INST_DIR=./OpenFOAM
..
## Execute
mpiexec -n 120 rhoPimpleFoam -case ./ -parallel
• Create simple scripts to print out "stage in" and "stage out" processor directories i.e.
#PJM --stgout-dir " ./processor0 ./processor0 recursive=4
..
#PJM --stgout-dir " ./processor120 ./processor12o recursive=4
• Monitor active job output with
pjstatus
pjcat <jobID>
also, at the K portal website (https://k.aics.riken.jp)
2) "small" and "large" queues (continued)
波力発電システムの解析
26
OpenFOAM-2.1.x
+wave2foam
計算領域
120m x 60m x (30+20)m
メッシュ:
350~700万セル
snappyHexMesh(HELYX)で作成
ソルバ:
waveFoam + realizableK-e
(CFD deltaT ~1e-05secs)
その他:
Co=0.5, dt < 1ms、~800s
不規則波入射
有義波高1m~3m 100波分
無反射境界条件
• OpenFOAM,wave2Foamの移植に3カ月
• 京でFOCUSと同等の結果を得ることが
できたがより詳細なメッシュ (> 1000万セル)
での検証にいたらず
*海洋エネルギーエンジニアリング(株)と共同開発
HELYX-core-2.1
(OpenFOAM-2.2ベース)
メッシュ:
1000万セル - 波長0.2mmの
音波を捕獲
4領域に分け、AMI境界で
接続
ソルバ:
rhoPimpleDyMFoam
+ LES 乱流
(CFD deltaT = 1e-05secs)
*移動メッシュの計算に全体のCPU時間の約50% 要す
*圧縮ファイルのI/O不可
ファンの空力騒音直接計算
D =approx. 0.1m
Inlet
Outlet
Fan
Scaling Results:
a) narrow range for linear 'speed-up'
b) no difference between "linear" and "compact" Tofu topologies
c) in general, "execution-time per CFD time-step" is double that of the same computation on
FOCUS a024h job queue.
• mpiccでのコンパイルにFOCUSのgcc4.8.2
の約6倍の時間を要した
• mciroキューは小規模問題のテストに非常に
有効(ステージング不要、
速いターンアラウンド)
• 小規模メッシュ(5000万セル以下)では京の
性能を有効活用できない
29
京での運用経験から
今後の課題
• 大規模モデルでの利用
• HELYXオプションモジュールの移植
• 大規模データのプリ・ポスト処理
• ユーザ間の情報共有
30
ご清聴ありがとうございました。
OpenFOAMはESIグループ英国OpenCFD社の登録商標です。その他の製品名等は各社は登録商標等です。
HELYX紹介部: ©2014 Engys Ltd.
(その他紹介部: ©2014 CAE Solutions Corp. )
CAE専門サイト:http://www.cae-sc.com
株式会社CAEソリューションズ
102-0072 東京都千代田区飯田橋2-1-10 TUGビル8F
tel. 03-3514-1506, fax. 03-3514-1507
e-mail: [email protected]
31