(2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... ·...

28
オープンCAE講習会@ 秋田 (2017. 1. 28) * 福江 高志 岩手大学

Transcript of (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... ·...

Page 1: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

オープンCAE講習会@秋田(2017. 1. 28)

* 福江 高志 岩手大学

Page 2: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

1

バックステップフローの強制対流

空気:25 oC

発熱部品125 oC

空気による冷却 125 oC の発熱部品が

バックステップ後ろに設置される.

この冷却性能をOpenFOAMで予測したい!

解きたい項目(仮定)

強制対流 層流 熱伝達

今回はBuoyantBoussnesqPimpleFoamを用いる。

Page 3: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

2

CFD : Computational Fluid Dynamics

質量保存 : 連続の式

運動量保存 : Navier-Stokes方程式

エネルギ保存 : エネルギ方程式

:数値(熱)流体力学

を,コンピュータ上にて数値計算で解くことで,流体の運動や伝熱現象をSimulate.

OpenFOAM :オープンソースCFDツールボックス

GNU General Public Licenseの範囲内でライセンスフリーで使用可能.プログラム(C++)が完全公開, 改造可能

様々な事例・解析対象に応じた,多数の解析プログラムの集合体(マニュアルなど参照)

laplacianFoam:固体内の熱伝導などのLaplace方程式用コード icoFoam : ニュートン流体の非圧縮・層流の非定常流れ pimpleFoam:非圧縮・乱流の大きな時間ステップの非定常流れ pimpleDyMFoam:ファン・水車など回転体の非圧縮・乱流・非定常流れ interFoam:二相流・不混和流体の非圧縮・等温流れ buoyantBoussinesqPimpleFoam:浮力を伴う非圧縮・乱流・非定常流れ

ソルバの例:

Page 4: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

3

今回使用のソルバ:

buoyantBoussinesqPimpleFoam

浮力を伴う非圧縮性乱流用非定常ソルバ 層流解析も可能 ブジネスク近似を使用

→ 熱膨張による密度変化に比べて膨張圧縮による密度変化が無視できると仮定

チュートリアル:hotRoom

Page 5: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

4

パイプライン・ブラウザ

プロパティ

可視化ツールボックス

ParaViewが立ちあがりましたか?

Page 6: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

5

① 下にスクロール

② Tにチェック

③「Apply」を押す.

ParaViewが立ちあがりましたか?

Page 7: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

6

いろいろ見てみましょう.

U(空気の速度)

T(空気の温度)

解析モデル

Page 8: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

7

断面の可視化:

sliceボタンをクリック

切る断面を変えられる

Page 9: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

8

ベクトル(流れ)をみる

② Glyphボタン

①「slice2」がアクティブになっていることを確認して

③ ベクトルの大きさなど変更

Color map editor

Page 10: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

9

天井:310K

床:300K

加熱時間が過ぎるにつれ流れが不安定になる様子が確認できる

4面断熱

Page 11: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

10

手順:

後処理

前処理

解析

1. OpenFOAMのケースファイル構造を確認する.2. backstepフォルダを作成する.3. hotRoomのプロジェクトファイルから,

必要なファイルをコピーする.4. BlockMeshDictを編集する.5. 「BlockMesh」でメッシュを生成する.6. 境界条件ファイルを編集する.7. 計算条件を決定する.

8. ターミナルで「buoyantBoussinesqPimpleFoam」を実施する.

9. ParaViewで結果を確認する.

10. 奥行き方向にも格子を切って,3次元解析にトライしてみる.おまけ

※おまけチュートリアルのファイルをうまく使うことはOF上達の第一歩!

Page 12: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

11

ホームフォルダの “OpenFOAM/user-4.1/run/hotRoom/” をあらためて開いてください.

Home

OpenFOAM

User-4.1 $WMPROJECTUSERDIR

run

hotRoom

$FOAMRUN ユーザのプロジェクト・ディレクトリ

プロジェクトフォルダ

Page 13: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

12

$FOAM_RUN/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/hotroom を開く.

0

constant

system

p : 圧力の設定 (※密度で割ったもの) p_rgh : p と ghの差 (※密度で割ったもの) U : 速度の設定 T : 温度の設定 alphat : 熱拡散率

g : 重力の情報 turbulenceProperties : 乱流解析情報 transportProperties : 物性値情報

blockMeshDict : メッシュ情報 controlDict : 時間刻み,計算設定 fvSchemes : 離散化スキームの設定 fvSolution : 代数方程式を解く設定 setFieldsDict : 場の設定

k : 乱流強度 epsilon : エネルギ散逸率 nut : 乱流動粘度

hotRoom

Page 14: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

13

端末で,

cd $FOAM_RUN/

の後,

mkdir backstep

で,フォルダ生成.

Page 15: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

14

hotRoomから,下記ファイルをbackstepにコピーする.

backstep ※ 今回は層流解析,作動流体空気

0

constant

system

p : 全圧の設定 (※密度で割ったもの) p_rgh : 静圧の設定 (※密度で割ったもの) U : 速度の設定 T : 温度の設定 alphat : 熱拡散率

g : 重力の情報 turbulenceProperties : 乱流解析情報 transportProperties : 物性値情報

blockMeshDict : メッシュ情報 controlDict : 時間刻み,計算設定 fvSchemes : 離散化スキームの設定 fvSolution : 代数方程式を解く設定 setFieldsDict : 場の設定

hotRoom

Page 16: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

15

Inlet Outlet

50

100

30 150

Page 17: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

16

(原点 0,0,0)

0 (0, 0.05, 0)

1 (0, 0.10, 0)

3 (0.03, 0.05, 0)

4 (0.03, 0.10, 0)

2 (0.03, 0.0, 0)

6 (0.38, 0.05, 0)

7 (0.38, 0.10, 0)

5 (0.38, 0.0, 0)

Inlet Outlet

50

10

0

30 350

Page 18: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

17

(原点 0,0,0)

10 (0, 0.05, 0.01)

11 (0, 0.10, 0.01)

50

100

30 150

14 (0.03, 0.10, 0.01)

12 (0.03, 0.0, 0.01)

16 (0.38, 0.05, 0.01)

17 (0.38, 0.10, 0.01)

15 (0.38, 0.0, 0.01)

13 (0.03, 0.05, 0.01)

Page 19: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

18

adiabaticoutlet

inlet

heater

inlet: U – uniform (1,0,0) (x 方向に0.5m/sの一定流速流入)p – zeroGradient , p_rgh – zerogradientT – uniform (298.15) (25 oC の空気が流入)

outlet:U –zeroGradient (自由流出)p – uniform 0.0 (静圧 = 0 Pa), p_rgh – 0.0 PaT – zeroGradient (自由流出)

sidewalls (empty)

Page 20: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

19

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices(

(0 0.05 0) //0(0 0.10 0) //1(0.03 0.0 0) //2(0.03 0.05 0) //3(0.03 0.10 0) //4(0.38 0.00 0) //5(0.38 0.05 0) //6(0.38 0.10 0) //7(0 0 0) //8(dummy)(0 0 0) //9(dummy)(0 0.05 0.01) //10(0 0.10 0.01) //11(0.03 0.0 0.01) //12(0.03 0.05 0.01) //13(0.03 0.10 0.01) //14(0.38 0.00 0.01) //15(0.38 0.05 0.01) //16(0.38 0.10 0.01) //17

);

blocks(

hex (0 3 4 1 10 13 14 11) (10 10 1) simpleGrading (1 1 1)hex (2 5 6 3 12 15 16 13) (100 10 1) simpleGrading (1 1 1)hex (3 6 7 4 13 16 17 14) (100 10 1) simpleGrading (1 1 1)

);

edges();

boundary(

heater{

type wall;faces(

(2 5 15 12));

}adiabatic{

type wall;faces(

(1 4 14 11)(4 7 17 14)(10 13 3 0)(2 3 13 12)

);}

Page 21: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

20

sidewalls{

type empty;faces(

(0 1 3 4)(2 5 6 3)(3 4 7 6)(10 11 13 14)(12 15 16 13)(13 14 17 16)

);}inlet{

type patch;faces(

(0 1 11 10));

}outlet{

type patch;faces(

(5 6 16 15)(6 7 17 16)

);}

);

mergePatchPairs();// ************************************************** //

Page 22: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

21

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 2 -2 0 0 0 0];

internalField uniform 0;

boundaryField

{

inlet

{

type zeroGradient;

}

outlet

{

type fixedValue;

value uniform 0.0;

}

adiabatic

{

type zeroGradient;

}

heater

{

type zeroGradient;

}

sidewalls

{

type empty;

}

}

// ************************************************************************* //

Page 23: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

22

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 2 -2 0 0 0 0];

internalField uniform 0;

boundaryField

{

inlet

{

type zeroGradient;

}

outlet

{

type fixedValue;

value uniform 0.0;

}

adiabatic

{

type zeroGradient;

}

heater

{

type zeroGradient;

}

sidewalls

{

type empty;

}

}

// ************************************************************************* //

Page 24: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

23

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 -1 0 0 0 0];

internalField uniform (0 0 0);

boundaryField

{

inlet

{

type fixedValue ;

value uniform (0.5 0 0);

}

outlet

{

type zeroGradient;

}

adiabatic

{

type noSlip;

}

heater

{

type noSlip;

}

sidewalls

{

type empty;

}

}

// ************************************************************************* //

Page 25: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

24

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 0 0 1 0 0 0];

internalField uniform 298.15;

boundaryField

{

inlet

{

type fixedValue ;

value uniform 298.15;

}

outlet

{

type zeroGradient;

}

adiabatic

{

type zeroGradient;

}

heater

{

type fixedValue ;

value uniform 299.15;

}

sidewalls

{

type empty;

}

}

// ************************************************************************* //

Page 26: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

25

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 2 -1 0 0 0 0];

internalField uniform 1.94e-05;

boundaryField

{

inlet

{

type fixedValue ;

value uniform 1.94e-05;

}

outlet

{

type zeroGradient;

}

adiabatic

{

type zeroGradient;

}

heater

{

type zeroGradient;

}

sidewalls

{

type empty;

}

}

// ************************************************************************* //

Page 27: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

26

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 0 0 1 0 0 0];

internalField uniform 0;

boundaryField{

inlet {

type fixedValue;value uniform 298.15;

}

outlet {

type zeroGradient;}

adiabatic{

type zeroGradient;}

heater {

type fixedGradient;gradient uniform 16305.3;

}

frontAndBack{

type empty;}

}

// ************************************************************************* //

0

0

( )

( )

x

x

Tq t

x

T q t

x

熱流束境界条件(第2種境界)

Page 28: (2017. 1. 28) - mech.iwate-u.ac.jphirose/ockitatohoku/ref/fukue-OClecture... · OpenFOAMで予測したい! 解きたい項目(仮定) 強制対流

27

おわったら,ターミナルを開いて,次のように打ってみてください

cd $FOAM_RUN/backstepblockMeshbuoyantBoussinesqPimpleFoamparaFoam

注:アルファベットは大文字と小文字を区別します.