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 でポスト処理を行う。 ![]() | |
| PENGUINITIS | |