SlideShare a Scribd company logo
1 of 69
Download to read offline
日本語版 
を使用した形状最適化事例#1 
Fumiya Nozaki 
CAESES/FFW 
GridPro 
OpenFOAM 
最終更新日: 2014年11月30日
2 
目的と概要 
 L字管を題材にして,CAESES/FFW を使用した設計最適化の基本的な部分 
を解説しています. 
 内部流れで一般的な性能指標である圧力損失を目的関数として最適化を行っ 
ています. 
 成果としては,圧力損失を基準形状に対して 50% 以上低減させることに成 
功しました. 
 この資料をご覧いただいて,ご不明な点などございましたら,お気軽にお問 
い合わせください.フィードバックはどんなものでもありがたいです.
 どのような形状最適化問題に取り組むかを決めるために,以下の点を明確に 
しましょう. 
• 何の形状を最適化するか? 
• 目的関数を何にするか? 
• 設計変数を何にするか? 
• 制約条件は何か? 
3 
最適化計算に際して決めること 
Questions Answers 
?
4 
何の形状を最適化するか? 
 L 字管 
0.7 m 
0.9 m 
入口 
出口 
Φ 0.2 m
5 
目的関数を何にするか? 
 “入口と出口間の全圧差” を目的関数とします. 
퐼 = − 
휌 푝 + 
1 
2 
푢2 풖 ∙ 풏 푑훤 inlet 
풖 ∙ 풏 푑훤 inlet 
− 
휌 푝 + 
1 
2 
푢2 풖 ∙ 풏 푑훤 outlet 
풖 ∙ 풏 푑훤 outlet 
[Pa] 
휌: 密度 
푝: 密度で割った圧力 
풖: 流速 
풏: 境界の単位法線ベクトル (計算領域外向き) 
simpleFoam の表記方法に合わせています.
 どのような設計変数を採用するのかにより,実現可能な変形が異なります. 
 最適化計算では,選択した設計変数により実現可能な形状の中で最も性能の 
優れた形状を探します. 
6 
設計変数を何にするか? 
採用する設計変数によって実現可能な最適形状が異なります 
設計空間1 設計空間2 
最適形状1 
最適形状2 
一般に
7 
使用するソフトウェア 
 次の3つのソフトウェアを組み合わせて最適化計算を行います. 
• パラメトリックモデルの生成 
• 連携するソフトウェアの実行制御 
• 最適化 
• 計算格子生成 
• 流体計算 
• 目的関数値の評価 
格子生成には,GridPro (商用ソフト) を使用しています.
8 
計算とデータの流れ 
目的関数値 形状データ 
流体計算を行い 
形状の性能を評価 
流体計算の実行に必要な 
計算格子の生成 
変形形状の生成,最適化 
繰り返し計算の制御 
繰り返し 
計算格子
9 
最適化計算の流れ 
1. CAESES/FFW を使用してパラメトリック形状モデルを生成 
2. 基準形状 (パラメータ値が基準値の形状) に対して設定ファイルを作成 
• GridPro の設定ファイル (~.fra,~.sch) 
• OpenFOAM の設定ファイル 
3. 試しの計算を実行 
4. 実行スクリプトファイルの作成 
5. 連携の設定:[Software Connector] の設定 
6. 設計空間の探索:実験計画法 (Design of experiments) を使用 
7. 最適化計算 (近日中に追記予定) 
8. Adjoint 法による形状最適化 (近日中に追記予定)
10 
1. パラメトリック形状モデルの生成 
5つの 
設計変数 
設計変数の値を変更すると変形します.
11 
1. パラメトリック形状モデルの生成 
5つの 
設計変数 
設計変数の値を変更すると変形します.
12 
1. パラメトリック形状モデルの生成 
Design Velocity: 
各設計変数の値を変更した際の 
法線方向への変形の大きさ 
大きい 
小さい 
設計変数:mid_height1 
各設計変数について, 
形状のどの部分の移動量が大きいのか 
直感的に把握することができます.
13 
1. パラメトリック形状モデルの生成 
Design Velocity: 
各設計変数の値を変更した際の 
法線方向への変形の大きさ 
大きい 
小さい 
設計変数:mid_height2 
各設計変数について, 
形状のどの部分の移動量が大きいのか 
直感的に把握することができます.
14 
1. パラメトリック形状モデルの生成 
大きい 
小さい 
設計変数:mid_weight1 
断面の丸みをコントロール 
Design Velocity: 
各設計変数の値を変更した際の 
法線方向への変形の大きさ 
各設計変数について, 
形状のどの部分の移動量が大きいのか 
直感的に把握することができます.
15 
1. パラメトリック形状モデルの生成 
大きい 
小さい 
設計変数:mid_weight2 
断面の丸みをコントロール 
Design Velocity: 
各設計変数の値を変更した際の 
法線方向への変形の大きさ 
各設計変数について, 
形状のどの部分の移動量が大きいのか 
直感的に把握することができます.
16 
1. パラメトリック形状モデルの生成 
Design Velocity: 
各設計変数の値を変更した際の 
法線方向への変形の大きさ 
大きい 
小さい 
設計変数:mid_width 
各設計変数について, 
形状のどの部分の移動量が大きいのか 
直感的に把握することができます.
17 
2-1. GridPro の設定ファイルの作成 
計算格子のトポロジーを設定 
• ブロック分割 (ワイヤーフレーム) 
• サーフェスと点の対応関係
18 
2-1. GridPro の設定ファイルの作成 
クラスタリング 
の設定
19 
2-1. GridPro の設定ファイルの作成 
 基準形状に対して準備したトポロジーを変形形状の計算格子の生成にも活用 
マルチブロックの 
構造格子 
ブロックごとに 
色分け表示 
します. 
基準形状 変形形状
20 
5. 連携の設定 
 GridPro との連携の設定
21 
5. 連携の設定 
 OpenFOAM との連携の設定 
目的関数の計算値の出力ファイル 
圧力差をファイルに出力するように simpleFoam を改造 
(資料の最後にある補足をご覧ください) 
可視化用 vtk ファイル (Function object 機能で生成)
22 
5. 連携の設定 
最新バージョン 3.1.2 では,CAESES Free と 
OpenFOAM の連携の設定のチュートリアルが 
追加されています. 
1. クリック 
2. クリック 
3. クリック 
PDF ファイル 
が開きます. 
設定の詳細が解説されています!
 探索点の数が多いほど得られる情報は多くなりますが,計算コストもそれに 
比例して増加します. 
23 
6. 設計空間の探索 
1つ目の設計変数の値の範囲 
2つ目の設計変数の値の範囲 
最も直感的なアイディア: 
各設計変数の定義域を均等に分割
24 
6. 設計空間の探索 
 探索点の数が多いほど得られる情報は多くなりますが,計算コストもそれに 
比例して増加します. 
最も直感的なアイディア: 
各設計変数の定義域を均等に分割 
1つ目の設計変数の値の範囲 
2つ目の設計変数の値の範囲 
それぞれの探索点 (変形形状) について, 
• 計算格子の生成 
• 流体計算 
を実行する必要があります.
25 
6. 設計空間の探索 
 この方法では,設計変数の数の増加に伴い,計算コストが指数関数的に増加 
してしまいます. 
できるだけ少ない計算コストで 
効率的に情報を得られるように 
探索点を配置する方法はないのか? 
実験計画法 
Design Of Experiments (DOE) 
この資料では,Sobol を使用します.
26 
6. 設計空間の探索 
 Sobol とは? 
• Low-discrepancy sequence (低食い違い量列,超一様分布列),または, 
quasi random sequence (準乱数列) と呼ばれる点列の生成方法の一種です. 
• 決定論的な点列であり,同じ設定では同じ点列が生成されます. 
• 空間的に均等な分布をもたらすように設計されています. 
実際に生成される点列の分布を見てみましょう.
27 
6. 設計空間の探索 
 探索点の分布の様子 (10 個)
28 
6. 設計空間の探索 
 探索点の分布の様子 (25 個)
29 
6. 設計空間の探索 
 探索点の分布の様子 (75 個)
30 
6. 設計空間の探索 
 Sobol の設定 
変形形状の数を指定します. 
それぞれの設計変数の 
• 上限値 [Upper] 
• 下限値 [Lower] 
を設定します. 
目的関数を指定します.
31 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0000)
32 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0001)
33 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0002)
34 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0003)
35 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0004)
36 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0005)
37 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0006)
38 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0007)
39 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0008)
40 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0009)
41 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0010)
42 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0011)
43 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0012)
44 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0013)
45 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0014)
46 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0015)
47 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0016)
48 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0017)
49 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0018)
50 
6. 設計空間の探索 
 Sobol で生成した変形形状 (Sobol_01_des0019)
51 
6. 設計空間の探索 
終了したタスクを表示 
実行中のタスクを表示 
選択したタスクの 
標準出力を表示 
この図では, 
OpenFOAM の出力
52 
6. 設計空間の探索 
20 個の 
変形形状 
全圧差の 
計算値
53 
6. 設計空間の探索 
 目的関数の値でソート 
全圧差小 20 個の中でベストな形状 
全圧差大
54 
6. 設計空間の探索 
基準形状 (baseline) Sobol のベスト形状 
921.12 [Pa] 439.32 [Pa] 
 形状比較
 壁面せん断応力の分布 (wallShearStress ユーティリティで計算) 
55 
6. 設計空間の探索 
基準形状 (baseline) Sobol のベスト形状
56 
6. 設計空間の探索 
 流線 
基準形状 (baseline) Sobol のベスト形状
57 
7. 最適化計算 
 設計空間の探索で得られたベストな形状 (Sobol_01_des0019) を初期形状 
として最適化計算を実行します.
58 
7. 最適化計算 
近日中に更新します.
59 
8. Adjoint 法によるファインチューニング 
近日中に更新します.
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 
補足. 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 
補足. 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 
補足. 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 
補足. mysimpleFoam の作成 
• 目的関数の計算値の出力ファイルを設定します. 
[createFields.H] ファイルの最後に以下を追加します. 
label wPrecision(readScalar(runTime.controlDict().lookup("writePrecision"))); 
std::ofstream fout("objValue", std::ios::out | std::ios::app); 
fout.precision(wPrecision);
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 
補足. 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 
補足. CAESES Free のダウンロードサイト 
Windows,Linux ともに 
32bit,64bit の両方に 
対応しています. 
 ダウンロードサイト
68 
補足. CAESES Free のインストール 
 インストール 
ウィザードにしたがってインストールを実行します.
69 
「もっとここの説明詳しく」 
などご要望ありましたら, 
お気軽にご連絡ください!

More Related Content

Viewers also liked

Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAMTurbulence Models in OpenFOAM
Turbulence Models in OpenFOAMFumiya Nozaki
 
CFD for Rotating Machinery using OpenFOAM
CFD for Rotating Machinery using OpenFOAMCFD for Rotating Machinery using OpenFOAM
CFD for Rotating Machinery using OpenFOAMFumiya Nozaki
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてFumiya Nozaki
 
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』Fumiya Nozaki
 
OpenFOAM Programming Tips
OpenFOAM Programming TipsOpenFOAM Programming Tips
OpenFOAM Programming TipsFumiya Nozaki
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-Fumiya Nozaki
 
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみたオープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみたFumiya Nozaki
 
ParaView による可視化 Tips
ParaView による可視化 TipsParaView による可視化 Tips
ParaView による可視化 TipsFumiya Nozaki
 
blockCoupledSwirlTestチュートリアル
blockCoupledSwirlTestチュートリアルblockCoupledSwirlTestチュートリアル
blockCoupledSwirlTestチュートリアルFumiya Nozaki
 
無償のモデリングソフトウェアCAESESを使ってみた
無償のモデリングソフトウェアCAESESを使ってみた無償のモデリングソフトウェアCAESESを使ってみた
無償のモデリングソフトウェアCAESESを使ってみたFumiya Nozaki
 
Limited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAMLimited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAMFumiya Nozaki
 
OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!Fumiya Nozaki
 
OpenFOAM を用いた Adjoint 形状最適化事例1
OpenFOAM を用いた Adjoint 形状最適化事例1OpenFOAM を用いた Adjoint 形状最適化事例1
OpenFOAM を用いた Adjoint 形状最適化事例1Fumiya Nozaki
 
Large strain computational solid dynamics: An upwind cell centred Finite Volu...
Large strain computational solid dynamics: An upwind cell centred Finite Volu...Large strain computational solid dynamics: An upwind cell centred Finite Volu...
Large strain computational solid dynamics: An upwind cell centred Finite Volu...Jibran Haider
 
Basic Boundary Conditions in OpenFOAM v2.4
Basic Boundary Conditions in OpenFOAM v2.4Basic Boundary Conditions in OpenFOAM v2.4
Basic Boundary Conditions in OpenFOAM v2.4Fumiya Nozaki
 
Large strain solid dynamics in OpenFOAM
Large strain solid dynamics in OpenFOAMLarge strain solid dynamics in OpenFOAM
Large strain solid dynamics in OpenFOAMJibran Haider
 
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAM
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAMFlow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAM
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAMCon Doolan
 
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読takuyayamamoto1800
 

Viewers also liked (18)

Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAMTurbulence Models in OpenFOAM
Turbulence Models in OpenFOAM
 
CFD for Rotating Machinery using OpenFOAM
CFD for Rotating Machinery using OpenFOAMCFD for Rotating Machinery using OpenFOAM
CFD for Rotating Machinery using OpenFOAM
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
 
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
 
OpenFOAM Programming Tips
OpenFOAM Programming TipsOpenFOAM Programming Tips
OpenFOAM Programming Tips
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
 
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみたオープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
 
ParaView による可視化 Tips
ParaView による可視化 TipsParaView による可視化 Tips
ParaView による可視化 Tips
 
blockCoupledSwirlTestチュートリアル
blockCoupledSwirlTestチュートリアルblockCoupledSwirlTestチュートリアル
blockCoupledSwirlTestチュートリアル
 
無償のモデリングソフトウェアCAESESを使ってみた
無償のモデリングソフトウェアCAESESを使ってみた無償のモデリングソフトウェアCAESESを使ってみた
無償のモデリングソフトウェアCAESESを使ってみた
 
Limited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAMLimited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAM
 
OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!
 
OpenFOAM を用いた Adjoint 形状最適化事例1
OpenFOAM を用いた Adjoint 形状最適化事例1OpenFOAM を用いた Adjoint 形状最適化事例1
OpenFOAM を用いた Adjoint 形状最適化事例1
 
Large strain computational solid dynamics: An upwind cell centred Finite Volu...
Large strain computational solid dynamics: An upwind cell centred Finite Volu...Large strain computational solid dynamics: An upwind cell centred Finite Volu...
Large strain computational solid dynamics: An upwind cell centred Finite Volu...
 
Basic Boundary Conditions in OpenFOAM v2.4
Basic Boundary Conditions in OpenFOAM v2.4Basic Boundary Conditions in OpenFOAM v2.4
Basic Boundary Conditions in OpenFOAM v2.4
 
Large strain solid dynamics in OpenFOAM
Large strain solid dynamics in OpenFOAMLarge strain solid dynamics in OpenFOAM
Large strain solid dynamics in OpenFOAM
 
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAM
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAMFlow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAM
Flow and Noise Simulation of the NASA Tandem Cylinder Experiment using OpenFOAM
 
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読
 

Similar to CAESES-FFW,GridPro,OpenFOAMを使用した形状最適化事例#1

刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」cyberagent
 
Cognos reportauthoring c2_headermessage
Cognos reportauthoring c2_headermessageCognos reportauthoring c2_headermessage
Cognos reportauthoring c2_headermessageShinsuke Yamamoto
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
CEDEC 2005 汎用的なシェーダ設計 イントロダクション
CEDEC 2005 汎用的なシェーダ設計 イントロダクションCEDEC 2005 汎用的なシェーダ設計 イントロダクション
CEDEC 2005 汎用的なシェーダ設計 イントロダクションSilicon Studio Corporation
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~Silicon Studio Corporation
 
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!yoshikawa_t
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出Shuyo Nakatani
 
Firefox DevTools
Firefox DevToolsFirefox DevTools
Firefox DevToolsdynamis
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
X86opti01 nothingcosmos
X86opti01 nothingcosmosX86opti01 nothingcosmos
X86opti01 nothingcosmosnothingcosmos
 
ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-Mizushima Kazuhiro
 
フィールドとつなげるQGIS
フィールドとつなげるQGISフィールドとつなげるQGIS
フィールドとつなげるQGISMitsuhaMiyake
 
130329 04
130329 04130329 04
130329 04openrtm
 
20130329 rtm4
20130329 rtm420130329 rtm4
20130329 rtm4openrtm
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 
α版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるα版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるAtsushi Nakamura
 
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門tak9029
 

Similar to CAESES-FFW,GridPro,OpenFOAMを使用した形状最適化事例#1 (20)

刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」
 
Cognos reportauthoring c2_headermessage
Cognos reportauthoring c2_headermessageCognos reportauthoring c2_headermessage
Cognos reportauthoring c2_headermessage
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
CEDEC 2005 汎用的なシェーダ設計 イントロダクション
CEDEC 2005 汎用的なシェーダ設計 イントロダクションCEDEC 2005 汎用的なシェーダ設計 イントロダクション
CEDEC 2005 汎用的なシェーダ設計 イントロダクション
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
 
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
 
Firefox DevTools
Firefox DevToolsFirefox DevTools
Firefox DevTools
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
X86opti01 nothingcosmos
X86opti01 nothingcosmosX86opti01 nothingcosmos
X86opti01 nothingcosmos
 
ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-
 
フィールドとつなげるQGIS
フィールドとつなげるQGISフィールドとつなげるQGIS
フィールドとつなげるQGIS
 
130329 04
130329 04130329 04
130329 04
 
20130329 rtm4
20130329 rtm420130329 rtm4
20130329 rtm4
 
Devtools.next
Devtools.nextDevtools.next
Devtools.next
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
派生開発
派生開発派生開発
派生開発
 
α版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるα版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考える
 
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

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 のインストール  インストール ウィザードにしたがってインストールを実行します.