Discretizer を使ってみる

2013年6月26日

はじめに

OpenFOAM 用 GUI ツール Discretizer を使ってみる。

使用バージョン

discretizer_windows_v200_20130206, OpenFOAM 2.1.x for Win64, Windows 7

前提

OpenFOAM 入門 (Windows 超特急版) の実行環境が整っていることを前提とする。

セットアップ

ここ の "DOWNLOAD" からパッケージをダウンロードする。

パッケージを展開し、フォルダ名を "discretizer" とする。フォルダを OpenFOAM のフォルダ (DOS_Mode.bat と同じフォルダ) に入れる。

つぎのようなバッチファイルを用意する。

discretizerSetup.bat

call setvars
cd discretizer
set ROOT=E:\working\OpenFOAM-2.1.x-w64\discretizer
set DISCRETIZER=%ROOT%\discretizer
set STARTDIR=%USERPROFILE%
cd discretizer/discretizersetup
%ROOT%/ruby/bin/ruby discretizersetup.rb
pause

ROOT のパスは環境に合わせる。ここでは "E:\working" に OpenFOAM フォルダ "OpenFOAM-2.1.x-w64" があり、その中に "discretizer" フォルダを入れている。

セットアップがうまくいっていれば、バッチファイルをダブルクリックすることで Discretizer が起動する。

Discretizer を使ってみる

STL ファイルの用意

ParaView で簡単な STL ファイルを用意する。

Sources で 3D Text を用意する。ここではテキストを "TEST" とする。Filters で Linear Extrusion と Triangulate を適用。メニュー [File]-[Save Data] で STL ファイルを ASCII 形式で保存。

メッシュの作成

"discretizerSetup.bat" をダブルクリックして Discretizer を起動する。

空のケースフォルダを作っておく。メニュー [File]-[Open STL surface] でケースフォルダと STL ファイルを選択し、読み込む。

メニュー [Solver]-[blockMeshDict] でモデルを囲む領域を設定する。

Min: -1.0 -1.0 -0.5
Max:  5.0  2.0  1.5
Number of Elements: 50 50 20

メニュー [View]-[Location in mesh] で領域内部の点を設定する。

メニュー [Solver]-[snappyHexMeshDict] で snappyHexMesh の設定を行う。ここではメッシュが多くならないように NCELLSBETWEENLEVELS を 1 にし、STLSURFACE_REFINEMENT_MIN と STLSURFACE_REFINEMENT_MAX を 0 にしている。

メニュー [File]-[Save Settings As] で設定を保存しておく。

メニュー [Run]-[Sync files] で設定ファイルを書き出し、[Run]-[Run blockMesh] で blockMesh を実行、[Run]-[Run snappyHexMesh] で snappyHexMesh を実行する。

snappyHexMesh の実行が終わったら、メニュー [Post]-[paraview] で ParaView を起動してメッシュをチェックする (ケースフォルダ内に "case.foam" というファイルを作っておき、それを読み込む)。

メッシュに問題がなさそうなら、メニュー [File]-[Open Mesh] でケースフォルダを選択し、作ったメッシュを読み込む。

メニュー [Solver]-[Choose...] でソルバーを選択する。ここでは simpleFoam を選ぶ。

メニュー [Create]-[Boundary] で境界条件を作成する。左のスプレッドシートの "Faces" から境界をクリックして選択し、[Create]-[Boundary] を選ぶとダイアログが開くので、必要な境界条件を設定する。

minX (入口) はつぎのように設定する。

maxX (出口) はつぎのように設定する。

残りは壁として、すべて以下のように設定する。

境界条件は存在する境界すべてに設定する必要がある。

メニュー [Solver]-[controlDict] で計算の設定を行う。ここでは ENDTIME を 100、WRITEINTERVAL を 100 とする。

設定を保存する。メニュー [Run]-[Sync files] で設定ファイルを書き出し、[Run]-[Run Simulation] で計算を実行する。

ParaView でポスト処理を行う。