ここで,四つの異なるメッシュ間隔の計算メッシュが計算領域の上下左右のブロックに必要 となります.このメッシュのブロック構造を図2.12に示します.
0 z y x
3 4 5
8
6 7
1 2
17 15
9 10 11
16
12 13 14
0 1
2 3
図2.12 キャビティケースの勾配メッシュのブロック構造(ブロック番号)
cavityGrade
のconstant/polyMesh
サブディレクトリでblockMeshDict
ファイルを見ることが できます.念のためblockMeshDict
の重要な要素を以下に述べます.それぞれのブロックはx 方向,y方向に10
セルを有し,もっとも大きなセルともっとも小さなセルとの大きさの比は2
です.17 /*---*- C++ -*---*\
18 | ========= | |
19 | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
20 | \\ / O peration | Version: 2.0.0 |
21 | \\ / A nd | Web: www.OpenFOAM.com |
22 | \\/ M anipulation | |
23 \*---*/
24 FoamFile
25 {
26 version 2.0;
27 format ascii;
28 class dictionary;
29 object blockMeshDict;
30 }
31 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32
33 convertToMeters 0.1;
34
35 vertices
36 (
37 (0 0 0)
38 (0.5 0 0)
39 (1 0 0)
40 (0 0.5 0)
41 (0.5 0.5 0)
42 (1 0.5 0)
43 (0 1 0)
44 (0.5 1 0)
45 (1 1 0)
46 (0 0 0.1)
47 (0.5 0 0.1)
48 (1 0 0.1)
49 (0 0.5 0.1)
50 (0.5 0.5 0.1)
51 (1 0.5 0.1)
52 (0 1 0.1)
53 (0.5 1 0.1)
54 (1 1 0.1)
55 );
56
57 blocks
58 (
59 hex (0 1 4 3 9 10 13 12) (10 10 1) simpleGrading (2 2 1)
60 hex (1 2 5 4 10 11 14 13) (10 10 1) simpleGrading (0.5 2 1)
61 hex (3 4 7 6 12 13 16 15) (10 10 1) simpleGrading (2 0.5 1)
62 hex (4 5 8 7 13 14 17 16) (10 10 1) simpleGrading (0.5 0.5 1)
63 );
64
65 edges
66 (
67 );
68
69 boundary
70 (
71 movingWall
72 {
73 type wall;
74 faces
75 (
76 (6 15 16 7)
77 (7 16 17 8)
78 );
79 }
80 fixedWalls
81 {
82 type wall;
83 faces
84 (
85 (3 12 15 6)
86 (0 9 12 3)
87 (0 1 10 9)
88 (1 2 11 10)
89 (2 5 14 11)
90 (5 8 17 14)
91 );
92 }
93 frontAndBack
94 {
95 type empty;
96 faces
97 (
98 (0 3 4 1)
99 (1 4 5 2)
100 (3 6 7 4)
101 (4 7 8 5)
102 (9 10 13 12)
103 (10 11 14 13)
104 (12 13 16 15)
105 (13 14 17 16)
106 );
107 }
108 );
109
110 mergePatchPairs
111 (
112 );
113
114 // ************************************************************************* //
いったんこのケースの
blockMeshDict
ファイルを理解しておけば,後はコマンドラインからblockMesh
を実行できます.2.1.2項に示したparaFoam
を使用することで勾配付けされたメッ シュを見ることができます.2.1.6.2
計算時間,時間ステップの変更もっとも速い速度と小さいセルが上蓋に面することになり,したがって,2.1.1.4で示したよう に,もっとも高いクーラン数が上蓋に面するセルに生じます.このようなことから上蓋に面す るセルの大きさを見積もることは,本ケースにて適当な時間ステップを計算する上で有効です.
一様でないメッシュ勾配を使用している場合,
blockMesh
は形状に関する数列をもちいてセ ルの大きさを算出します.長さlに沿って,最初と最後のセルとの間に,比Rのn個の計算セ ルが必要であるならば,もっとも小さいセルの大きさは,次のように与えられます.∆xs =l r
−
1αr
−
1(2.5)
ここで,rはあるセルの大きさとその隣のセルの大きさとの比であり,次式で表されます.
r=Rn−11
(2.6)
そして,
α=
R
for
R >1,1
−
r−1+r−1for
R <1.(2.7)
cavityGrade
ケースにおいては,各方向のセルの数は10であり,もっとも大きなセルと小さなセルとの比は2,ブロックの縦横は0.05 mです.したがって,もっとも小さなセルサイズは3.45 mm となります.式(2.2)から時間ステップは,クラーン数を1以下に抑えるために3.45 ms以下に しなければなりません.有意な解析結果を得るためには,時間ステップ
deltaT
を2.5 msまで 短くし,writeInterval
を40
とします.これより解析結果は0.1 sごとに書き出されることと なります.このように,各設定に対応したファイルを編集することにより,ケースディクショナリの各 種条件を変更することができます.ここで時間ないし計算経過の書き出しを操作したいならば,
/cavityGrade/system/controlDict
ファイル内にそれらのパラメータは納められており,任意の エディタでこのファイルを開くことができます.先に述べたように,計算を収束させるための 保証として,このケースでは時間ステップdeltaT
は0.25e-3
に,writeInterval
は40
とし ます.startTime
はそのcavityFine
ケースの最終的な条件,すなわち0.7に設定される必要があり ます.cavity
とcavityFine
が規定された実行時間の中でよく収束させるためには,cavityGrade
ケースのための実行時間を0.1 sに設定,すなわちendTime
を0.8
とします.2.1.6.3
解析場のマッピング2.1.5.3にあるように
mapFields
を使用して,cavityFine
ケースの最終的な結果をcavityGrade
ケースのメッシュにマッピングします.以下のようにcavityGrade
ディレクトリに入り,mapFields
を実行してください.cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavityGrade mapFields ../cavityFine -consistent
今度は,ケースディレクトリから
icoFoam
を実行します.そして,ランタイム情報をモニタリ ングします.そして,このケースの完全に収束した結果を見て,以前に2.1.5.6と2.1.5.7で説 明した後処理ツールを使って他の結果と比較します.2.1.7
レイノルズ数の増大これまで解いたケースはレイノルズ数が10でした.これは大変に低い条件であり,したがっ てキャビティの底部中央に小さな二次渦を伴うのみで,迅速に安定解を導くことができました.
しかし,ここでレイノルズ数を100に上げると,収束解を得るのにより長い時間を要すること になります.そこで