OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能...

30
OpenFOAM®の実用化にむけた開発動向と 京での運用経験 2014.10.17 2OpenFOAMワークショップ 株式会社CAEソリューションズ フルイド事業部 大槻真人 Richard Kenny

Transcript of OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能...

Page 1: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

OpenFOAM®の実用化にむけた開発動向と

京での運用経験

2014.10.17 第2回 OpenFOAMワークショップ

株式会社CAEソリューションズ

フルイド事業部

大槻真人

Richard Kenny

Page 2: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

OpenFOAM ®の利点と課題

HELYX ®による課題解決の試み

京での運用経験

2

ご紹介内容

Page 3: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

弊社のOpenFOAM ®へのとりくみ

• 2001 – 2004 商用ライセンス

• Nabla社日本販売代理(FOAM)

• 大学、研究機関中心に販売

• 2005 – 2010 オープンソースに移行後サポート継続

• カスタマイズ

• サポートメニュー作成

• スクール開催

• 2011 - 2014 クラウドに展開

• 受託解析

• クラウドCAE:HPCベンダー連携

• サポート体系化

• 実用化:専用アプリ開発、GUIベンダー連携

3

Page 4: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

FOCUSでのOpenFOAMサポート

4

2496cores(208nodes)(24TFPS)

48GB RAM/node (total10TB) OpenFOAM ®講習(基礎/応用隔月実施)

OpenFOAM ®サポート、コンサルティング

FOCUS

http://www.j-focus.or.jp/

Page 5: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

OpenFOAM ®の利点と課題

5

可視、自由に拡張可能 (オープンソース)

大規模並列計算のコスト低減(ライセンスフリー)

メッシュに対するロバスト性

GUIが付属しないため、設定に時間がかかる

適時のサポート

ドキュメント

HELYX ®

利点

課題

Page 6: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

• 英国Engys社が開発

• 使い易いGUI (Java + VTK)

• 拡張版OpenFOAM®

• エキスパート技術者のサポート

• 保守と検証

• 独自に作成したOpenFOAM解説書

• オプションモジュール(別途購入)

6

HELYX ®

Page 7: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

HELYX ® • HELYX-OSは誰でも利用できるGPLライセン

スによるオープンソースのOpenFOAM用GUI

– ダウンロードサイト

• http://sourceforge.net/projects/helyx-os/

• HELYXは年間サポートがついた、商用版

– GUI+OpenFOAMの独自改良版

HelyxHexMesh/改良ソルバ/オプションモジュール

改良部分も含めGPLライセンスに準拠

7

Page 8: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

Engys社

• CAE製品とサービスの提供

• オープンソース・ソリューションを基本に

• ソリューション・プラットフォーム

– CFD → HELYX®/OpenFOAM

– 最適化 → DAKOTA

– GUI → HELYX-OS/HELYX

• 経歴

– 2009 → 英国にて設立

– 2010 – 現在 → 世界に5拠点

– 2012 → 米国ARCとのジョイントベンチャー

Streamline Solutions社設立

英国ロンドン本社

イタリア・トリエステ

事務所

米国・インディアナポリス事務所

8

Page 9: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

HELYX vs. HELYX-OS

商品形態 無償ダウンロード版

(サポート付有償版あり) 有償商用版

GUI 部ライセンス形態 GPLライセンス フローティングライセンス

カーネルコード 標準 OpenFOAM® v2..3 Engys拡張版OpenFOAM®ライブラリ

メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh

ケース設定 GUIからOpenFOAMファイルのR/W 左記と独自のcaseSetupユーティリティ

ソルバ 標準OpenFOAMソルバの実行 拡張版ソルバの実行

サポート オプションとして有償サポートあり 拡張機能を含むサポートとバージョン

アップ

取扱説明書(英語) 有償サポート版には

チュートリアルガイド付

GUI, カーネルコードの取扱説明書、チュートリアル付

9

Page 10: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

Technology | HELYX Mesh

• 特徴線の自動抽出 (no need for .eMesh)

• 表面スナップの改善

• レイヤ層の改善

Standard v2.2 HELYX 2.1

Comparison snappyHexMesh

(searchableCylinder)

11

Page 11: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

Technology | HELYX Mesh

• 複数領域のサポート (CHT, AMI)

• AMI スライド面の自動設定 (re-patching & zoning)

12

Page 12: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

Technology | HELYX Mesh

• STLにおけるクラックの検出と修復

13

Page 13: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

© 2014 ENGYS. All rights reserved.

Page 14: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

© 2014 ENGYS. All rights reserved.

Page 15: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

© 2014 ENGYS. All rights reserved.

Page 16: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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

Page 17: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

FOCUS京へ • 波力発電システムの解析 ~700万セル

OpenFOAM-2.1.x + wave2Foam

FOCUS 256coreで20日程度

• ファンの空力騒音の解析 ~1000万セル

HELYX-CORE 2.1 ( OpenFOAM-2.2.x )

FOCUS 256coreで10日~20日

18

Page 18: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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

Page 19: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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の実行

Page 20: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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

Page 21: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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

Page 22: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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

..

Page 23: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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

Page 24: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

• 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)

Page 25: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

波力発電システムの解析

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万セル)

での検証にいたらず

*海洋エネルギーエンジニアリング(株)と共同開発

Page 26: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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

Page 27: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

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.

Page 28: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

• mpiccでのコンパイルにFOCUSのgcc4.8.2

の約6倍の時間を要した

• mciroキューは小規模問題のテストに非常に

有効(ステージング不要、

速いターンアラウンド)

• 小規模メッシュ(5000万セル以下)では京の

性能を有効活用できない

29

京での運用経験から

Page 29: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

今後の課題

• 大規模モデルでの利用

• HELYXオプションモジュールの移植

• 大規模データのプリ・ポスト処理

• ユーザ間の情報共有

30

Page 30: OpenFOAM®の実用化にむけた開発動向と 京での運 …メッシュ機能 標準snappyHexMesh 改良版snappyHexMesh ケース設定 GUIからOpenFOAMファイルのR/W

ご清聴ありがとうございました。

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