Code_Saturne を使ってみる

2012年9月30日

はじめに

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 でメッシュを作成する。

  1. Salome-Meca を起動
    $ runSalomeMeca
    
  2. メニュー [File]-[New] で新規作成。
  3. Geometry モジュールを起動。
  4. [New Entity]-[Primitives]-[Box] で Box を作成。Dx = 0.1, Dy = 0.1, Dz = 0.01 とする。
    viwer のアイコン "Fit All" で全体表示。
  5. [New Entity]-[Explode] で "Sub Shapes Type" を "Face" にして面を作成。
  6. エッジも同様に作成。
  7. Mesh モジュールを起動。
  8. "Box_1" を選択、[Mesh]-[Create Mesh] で "Algorithm" に "Hexahedron (i,j,k)" を選択、"Assign a set of hypotheses" で "3D Automatic Hexahedralization" を選び、"Number of Segments" に 20 を設定。
  9. このままだと z 方向にも 20 分割されるので、z 方向エッジ 4 本に分割設定をする。Mesh_1 を選択し、[Mesh]-[Create Sub-mesh] を選択。"Geometry" に z 方向のエッジを選び (ツリーで Ctrl を押しながら選択)、"Algorithm" に "Wire discretisation" を設定、"Hypothesis" の横の設定アイコンを押し "Nb. Segments" を選び、"Number of Segments" に 1 を設定。
  10. "Mesh_1" を選び [Mesh]-[Compute] でメッシュを作成。
  11. 面に名前をつける。"Mesh_1" を選び [Mesh]-[Create Group] を選択。"Elements Type" を "Face" とし、"Group type" に "Group on geometry" を選択。"Geometrical Object" の矢印ボタンを押して "Direct geometry selection" を選ぶ。面を選び、Name に名前を設定する。
    以下のように設定する。
    • 上面: movingWall
    • 側面: fixedWalls
    • 表裏: frontAndBack
    面の位置は Geometry で確認する。
  12. ツリーで "Mesh_1" を選んで右クリックし、ポップアップメニューから "Export to MED File" を選択、メッシュファイルを出力する。
  13. ケース設定/解析

    Code_Saturne によるケース設定、解析を行う。

    1. 解析用ディレクトリを作成する。
      $ code_saturne create -s cavity -c CASE01
      
      "-s" で指定しているのは study 名、"-c" のほうは study のケース名。
    2. 作成したメッシュファイルを cavity/MESH ディレクトリにコピーする。
      $ cp cavity.med cavity/MESH
      
    3. ケースディレクトリの DATA ディレクトリにある SaturneGUI で設定 GUI を起動。
      $ cd cavity/CASE01/DATA
      $ ./SaturneGUI
      
    4. メニュー [File]-[New file] で新規作成。
    5. ツリー "Calculation environment" - "Meshes selection" でメッシュファイルが正しく選択されているのを確認する。
    6. "Calculation environment" - "Mesh quality criteria" で "Check mesh" ボタンを押す。保存するファイル名を問われるので、"listpre.txt" とする。
    7. "Thermophysical models" - "Calculation features" で "Steady/Unsteady flow algorithm" が "unsteady flow" になっているのを確認。
    8. "Thermophysical models" - "Turbulence models" の "Turbulence model" で "No model" (層流) を選ぶ。
    9. "Thermophysical models" - "Thermal model" の "Thermal scalar" が "No thermal scalar" になっているのを確認。
    10. "Physical properties" - "Fluid properties" で Density = 1, Viscosity = 0.01 を設定する。
    11. "Boundary conditions" - "Definition of boundary regions" の "Add from Preprocessor listing" で、上で保存した listpre.txt を選ぶと、境界名が読み込まれる。"frontAndBack" の "Nature" を "Symmetry" にする。
    12. "Boundary conditions" - "Boundary conditions" で、"movingWall" の "Sliding wall" を ON にし、U = 1 を設定する。
    13. "Numerical parameters" - "Time step" で Reference time step = 0.005, Number of iterations = 100 と設定する。
    14. "Calculation control" - "Output control" の "Post-processing" で "Post-processing every 'n' time steps" を選び、値を 20 とする。
    15. [File]-[Save] で設定を保存する。名前は "CASE01.xml" などとする。
    16. "Calculation management" - "Prepare batch calculation" で "run Code_Saturne batch job" ボタンを押すと、計算が開始する。
    17. 結果は cavity/CASE01/RESU に CHR.ENSIGHT.xxxxxxxx ディレクトリとして出力される。ParaView で表示。
      $ cd ../RESU/CHR.ENSIGHT.09301551
      $ paraview --data=CHR.case
      

      結果の比較

      OpenFOAM 2.1.1 の icoFoam の結果と比較する。

      Code_Saturne(左)/OpenFOAM (右)

      だいたい同じ。