Submit Search
CAESES-FFW,GridPro,OpenFOAMを使用した形状最適化事例#1
5 likes
3,697 views
Fumiya Nozaki
1 of 69
Download now
Downloaded 92 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
More Related Content
PDF
CAESES Free チュートリアル
Fumiya Nozaki
PDF
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
Fumiya Nozaki
PDF
Boundary Conditions in OpenFOAM
Fumiya Nozaki
PDF
Adjoint Shape Optimization using OpenFOAM
Fumiya Nozaki
PDF
OpenFOAMの壁関数
Fumiya Nozaki
PDF
Spatial Interpolation Schemes in OpenFOAM
Fumiya Nozaki
PDF
Dynamic Mesh in OpenFOAM
Fumiya Nozaki
PDF
OpenFOAM の Function Object 機能について
Fumiya Nozaki
CAESES Free チュートリアル
Fumiya Nozaki
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
Fumiya Nozaki
Boundary Conditions in OpenFOAM
Fumiya Nozaki
Adjoint Shape Optimization using OpenFOAM
Fumiya Nozaki
OpenFOAMの壁関数
Fumiya Nozaki
Spatial Interpolation Schemes in OpenFOAM
Fumiya Nozaki
Dynamic Mesh in OpenFOAM
Fumiya Nozaki
OpenFOAM の Function Object 機能について
Fumiya Nozaki
Viewers also liked
(18)
PDF
Turbulence Models in OpenFOAM
Fumiya Nozaki
PDF
CFD for Rotating Machinery using OpenFOAM
Fumiya Nozaki
PDF
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
Fumiya Nozaki
PDF
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
Fumiya Nozaki
PDF
OpenFOAM Programming Tips
Fumiya Nozaki
PDF
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
Fumiya Nozaki
PDF
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
Fumiya Nozaki
PDF
ParaView による可視化 Tips
Fumiya Nozaki
PDF
blockCoupledSwirlTestチュートリアル
Fumiya Nozaki
PDF
無償のモデリングソフトウェアCAESESを使ってみた
Fumiya Nozaki
PDF
Limited Gradient Schemes in OpenFOAM
Fumiya Nozaki
PDF
OpenFOAM の境界条件をまとめよう!
Fumiya Nozaki
PDF
OpenFOAM を用いた Adjoint 形状最適化事例1
Fumiya Nozaki
PDF
Large strain computational solid dynamics: An upwind cell centred Finite Volu...
Jibran Haider
PDF
Basic Boundary Conditions in OpenFOAM v2.4
Fumiya Nozaki
PDF
Large strain solid dynamics in OpenFOAM
Jibran Haider
PDF
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAM
Con Doolan
PDF
OpenFOAMにおけるDEM計算の衝突モデルの解読
takuyayamamoto1800
Turbulence Models in OpenFOAM
Fumiya Nozaki
CFD for Rotating Machinery using OpenFOAM
Fumiya Nozaki
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
Fumiya Nozaki
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
Fumiya Nozaki
OpenFOAM Programming Tips
Fumiya Nozaki
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
Fumiya Nozaki
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
Fumiya Nozaki
ParaView による可視化 Tips
Fumiya Nozaki
blockCoupledSwirlTestチュートリアル
Fumiya Nozaki
無償のモデリングソフトウェアCAESESを使ってみた
Fumiya Nozaki
Limited Gradient Schemes in OpenFOAM
Fumiya Nozaki
OpenFOAM の境界条件をまとめよう!
Fumiya Nozaki
OpenFOAM を用いた Adjoint 形状最適化事例1
Fumiya Nozaki
Large strain computational solid dynamics: An upwind cell centred Finite Volu...
Jibran Haider
Basic Boundary Conditions in OpenFOAM v2.4
Fumiya Nozaki
Large strain solid dynamics in OpenFOAM
Jibran Haider
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAM
Con Doolan
OpenFOAMにおけるDEM計算の衝突モデルの解読
takuyayamamoto1800
Ad
Similar to CAESES-FFW,GridPro,OpenFOAMを使用した形状最適化事例#1
(20)
PPTX
OpenFOAMによる気液2相流解析の基礎と設定例
takuyayamamoto1800
PDF
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
TatsuyaKatayama
PDF
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
takuyayamamoto1800
PDF
OpenFOAM+のCo-simulation機能とFMUの試作
Amane Tanaka
PDF
設計者がCAEを成功させる10の法則
Akira KURISAKI
PPTX
Ax symmetricpressurevesselelasticstressanalysis
stebee19
PDF
rhoCentralFoam in OpenFOAM
Daisuke Matsubara
PDF
SFC Design theory 2012 6/27
Mitsuru Muramatsu
PDF
Free cad 0.19.2 and cfdof (Japanese Ver.)
YohichiShiina
PPTX
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現
stebee19
PPT
基板を作ろう(修正版)
Kazuyuki Nakashima
PPTX
2D Truss Analysis with SalomeMeca2023 (Code-aster 16.5)
stebee19
PPT
基板を作ろう
Kazuyuki Nakashima
PDF
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTURE Project
PDF
aboutDexcsPlus2022.pdf
Etsuji Nomura
PDF
DEXCS2022 for preCICE
Etsuji Nomura
PDF
Mixer vessel by cfmesh
Etsuji Nomura
PDF
OpenFOAM LES乱流モデルカスタマイズ
mmer547
PDF
How to cad and meshing for OpenFOAM
Etsuji Nomura
PDF
Dexcs2019 howto Cad and Meshing
Etsuji Nomura
OpenFOAMによる気液2相流解析の基礎と設定例
takuyayamamoto1800
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
TatsuyaKatayama
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
takuyayamamoto1800
OpenFOAM+のCo-simulation機能とFMUの試作
Amane Tanaka
設計者がCAEを成功させる10の法則
Akira KURISAKI
Ax symmetricpressurevesselelasticstressanalysis
stebee19
rhoCentralFoam in OpenFOAM
Daisuke Matsubara
SFC Design theory 2012 6/27
Mitsuru Muramatsu
Free cad 0.19.2 and cfdof (Japanese Ver.)
YohichiShiina
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現
stebee19
基板を作ろう(修正版)
Kazuyuki Nakashima
2D Truss Analysis with SalomeMeca2023 (Code-aster 16.5)
stebee19
基板を作ろう
Kazuyuki Nakashima
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTURE Project
aboutDexcsPlus2022.pdf
Etsuji Nomura
DEXCS2022 for preCICE
Etsuji Nomura
Mixer vessel by cfmesh
Etsuji Nomura
OpenFOAM LES乱流モデルカスタマイズ
mmer547
How to cad and meshing for OpenFOAM
Etsuji Nomura
Dexcs2019 howto Cad and Meshing
Etsuji Nomura
Ad
CAESES-FFW,GridPro,OpenFOAMを使用した形状最適化事例#1
1.
日本語版 を使用した形状最適化事例#1 Fumiya
Nozaki CAESES/FFW GridPro OpenFOAM 最終更新日: 2014年11月30日
2.
2 目的と概要
L字管を題材にして,CAESES/FFW を使用した設計最適化の基本的な部分 を解説しています. 内部流れで一般的な性能指標である圧力損失を目的関数として最適化を行っ ています. 成果としては,圧力損失を基準形状に対して 50% 以上低減させることに成 功しました. この資料をご覧いただいて,ご不明な点などございましたら,お気軽にお問 い合わせください.フィードバックはどんなものでもありがたいです.
3.
どのような形状最適化問題に取り組むかを決めるために,以下の点を明確に しましょう.
• 何の形状を最適化するか? • 目的関数を何にするか? • 設計変数を何にするか? • 制約条件は何か? 3 最適化計算に際して決めること Questions Answers ?
4.
4 何の形状を最適化するか?
L 字管 0.7 m 0.9 m 入口 出口 Φ 0.2 m
5.
5 目的関数を何にするか?
“入口と出口間の全圧差” を目的関数とします. 퐼 = − 휌 푝 + 1 2 푢2 풖 ∙ 풏 푑훤 inlet 풖 ∙ 풏 푑훤 inlet − 휌 푝 + 1 2 푢2 풖 ∙ 풏 푑훤 outlet 풖 ∙ 풏 푑훤 outlet [Pa] 휌: 密度 푝: 密度で割った圧力 풖: 流速 풏: 境界の単位法線ベクトル (計算領域外向き) simpleFoam の表記方法に合わせています.
6.
どのような設計変数を採用するのかにより,実現可能な変形が異なります.
最適化計算では,選択した設計変数により実現可能な形状の中で最も性能の 優れた形状を探します. 6 設計変数を何にするか? 採用する設計変数によって実現可能な最適形状が異なります 設計空間1 設計空間2 最適形状1 最適形状2 一般に
7.
7 使用するソフトウェア
次の3つのソフトウェアを組み合わせて最適化計算を行います. • パラメトリックモデルの生成 • 連携するソフトウェアの実行制御 • 最適化 • 計算格子生成 • 流体計算 • 目的関数値の評価 格子生成には,GridPro (商用ソフト) を使用しています.
8.
8 計算とデータの流れ 目的関数値
形状データ 流体計算を行い 形状の性能を評価 流体計算の実行に必要な 計算格子の生成 変形形状の生成,最適化 繰り返し計算の制御 繰り返し 計算格子
9.
9 最適化計算の流れ 1.
CAESES/FFW を使用してパラメトリック形状モデルを生成 2. 基準形状 (パラメータ値が基準値の形状) に対して設定ファイルを作成 • GridPro の設定ファイル (~.fra,~.sch) • OpenFOAM の設定ファイル 3. 試しの計算を実行 4. 実行スクリプトファイルの作成 5. 連携の設定:[Software Connector] の設定 6. 設計空間の探索:実験計画法 (Design of experiments) を使用 7. 最適化計算 (近日中に追記予定) 8. Adjoint 法による形状最適化 (近日中に追記予定)
10.
10 1. パラメトリック形状モデルの生成
5つの 設計変数 設計変数の値を変更すると変形します.
11.
11 1. パラメトリック形状モデルの生成
5つの 設計変数 設計変数の値を変更すると変形します.
12.
12 1. パラメトリック形状モデルの生成
Design Velocity: 各設計変数の値を変更した際の 法線方向への変形の大きさ 大きい 小さい 設計変数:mid_height1 各設計変数について, 形状のどの部分の移動量が大きいのか 直感的に把握することができます.
13.
13 1. パラメトリック形状モデルの生成
Design Velocity: 各設計変数の値を変更した際の 法線方向への変形の大きさ 大きい 小さい 設計変数:mid_height2 各設計変数について, 形状のどの部分の移動量が大きいのか 直感的に把握することができます.
14.
14 1. パラメトリック形状モデルの生成
大きい 小さい 設計変数:mid_weight1 断面の丸みをコントロール Design Velocity: 各設計変数の値を変更した際の 法線方向への変形の大きさ 各設計変数について, 形状のどの部分の移動量が大きいのか 直感的に把握することができます.
15.
15 1. パラメトリック形状モデルの生成
大きい 小さい 設計変数:mid_weight2 断面の丸みをコントロール Design Velocity: 各設計変数の値を変更した際の 法線方向への変形の大きさ 各設計変数について, 形状のどの部分の移動量が大きいのか 直感的に把握することができます.
16.
16 1. パラメトリック形状モデルの生成
Design Velocity: 各設計変数の値を変更した際の 法線方向への変形の大きさ 大きい 小さい 設計変数:mid_width 各設計変数について, 形状のどの部分の移動量が大きいのか 直感的に把握することができます.
17.
17 2-1. GridPro
の設定ファイルの作成 計算格子のトポロジーを設定 • ブロック分割 (ワイヤーフレーム) • サーフェスと点の対応関係
18.
18 2-1. GridPro
の設定ファイルの作成 クラスタリング の設定
19.
19 2-1. GridPro
の設定ファイルの作成 基準形状に対して準備したトポロジーを変形形状の計算格子の生成にも活用 マルチブロックの 構造格子 ブロックごとに 色分け表示 します. 基準形状 変形形状
20.
20 5. 連携の設定
GridPro との連携の設定
21.
21 5. 連携の設定
OpenFOAM との連携の設定 目的関数の計算値の出力ファイル 圧力差をファイルに出力するように simpleFoam を改造 (資料の最後にある補足をご覧ください) 可視化用 vtk ファイル (Function object 機能で生成)
22.
22 5. 連携の設定
最新バージョン 3.1.2 では,CAESES Free と OpenFOAM の連携の設定のチュートリアルが 追加されています. 1. クリック 2. クリック 3. クリック PDF ファイル が開きます. 設定の詳細が解説されています!
23.
探索点の数が多いほど得られる情報は多くなりますが,計算コストもそれに 比例して増加します.
23 6. 設計空間の探索 1つ目の設計変数の値の範囲 2つ目の設計変数の値の範囲 最も直感的なアイディア: 各設計変数の定義域を均等に分割
24.
24 6. 設計空間の探索
探索点の数が多いほど得られる情報は多くなりますが,計算コストもそれに 比例して増加します. 最も直感的なアイディア: 各設計変数の定義域を均等に分割 1つ目の設計変数の値の範囲 2つ目の設計変数の値の範囲 それぞれの探索点 (変形形状) について, • 計算格子の生成 • 流体計算 を実行する必要があります.
25.
25 6. 設計空間の探索
この方法では,設計変数の数の増加に伴い,計算コストが指数関数的に増加 してしまいます. できるだけ少ない計算コストで 効率的に情報を得られるように 探索点を配置する方法はないのか? 実験計画法 Design Of Experiments (DOE) この資料では,Sobol を使用します.
26.
26 6. 設計空間の探索
Sobol とは? • Low-discrepancy sequence (低食い違い量列,超一様分布列),または, quasi random sequence (準乱数列) と呼ばれる点列の生成方法の一種です. • 決定論的な点列であり,同じ設定では同じ点列が生成されます. • 空間的に均等な分布をもたらすように設計されています. 実際に生成される点列の分布を見てみましょう.
27.
27 6. 設計空間の探索
探索点の分布の様子 (10 個)
28.
28 6. 設計空間の探索
探索点の分布の様子 (25 個)
29.
29 6. 設計空間の探索
探索点の分布の様子 (75 個)
30.
30 6. 設計空間の探索
Sobol の設定 変形形状の数を指定します. それぞれの設計変数の • 上限値 [Upper] • 下限値 [Lower] を設定します. 目的関数を指定します.
31.
31 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0000)
32.
32 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0001)
33.
33 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0002)
34.
34 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0003)
35.
35 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0004)
36.
36 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0005)
37.
37 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0006)
38.
38 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0007)
39.
39 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0008)
40.
40 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0009)
41.
41 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0010)
42.
42 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0011)
43.
43 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0012)
44.
44 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0013)
45.
45 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0014)
46.
46 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0015)
47.
47 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0016)
48.
48 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0017)
49.
49 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0018)
50.
50 6. 設計空間の探索
Sobol で生成した変形形状 (Sobol_01_des0019)
51.
51 6. 設計空間の探索
終了したタスクを表示 実行中のタスクを表示 選択したタスクの 標準出力を表示 この図では, OpenFOAM の出力
52.
52 6. 設計空間の探索
20 個の 変形形状 全圧差の 計算値
53.
53 6. 設計空間の探索
目的関数の値でソート 全圧差小 20 個の中でベストな形状 全圧差大
54.
54 6. 設計空間の探索
基準形状 (baseline) Sobol のベスト形状 921.12 [Pa] 439.32 [Pa] 形状比較
55.
壁面せん断応力の分布 (wallShearStress
ユーティリティで計算) 55 6. 設計空間の探索 基準形状 (baseline) Sobol のベスト形状
56.
56 6. 設計空間の探索
流線 基準形状 (baseline) Sobol のベスト形状
57.
57 7. 最適化計算
設計空間の探索で得られたベストな形状 (Sobol_01_des0019) を初期形状 として最適化計算を実行します.
58.
58 7. 最適化計算
近日中に更新します.
59.
59 8. Adjoint
法によるファインチューニング 近日中に更新します.
60.
60 補足. mysimpleFoam
の作成 目的関数の値を計算してファイルに出力するように simpleFoam に変更を加 えます. 変更後のソルバー名を,mysimpleFoam としています. • OpenFOAM の環境変数の読み込み $ source $HOME/OpenFOAM/OpenFOAM-2.3.x/etc/bashrc • simpleFoam ディレクトリへ移動 $ sol $ cd incompressible/simpleFoam $ wclean • simpleFoam をコピー $ cd ../ $ cp -r simpleFoam mysimpleFoam • mysimpleFoam ディレクトリへ移動 $ cd mysimpleFoam
61.
61 補足. mysimpleFoam
の作成 • 不要なファイル等を削除します. $ rm Allwmake $ rm –r SRFSimpleFoam $ rm –r porousSimpleFoam • ファイル名を変更します. $ mv simpleFoam.C mysimpleFoam.C • Make/files の内容を修正します. simpleFoam.C files (修正前) EXE = $(FOAM_APPBIN)/simpleFoam mysimpleFoam.C files (修正後) EXE = $(FOAM_USER_APPBIN)/mysimpleFoam
62.
62 補足. mysimpleFoam
の作成 • 密度の値を [transportProperties] ファイルから読み込めるようにします. [createFields.H] ファイルの最後に以下を追加します. Info<< "¥nReading density rho¥n" << endl; IOdictionary transportProperties ( IOobject ( "transportProperties", runTime.constant(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ) ); dimensionedScalar rho = transportProperties.lookup("rho");
63.
63 補足. mysimpleFoam
の作成 • 全圧用の変数 totP を定義します. [createFields.H] ファイルの最後に以下を追加します. // Total pressure field volScalarField totP ( IOobject ( "totP", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedScalar("totP", dimPressure, 0.0) );
64.
64 補足. mysimpleFoam
の作成 • 目的関数の計算値の出力ファイルを設定します. [createFields.H] ファイルの最後に以下を追加します. label wPrecision(readScalar(runTime.controlDict().lookup("writePrecision"))); std::ofstream fout("objValue", std::ios::out | std::ios::app); fout.precision(wPrecision);
65.
65 補足. mysimpleFoam
の作成 • 目的関数の値を計算して,ファイルへ書き出すようにします. [objective.H] ファイルを新規に作成し,下記の内容を追加します. scalar volFlux = 0.0; scalar objValueIn = 0.0; scalar objValueOut = 0.0; scalar tPressDiff = 0.0; // Update total pressure field totP = p*rho + 0.5*rho*magSqr(U); label inletID = mesh.boundaryMesh().findPatchID("inlet"); label outletID = mesh.boundaryMesh().findPatchID("outlet"); // Calculate total pressure difference volFlux = -gSum(phi.boundaryField()[inletID]); objValueIn = -gSum(totP.boundaryField()[inletID]*phi.boundaryField()[inletID])/volFlux; objValueOut = gSum(totP.boundaryField()[outletID]*phi.boundaryField()[outletID])/volFlux; tPressDiff = objValueIn - objValueOut; fout<< "Total Pressure Difference = " << tPressDiff << " [Pa]" << std::endl;
66.
66 補足. mysimpleFoam
の作成 • [mysimpleFoam.C] ファイルに #include “objective.H” を追記します. turbulence->correct(); #include “objective.H” runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl;
67.
67 補足. CAESES
Free のダウンロードサイト Windows,Linux ともに 32bit,64bit の両方に 対応しています. ダウンロードサイト
68.
68 補足. CAESES
Free のインストール インストール ウィザードにしたがってインストールを実行します.
69.
69 「もっとここの説明詳しく」 などご要望ありましたら,
お気軽にご連絡ください!
Download