狠狠撸

狠狠撸Share a Scribd company logo
オープンCAEコンサルタント
OCSE^2 代表 野村悦治
DEXCS for OpenFOAM?における
推奨メッシュ生成法
Disclaimer: OPENFOAM ? is a registered trade mark of OpenCFD Limited, the producer of the
OpenFOAM software and owner of the OPENFOAM ? and OpenCFD ? trade marks. This
offering is not approved or endorsed by OpenCFD Limited.
2020/10
for DEXCS2020
 
1
形状、メッシュデータ作成方法の概要
■ 簡単な形状???FreeCADで作成(と境界区分)
■ 複雑な形状???通常利用の3D-CADで作成
○ ? STL形式でエクスポート
? helyxOS へインポート ? snappyHexMesh
? TreeFoam へインポート ? snappyHexMesh
○ ?STEP形式でエクスポート
?FreeCADへインポート ? FreeCADマクロ ? cfMesh
(簡単なSTL形式インポートも可能)
■ 他のソフトで作成したメッシュが存在
○ ?###ToFoam 標準ユーティリティを利用
DEXCS同梱ツール DEXCS推奨方法
2
目次
1. FreeCAD
2. cfMesh
3. FreeCADマクロ
3
1. FreeCAD
4
FreeCADとは http://www.freecadweb.org/?lang=ja
5
https://www.freecadweb.org/wiki/Getting_started/jp
FreeCADの起動
6
クリック
1
FreeCADの基本
? 画面の構成
? ワークベンチ
? ツールバー
? マウスの使い方
? 3Dモデル作成法
? インポート / エクスポート
? DEXCS カスタマイズメニュー
7
画面(パネル)の構成
画面の追加?削除
画面の分離?結合
8
ワークベンチ
9
CAE通常利用
9
31
2
ツールバー
10
追加?削除
可能
個々のツールバーはサ
イズ如何で展開使用、自
由に配置も可能
ワークベンチ変更に伴
いツールバー構成が
変化
新規作成ボタンを押せ
ば、ツールバー利用
が可能になる
マウスの使い方
11
3D画面上で
マウス右クリック
2?右ボタン
でもOK
変更は可能
クリック
3Dモデル作成法のいろいろ
12
Part
PartDesign
Sketch
Pocket
押出
1
3
2
3Dモデル作成法のいろいろ
13
Part
1
Part起動画面とツール
14
プリミティブ
ツール
1
加工ツール
2
注:ツールバーの位置は説明用に並び替えてあります
論理演算
ツール
立方体 ? 直方体平板
1
3
4
寸法を変更
5
62
15
円柱
16
1
3
4
寸法を変更
5
2
クリック
6
7 8
ソリッド演算
1
2
4
Applyボタンを押して、意図した通りにならなかっ
た場合は、Ctrl+Zキーにてやり直し
17
3
3Dモデル作成法のいろいろ
18
Sketch
Pocket
押出
2
スケッチ起動
19
2
3
1
4
スケッチツール
描画ツール
拘束ツール
注:ツールバーの位置は説明用に並び替えてあります
20
長方形と円の作成
1 2
寸法や配置はおおまかで良い(後で修正)
21
円中心を固定
円中心と原点を選択
円中心が原点に移動
選択したものは
緑色表示されている
1
2
3
22
円の半径
円を選択
1
2
5
3
4
23
長方形の位置
辺と原点を選択
1
2
3
4
5
6
7
8
辺と原点を選択
24
長方形の大きさ
辺を選択
1
2
3
4
6
7
8
辺を選択
5
25
スケッチ終了 ? Part起動
2
26
1
押し出し
1
3
4
2
27
3Dモデル作成法のいろいろ
Part
PartDesign
Pocket
3
28
PartDesign起動
1
3
p.15 と同じ
2
4
29
面上でスケッチ画面を起動
面を選択1
2
3
30
円を作成
円を選択
1
円中心を選択
5
4
4
3
2
6
31
ポケット作成
1
5
2
4
3
32
FreeCADの基本
? 画面の構成
? ワークベンチ
? ツールバー
? マウスの使い方
? 3Dモデル作成法
? インポート / エクスポート
? DEXCS カスタマイズメニュー
33
3Dモデルのエクスポート(STEP形式)
1
4
3
6
5
7
2
8
34
35
3Dモデルのインポート(STEP形式)
2
3
4
5
新規
1
6
36
3Dモデルのエクスポート(STL形式)
1
2
3
4
5
6
7
37
3Dモデルのエクスポート
(STL形式、補足)
本図方法も可能だが、ファイル名に拡張子( stlまたはast)を付
加する必要がある。 stlはバイナリ形式、astはアスキー形式。
OpenFOAMは拡張子stlのアスキー形式が必要なので、 astで
出力してファイル名変更する必要がある。
また複数ブロックが存在する場合、この方法で出力される STL
モデルは単一ブロックになってしまう。
3Dモデルのインポート(STL形式)
2
3
4
5
新規
1
6
38
(注)STLモデルのままでは後述のマクロで取扱できません
39
インポートしたSTLモデルの3D化
2
5
4
1
3D化出来たら削除
(残しておくと、後のマク
ロ作業でエラーになる)
形状がうまく再現でき
ない場合に調整
m(メートル)サイズで作成してあ
る場合は、拡大してからイン
ポートすると良い
サイズ制限は、
メモリが許容できる範囲まで OKですが、
実用上は数10MB程度まで
3
40
DEXCSカスタマイズメニュー(1/4)
選択
p.36参照
選択したコンポーネントを対象に
OpenFOAM用メッシュ作成に必要
な設定作業で、よく使用する機能を
集約したメニューバー
41
DEXCSカスタマイズメニュー(2/4)
2
3
1
https://open-shelf.appspot.com/FreeCAD/3.html
42
DEXCSカスタマイズメニュー(3/4)
2
3
4
1
(同一)
43
DEXCSカスタマイズメニュー(4/4)
2
3
41
(同一)
2. cfMesh
44
cfMesh
とは
● 開発元:Creative Fields., Ltd.(http://www.c-fields.com/)
● GPL版と商用版(CF-MESH+)もある。
● SnappyHexMeshに類似だが、より簡単?メッシュ品質も良い
(但し、現在は単領域問題にしか適用できない)
● (ESI版)OpenFOAM-v1712 より modules 搭載
オープンCAE勉強会@富山/20140823第24回
45
cfMesh作成原理と
主要パラメタ?Dictファイルの概要
対象領域定義ファイル
(fms形式)
細分化レベル
レイヤー
46
マニュアル
ファイルマネー
ジャの起動
ダブル
クリック
展開
2
3
1
4
47
3.FreeCADマクロ
48
cfMesh作成原理と
主要パラメタ?Dictファイルの概要
対象領域定義ファイル
(fms形式)
細分化レベル
レイヤー
DEXCS2014からは FreeCADマクロでDictファイルを自動作成
49
FreeCADマクロの開発経緯
パラメタセット詳細適合の省力化支援
(GUI)wxコンポーネント? Qt4 / pySyde化
マクロ起動ボタン化
code refuctoring by Miyoshi
● 0.17.13522
● 0.16.6712(stable)
● 0.17.8614 (Git)
● 0.14
● 0.16
FreeCAD Ver.
● 0.19.18272(Git)マクロ機能追加、python3 対応
50
● 0.19 (2020/9/21)TreeFoam3 対応、ポータビリティ対応
cfMeshSetting.py
マクロの起動(DEXCS2014)
1
マクロの実行
makeChMeshSetting.py
を選択
実行ボタンを押す
3
2
51
FreeCADマクロ
52
チュートリアルケースの確認
ダブルクリック
53
1
2
ダブルクリック
FreeCADの起動
54
http://ofbkansai.sakura.ne.jp/log_seminar/
オープンCAE勉強会@関西
55
まずは動かしてみる
Export
ボタンをクリック
2
3
4
1
56
メッシュ作成
2
3
1
57
メッシュ表示
2
1
3
4
58
cfMesh設定用パラメタファイルと
FreeCADマクロの仕組み
59
cfMesh設定用パラメタファイル
マクロ実行
stlファイルの作成
fmsファイルへの変換
meshDictの作成
2
1
3
OpenFOAM
ケースフォルダ
/opt/DEXCS/template/dexcs
マクロ実行時に
存在しなければ
自動作成
0
60
DEXCSランチャー
仮想風洞試験パラメタセット
2
1
3
マクロ実行前
FreeCADマクロ新規追加機能
61
stlファイルの作成
http://ofbkansai.sakura.ne.jp/log_seminar/
オープンCAE勉強会@関西
内容はほぼ同一
exportStl.FCMacro は、
export.py を拡張したものです
62
fmsファイルの作成
OF端末の起動
1
surfaceFeatureEdges -angle 30 [case].stl [case].fms
コマンド入力
2
63
backstepSimple.stl
三角形を構成する
節点座標
法線ベクトル
64
0
1
2
3
4
5
6
7
8 9
10
11
backstepSimple.fms
patchの数
節点の数
三角形の数
輪郭線の数
patch番号
三角形の節点番号
線分の
節点番号
節点座標patchの
名前と
type
65
meshDictの作成
boundaryLayer
にチェックマークが
ある場合リストアップ
Type:region 以外にて
cellSize指定がある場
合リストアップ
Type:region
にてcellSize指定があ
る場合リストアップ66
maxCellSize
maxCellSize = ( Δx + Δy + Δz ) / 60
= (30 + 3 + 2 ) /60
= 0.58
67
パラメタスタディ
maxCellSize
featureAngle
boundaryLayer
68
変更箇所
maxCellSize
2 3
1
69
4
featureAngle
変更箇所
2 3
1
70
4
変更箇所
boundaryLayer
2 3
1
71
4
boundaryLayer
レイヤー指定なし
72
レイヤーオプション(手修正)
1
2
変更箇所
73
レイヤーオプション(手修正結果)
変更箇所
74
backstep
壁面を個別に名
前を変えている
こと確認
backstepを
ダブルクリック
1
マクロ実行
ボタンをクリック
3
2
75
変更箇所
パラメタの細部調整
76
2 3
1
4
計算(simpleFoam)実行
ソルバー(simpleFoam)
実行ボタンを押す
plotWatcher
起動ボタンを押す
2
3
4
境界条件データ等は事前に設定
済のものを使用しています。
1
77
5
FreeCADマクロの使い方
新規追加機能を中心に演習
78
モデル確認
ダブルクリック
79
ヒートシンク http://www.micforg.co.jp/jp/c_t19.html
80
演習用カットモデル
非表示
表示
2
1
表示 ? 非表示 は、コンポーネントを選択してスペースキーを押せば切り替わります。
81
FreeCADマクロの使い方
additionalRefinementLevel
82
cfMeshにおけるメッシュ細分化は、 maxCellSizeを基本サイズとする二分木法による。
細分化対象のサイズがわかっている場合は、その細分化サイズを直接指定するのが直感的にわかりやすそ
うなので、デフォルトでは cellSize指定できるようにしてある。
一方、サイズを微調整するには、 RefLevelを指定して、maxCellSizeを変更するのが調整しやすい。
指定した
cellSize
実際に適用され
るcellSize
マクロ設定 ? メッシュ作成
変更箇所
フィン厚み
2
3
1
483
メッシュ作成
2
3
1
84
メッシュ表示
2
1
3
4
85
2
1
3
4
6
5
8
7
86
メッシュ確認(流体部分)
セルサイズ
0.8
セルサイズ
0.1
87
固体部分でのメッシュ作成
ヒートシンク(カット
モデル)
のみ表示
2
1
88
マクロ設定 ? メッシュ作成、確認
2 3
変更箇所
1
4
89
狭い隙間でのメッシュ作成
ベースメッシュ
境界面
keepCellsIntersectingBoundary
0
keepCellsIntersectingBoundary
1
内部メッシュ
OK
内部メッシュ
OK
内部メッシュ
NG
90
keepCellsIntersectingBoundary
2 3
1
4
91
keepCellsIntersectingBoundary
(不具合例)
固体部分もメッシュ
計算時間長大!
3 4
2
1
変更箇所
5
92
FreeCADマクロの使い方
stopAfter EdgeExtruction
計算時間数秒
にて不具合確認
2 3
1
4
93
FreeCADマクロの使い方
optimizeLayer optionの効能
94
球の回りの流れ
http://skomo.o.oo7.jp/f28/hp28_62.htm
http://www.higashi-h.tym.ed.jp/course/kadai15/matome/kuuki.htm
Re(レイノルズ数)
Cd(抗力係数)
U:速度
D:代表寸法
 (球の直径)
nu:動粘性係数
95
球の抵抗係数
http://slpr.sakura.ne.jp/qp/air-resistance/
96
FreeCAD起動
ダブルクリック
97
モデル確認
球の半径は0.5
(D=1)
98
モデル確認
(細分化領域)
30
10
99
マクロ起動
1
100
メッシュ出力先
101
2
4
1
3
5
どちらかを選択
メッシュパラメタ設定
変更箇所(例)
Export
ボタンをクリック
2
3
4
1
102
メッシュ作成
2
3
1
103
メッシュ表示
104
2
1
3
4
105
2
1
3
4
6
5
8
7
106
メッシュ確認(Paraview)
メッシュ方案(例)
107
計算(simpleFoam)実行
ソルバー(simpleFoam)
実行ボタンを押す
plotWatcher
起動ボタンを押す
2
3
4
境界条件データ等は事前に設定
済のものを使用しています。
1
108
5
Re=100000, RAS:kEpsilon
計算(pimpleFoam)実行
ソルバー(simpleFoam)
実行ボタンを押す
plotWatcher
起動ボタンを押す
2
3
4
境界条件データ等は事前に設定
済のものを使用しています。
1
109
5
Re=10000, RAS:kEpsilon
4
110
2
34
1
5
6
7
ダブルクリック
111
計算結果の検証
sphere
simpleFoam
112
sphere
pimpleFoam
113
注意点???STLのメッシュ偏差
2
3
1
4
5
6
114
計算精度要因
???STLのメッシュ偏差
115
その他の計算精度要因
● 解析領域、細分化領域のサイズ
● 非定常計算における平均化処理
● 計算スキーム
● ...
116
optimizeLayer 不具合例
117
まとめ
118
マクロ画面
の説明(1/2)
境界条件 Type の指定
(patch/wall/symmetryPlane/region/overset/empty)
cellSizeは空白になっている
?細分化しない
BoundaryLayerにチェックマークが入っ
ていない?レイヤーは付加しない
maxCellSizeの値はモデルサイズから概略自
動計算した値が設定済みだが変更は可能
featureAngleは30(変更可能)
表示されているパーツ
の名前がリストアップさ
れている
レイヤーを付加するとした
場合の設定値(変更可能)
119
マクロ画面
の説明(2/2)
曲面レイヤーを滑らか
にしたい場合に使用
(起動時)FreeCADモデルの存在するディレクトリだが、任
意のディレクトリに変更も可能。 OpenFOAMのケースディ
レクトリでなくても可。
狭い隙間でメッシュ作成
したい場合に使用
メッシュ作成に長時間が予想される
場合に用に使用
(メッシュ方案の問題有無確認)
cfMesh設定ファイルを出力
作成済の設定ファイルを取り込む
(但し、手修正部分はリセットされる)
設定ファイル
(meshDict)を直接編集
メッシュ作成
(cartesianMesh)を実行
メッシュ確認用 .foam 作成
(但しParaviewは別途手動で
起動要)
Object毎の細分化をサイズで
直接指定(但し、その数字通り
にならない場合もある)
Object毎の細分化をレ
ベル数字(N)で指定
(CellSize =
maxCellSize / 2N
)
終了
終了
120
メッシュチェック
(checkMesh)を実行
マニュアル
ファイルマネー
ジャの起動
ダブル
クリック
展開
2
3
1
4
121
122
マニュアル
meshDict
meshDict中のコメント文はマニュアル表記をそのまま転記しています
surfaceFile
maxCellSize
boundaryCellSize
minCellSize
localRefinement
{
patchName
{
additionalRefinementLevels / cellSize
refinementThickness
}
}
objectRefinement
{
objectName
{
cellSize
type box / sphere / cone / line / hollowCone
}
}
edgeMeshrefinement
{
edgeName
{
edgeFile
additionalRefineLevels / cellSize
refinementThickness
}
}
パラメタ総覧 (1/2)
keepCellsIntersectingBoundary
checkForGruedMesh(removeGruedMesh?)
keepCellsIntersectingPatches
{
patchName
{
keepCells
}
}
removeCellsIntersectingPatches
{
patchName
{
keepCells
}
}
123
renameBoundary
{ defaultName
defaultType
newPatchNames
{
patchName
{
newName
type
}
}
}
anisotropicSources
{
boxExample
{
type box
center /
lengthX / lengthY ,...
scaleX / scaleY...
}
planeExample
{
type plane
normal / origin
scalingDistance
scalingFactor
}
}
workflowControl
{
stopAfter edgeExtraction
restartFromLastStep
}
enforceGeometryConstraints
boundaryLayers
{
nLayers
thicknessRatio
maxFirstLayerThickness
patchBoundaryLayers
}
patchName
}
nLayers
thicknessRatio
allowDiscontinuity
}
}
optimizeLayer
untangleLayer
optimizationParameters
{
nSmoothNormals
maxNumIterations
featureSizeFactor
reCalculateNormals
relThicknessTol
}
} 青字部分のみFreeCADマクロで設定可能
パラメタ総覧 (2/2)
朱字部分もFreeCADマクロで設定可能
紫字部分は今後の予定
124
Let’s smart OpenCAE
presented by125

More Related Content

Howto CAD and Meshing on DEXCS2020