はじめに
Code_Saturne を使ってみる。
使用バージョン
Code_Saturne 2.0.4, Salome-Meca 2012.1
ケース
OpenFOAM の icoFoam のチュートリアルケースである cavity と同じ計算を Code_Saturne で実施してみる。
モデル
0.1 x 0.1 x 0.01 [m] の矩形領域。分割数は 20 x 20 x 1 とする。
計算の種類
非圧縮性流体、層流、温度計算なし、非定常。
物性
動粘性係数 0.01 [m2/s] (ここでは密度 1 [kg/m3], 粘性係数 0.01 [Pa-s] と考える)。
境界条件
上面 x 方向速度 1 [m/s]、側面 non-slip、表裏は 2 次元境界条件 (ここでは対称条件とする)。
メッシュの作成
ここでは Salome-Meca でメッシュを作成する。
- Salome-Meca を起動
$ runSalomeMeca
- メニュー [File]-[New] で新規作成。
- Geometry モジュールを起動。
- [New Entity]-[Primitives]-[Box] で Box を作成。Dx = 0.1, Dy = 0.1, Dz = 0.01 とする。
viwer のアイコン "Fit All" で全体表示。
- [New Entity]-[Explode] で "Sub Shapes Type" を "Face" にして面を作成。

- エッジも同様に作成。
- Mesh モジュールを起動。
- "Box_1" を選択、[Mesh]-[Create Mesh] で "Algorithm" に "Hexahedron (i,j,k)" を選択、"Assign a set of hypotheses" で "3D Automatic Hexahedralization" を選び、"Number of Segments" に 20 を設定。
 
- このままだと z 方向にも 20 分割されるので、z 方向エッジ 4 本に分割設定をする。Mesh_1 を選択し、[Mesh]-[Create Sub-mesh] を選択。"Geometry" に z 方向のエッジを選び (ツリーで Ctrl を押しながら選択)、"Algorithm" に "Wire discretisation" を設定、"Hypothesis" の横の設定アイコンを押し "Nb. Segments" を選び、"Number of Segments" に 1 を設定。

- "Mesh_1" を選び [Mesh]-[Compute] でメッシュを作成。

- 面に名前をつける。"Mesh_1" を選び [Mesh]-[Create Group] を選択。"Elements Type" を "Face" とし、"Group type" に "Group on geometry" を選択。"Geometrical Object" の矢印ボタンを押して "Direct geometry selection" を選ぶ。面を選び、Name に名前を設定する。
以下のように設定する。
- 上面: movingWall
- 側面: fixedWalls
- 表裏: frontAndBack
面の位置は Geometry で確認する。
- ツリーで "Mesh_1" を選んで右クリックし、ポップアップメニューから "Export to MED File" を選択、メッシュファイルを出力する。
ケース設定/解析
Code_Saturne によるケース設定、解析を行う。
- 解析用ディレクトリを作成する。
$ code_saturne create -s cavity -c CASE01
"-s" で指定しているのは study 名、"-c" のほうは study のケース名。
- 作成したメッシュファイルを cavity/MESH ディレクトリにコピーする。
$ cp cavity.med cavity/MESH
- ケースディレクトリの DATA ディレクトリにある SaturneGUI で設定 GUI を起動。
$ cd cavity/CASE01/DATA
$ ./SaturneGUI
- メニュー [File]-[New file] で新規作成。

- ツリー "Calculation environment" - "Meshes selection" でメッシュファイルが正しく選択されているのを確認する。

- "Calculation environment" - "Mesh quality criteria" で "Check mesh" ボタンを押す。保存するファイル名を問われるので、"listpre.txt" とする。

- "Thermophysical models" - "Calculation features" で "Steady/Unsteady flow algorithm" が "unsteady flow" になっているのを確認。

- "Thermophysical models" - "Turbulence models" の "Turbulence model" で "No model" (層流) を選ぶ。

- "Thermophysical models" - "Thermal model" の "Thermal scalar" が "No thermal scalar" になっているのを確認。

- "Physical properties" - "Fluid properties" で Density = 1, Viscosity = 0.01 を設定する。

- "Boundary conditions" - "Definition of boundary regions" の "Add from Preprocessor listing" で、上で保存した listpre.txt を選ぶと、境界名が読み込まれる。"frontAndBack" の "Nature" を "Symmetry" にする。

- "Boundary conditions" - "Boundary conditions" で、"movingWall" の "Sliding wall" を ON にし、U = 1 を設定する。

- "Numerical parameters" - "Time step" で Reference time step = 0.005, Number of iterations = 100 と設定する。

- "Calculation control" - "Output control" の "Post-processing" で "Post-processing every 'n' time steps" を選び、値を 20 とする。

- [File]-[Save] で設定を保存する。名前は "CASE01.xml" などとする。
- "Calculation management" - "Prepare batch calculation" で "run Code_Saturne batch job" ボタンを押すと、計算が開始する。

- 結果は cavity/CASE01/RESU に CHR.ENSIGHT.xxxxxxxx ディレクトリとして出力される。ParaView で表示。
$ cd ../RESU/CHR.ENSIGHT.09301551
$ paraview --data=CHR.case
結果の比較
OpenFOAM 2.1.1 の icoFoam の結果と比較する。
  Code_Saturne(左)/OpenFOAM (右)
だいたい同じ。
|