演習1:
foamyHexMesh と cfMesh によるメッシュ作成演習
DEXCS for OpenFOAM の標準チュートリアルケース(フォント周
りの流れ解析)を、foamyHexMesh とcfMeshでメッシュ作成、計算
する演習を行います。
2013/8/16
第33回オープンCAE勉強会@岐阜
夏合宿
 
オープンCAEコンサルタント
OCSE^2 代表 野村悦治
目次
1. 演習環境について
2. DEXCS標準チュートリアルモデル
2.1. snappyHexMesh by SwiftTool
2.2. 形状モデルの変換
3. foamyHexMesh の(演習)と解説
4. cfMesh の演習と解説
1. 演習環境
DEXCS2014 for OpenFOAM(R) のプロトタイプ版
に、演習用ケースファイル等を同梱してあります。
OS : Ubuntu 14.04
OpenFOAM-2.3.x-f43d2c700665
(2014/6/30 入手)
利用方法
❏ ライブDVDで利用
❏ 専用マシンにインストールして利用
❏ 通常利用マシンとは別ドライブにインストール
し、起動時に切り替え利用
❏ 仮想マシンプレーヤで利用
❏ ライブDVDで利用
❏ インストールして利用
isoイメージファイル/DVDの利用方法
起動画面
パソコンをDVDから起動
新規仮想マシンを作成
DVD
BIOS設定(起動順をDVD優先)
仮想マシンプレーヤー(vmware,virtualBox,...)
isoイメージファイル
イメージ書き込み
p.10参照
p.11参照
p.12参照
インストールの手順と利用形態
HDDまたは
仮想マシンへの
ubuntu
インストール
DEXCS
インストール2
ユーザ名:custom
パスワード:無し
ユーザ名:任意
パスワード:任意
ユーザ名:任意
パスワード:任意
まずは
使ってみる
継続利用
起動画面
DEXCS
インストール1
DEXCSインストール1の手順
ユーザ名:custom
パスワード:無し
ライブDVDで使用する場合
どちらもOK
ubuntu インストールの手順
ユーザ名:任意
パスワード:任意
ユーザ名:任意
パスワード:任意
要合致
DEXCSインストール2の手順
HDDまたは仮想マシンへ Linux Mint をインストールした後で実施
ユーザ名:任意
パスワード:任意
(ubuntuインストー
ルで設定したもの)
どちらもOK
isoイメージファイル⇒DVD作成方法
● Windows7以降では、Windowsの標準機能で作成で
きるようになったようです。
○ http://www.vwnet.jp/Windows/w7/ISO/WriteISO.htm
○ http://memorva.jp/internet/pc/iso_cd_dvd.php
● Windows7以前では、ライティングソフトが必要です。
○ http://www.pc-master.jp/sousa/s-iso.html
○ http://pctrouble.lessismore.cc/running/write_iso.html
参考サイト情報
起動ドライブの変更方法
● BIOS設定⇒起動優先順位を変更
PC電源をオンした直後、F2キーかDeleteキー(機種によって異なる)を押すとBIOS設
定メニューが出るので、そのBootメニューから起動優先順位を変更する
● http://pctrouble.lessismore.cc/boot/bios_setup.html
● http://www.pc-master.jp/jisaku/boot.html
● 起動時のドライブ変更メニューを使用
PC電源をオンした直後、F11かF12キー(機種によって異なる)を押すと、起動ドライブ
選択メニューが出るので、そこで選択変更する。
● http://dynabook.com/assistpc/faq/pcdata/004035.htm
参考サイト情報
仮想マシンプレーヤー
● ゲストOS(この場合、DEXCS for OpenFOAM®のインス
トールされたLinuxOS)を別のOS(WindowsやMacOS、別
のLinuxOSなど)の上で動かすソフトウェア。
● VirtualBoxなど数多くのx86仮想化ソフトがある。
http://ja.wikipedia.org/wiki/X86%E4%BB%AE%E6%83%B3%E5%8C%96
● 無料で使えるもので、VirtualBox, VMwarePlayer が代表的
であり、比較記事も多い。
http://legacyos.ichmy.0t0.jp/virtualsoft/
http://bit.ly/1a3nOdq
● 個人的にはVMwarePlayerがお勧めだが、ライセンス条項
には気を付ける必要がある。
DEXCS2014 搭載コンポーネントの概要
OF-2.3.X 起動用端末
TreeFoam-2.22
ParaView-4.1.0
HelyxOS 2.1.1
演習2 ケースファイル
演習1 ケースファイル
FreeCAD-0.14
Blender-2.71 + Swift Tools
OpenMDAO-0.9.7
Chromium web browser
SPE ( Stani’s Python Editor ) 0.8.4.h-3
JAVA gnuplot GUI 0.1.2
kdif3 0.9.97-3
wxGlade 0.6.8-1
演習1用ケースファイルの確認
ダブルクリック
snappyHexMesh
by Swift-tools on Blender
2. DEXCS標準チュートリアルケースの確認
併せて、TreeFoam等、DEXCS2014(ubuntu
14.04 をベースに様々なカスタマイズを施してあり
ます)の操作方法を習得
TreeFoam起動
TreeFoam-2.22
クリック
TreeFoam ⇒ Blenderモデルを開く
ダブルクリック
SwiftSnapp⇒snappyHexMeshDict作成
1
2
出力先を変更
1
2 3
出力先を間違
いなきよう注意
SwiftBlock⇒blockHexMeshDict作成
出力先を変更
マウス右ボタンクリックで、
外枠(仮想風洞)を選択
1
2
3
出力先を間違
いなきよう注意
メッシュ作成の実行
1
2
4
3
計算時間は
1〜数分
メッシュ確認⇒ParaFoamの起動
1
2
1
2
3
4
メッシュ確認例
レイヤー層の欠落
稜線の欠け
計算(simpleFoam)実行してみる
1
2
3
4
2
1
メッシュの入れ替え(snappyHexMesh)
1
2
3
4 5
境界条件(確認)
1
2
計算実行
1 2
ExecutionTime = 54.86 s ClockTime = 55 s
SIMPLE solution converged in 147 iterations
yPlusの計算
yPlusRAS
結果の可視化⇒ParaView起動
1
2
2
1
3
4
3
2
1
4
2.2 形状モデルの変換について
DEXCS標準チュートリアルでは、Blenderで
作成したモデル(dexcs.blend)に対してSwift
ツールでメッシュ設定していましたが、他の
メッシュツールでは、表面定義ファイルを個々
のツールに必要な形で用意しておく必要があ
ります。
DEXCS2014では、FreeCADのソリッド形式
データから、任意のパッチに対してstlファイル
を出力できるようにしてある(*1)ので、
DEXCS標準モデルを、FreeCADモデルとし
て変換・再構築しました。
formyHexMeshで使用
cfMeshで使用
(1*)関西勉強会グループで作成したマクロを拝借
モデルデータの作成要領・手順の概要
STLエクスポート 変換
個別切
り出し
インポート インポート
風洞部・メッシュ詳細
部は寸法読み取り⇒
スクラッチで作成
細分割領域Box定義 細分割領域Box定義
3.formyHexMeshの(演習)と解説
foamyHexMesh作成上の要点
❏ 形状データ
❏ system/foamyHexMeshDict
❏ shapeControlFunction
❏ 並列計算
❏ ポリゴン形式(.stl または .obj)
❏ 分割レベルを区別したい面毎に用意
(全体として閉じた領域になっていること)
❏ 表面の法線方向を考慮する必要有り
形状データ
NG OK
仮想風洞のSTLファイル作成
1
2
3
4patch(境界)が区
別できている
ParaViewによる法線方向の確認
法線サイズの変更は不可?
Blenderによる法線方向の確認
法線サイズ・方向の変更が可能
(パーツ毎に表示、同時表示は不可)
マルチブロックデータの読み込みも可能
但し、STLエクスポートでは単ブロック
データになってしまう
1
2
❏ ポリゴン形式(.stl または .obj)
❏ 分割レベルを区別したい面毎に用意
(全体として閉じた領域になっていること)
❏ 表面の法線方向を考慮する必要有り
形状データ
surfaceOrient (inputFile) -inside '(x,y,z)' (outputFile)
メッシュ作成したい内部領域点
作成手順と構成ファイルの概要
ダブルクリックで
FreeCAD起動
1
2
3
foamyHexMeshDict
geometry
initialPoints
surfaceConformation
motionControl
polyMeshFiltering
meshQualityControls
backgroundMeshDecomposition
あまり変更する必要のないパラメタが
デフォルト値として組み込まれている
パラメタブロック名
foamyHexMeshDictのパラメタ一覧
foamyHexMeshDictのパラメタ一覧
あまり変更する必要のないパラメタ
本例のformyHexMeshDictで設定
モデルに応じて変更が必要なパラメタ 初期のヴァージョン( OF-
2.3.0 含む)では、これをtrueにすれ
ば、ランダム性を排除できた(同一パラ
メタであれば同一のメッシュが作成でき
た)が、現在のヴァージョンではこのパ
ラメタが有効にならない(毎回異なった
メッシュが生成される)。
geometry
入力ファイル名
毎に境界ブロック名
(name)を定義
マルチブロックファイル
では、境界面(region)
毎に名前を定義
(名前変更してもOK)
surfaceConformation
輪郭線データの作成方法を指定
基底型境界typeの指定
境界ブロック
(dexcs,duct)
毎に、
境界毎に、
motionControl
surfaceCellSizeCoeffの指定
境界ブロック
(dexcs,duct)
毎に、
cellSizeFunction を指定
linearDistance / uniform
priority, mode --- ?
絶対値
相対値
まとめ(Allrun)
foamyHexMeshの実行
微少要素の削除・統合?
(デフォルト設定、型通りで OK?)
surfaceFileの法線
方向を整合させる
1
2
3
checkMeshの実行
(必須ではない)
並列計算
OpenFOAMソルバーの通常の方法
decomposePar
mpirun -np # [solverName] -parallel
と異なり、バックグラウンド
(backgroundMeshDecomposition)で基礎メッ
シュ領域を作成しておく必要があり、この領域を
decomposeしてからソルバー
(foamyHexMesh)実行する。
backgroundMeshDecomposition
手入力にて作成
tight-fitting でない場合
や、分割数を変えた場合
の影響などは未調査
計算実行前のケースファイル
(前頁の手順で実行可能だが、
必要計算資源大)
上と同じケースファイルにて、4
並列計算実行後の結果
自習用
以下の演習
にて使用
メッシュ確認⇒ParaView起動
2
1
3
どちらでもOK)
1
2
3
4
foamy
snappy
snappy foamy
checkMesh summary
log.checkMesh
計算(simpleFoam)実行してみる
1
2
3
4
2
1
1
2
3
4
5
境界条件(確認)
13
2
4
計算実行
ExecutionTime = 60.12 s ClockTime = 60 s
SIMPLE solution converged in 121 iterations
1 2
yPlusの計算
yPlusRAS
結果の可視化⇒ParaView起動
1
2
3
4
2
1
3
2
1
4
snappy foamy
パラメタスタディの例
cellSizeFunction uniform;
cellSizeFunction linearDistance ; cellSizeFunction uniform;
cellSizeFunction linearDistance ;
4. cfMesh
http://www.c-fields.com/
cfMesh-v1.0
作成手順と構成ファイルの概要
ダブルクリックで
FreeCAD起動
1
2
3
surfaceFile(.stl)の作成
1
2
4
3
Allrun 実行
2
3
./Allrun
1〜数分
1
メッシュ確認⇒ParaView起動
2
3
1
1
2
3
4
snappy cfMesh
checkMesh
log.checkMesh
simpleFoamの計算準備
1
4 2
3
5
6
1
2
メッシュの入れ替え(cfMesh)
1
4 5
2
3
境界条件(要手修正)
wall に変更
patch に変更
(3箇所)
1
2
3 4
1 2
ExecutionTime = 90.09 s ClockTime = 91 s
SIMPLE solution converged in 123 iterations
yPlusRAS
3
結果の可視化⇒ParaView起動
1
2
2
1
3
4
3
2
1
4
snappy cfMesh
cfMesh作成上の要点
❏ 形状データ
❏ system/meshDict
❏ 並列計算
形状データ
解析領域を定義
⇒サーフェスデータ
細分割領域を定義
(Box指定)
Box以外にも、円柱や
球などのプリミティブ
要素も使用可能
サーフェスデータ(stl形式)の作成
出力したいものだけを
表示状態にしておく
1
2
4
3
全ソリッドデータでない場合
STLファイル 合体(手作業*)
開発予定
輪郭線の抽出
前頁で作成したSTLデータだけでもメッシュ作成可能だが、異
なる境界面との交線以外の輪郭線がつぶれてしまう。
surfaceFeatureEdges -angle ## (input - .stl) (output - .fms)
The preferred format for cfMesh is fms, designed to hold all relevant information for setting up a meshing job.
It stores patches, subsets, and feature edges in a single file. In addition, it is the only format which can store
all geometric entities into a single file, and the users are strongly encouraged to use it.
meshDict
surfaceFile
boundaryLayers
localRefinement
objectRefinements
keepCellsIntersectin
gPatches
cellSize は絶対
値で指定
今回は手入力
minCellSize
objectRefinement
開発中
inlet
outlet
wall
dexcs
regiionB
ox
maxCellSize
cellSize
Boundary
Layesr
minCellSize
実行
Local
Refinement
object
Refinements
cellSizenLayers ratio
新DEXCSランチャーの構想
feature
Angle
Dexcs.fms, meshDict 作成
マクロ実行
チェックした項目でのみ
パラメタ入力
開発予定
並列計算
preparePar :
cfMesh に同梱
のユーティリティ
たいへんシンプルな方法で出来るが、通信エラーが生じたり、計
算できても計算時間が余分にかかってしまう。(開発途上?)
標準チュートリアル( sawOctrees)のオプションそ
ままだと、reconstructParMesh で失敗する
分割数を指定
するだけ
Let’s smart OpenCAE
presented by

Mesh dexcs