HELYXOSはオープンソースの流体解析ソルバーOpenFOAM用に開発されたオープンソースのGUIフロントエンドです。OpenFOAM®解析用ケース作成(メッシュ作成、条件設定)をGUIで行うことができます。2012年7月21日にバーション1.0.0が初めてリリースされました。ライセンスはGPLv2(GNU General Public Licenseバージョン2)、開発元はイギリスのEngys社です。
以下のSourceForgeプロジェクトページからLinux用実行ファイルとソースコードをダウンロード可能です。
以下の手順でコンパイル済みのHelyxOSをインストールできます。なおOpenFOAMが既にインストールされ、コマンド操作にはbshellを使用するものとして説明します。
HELYXOSプロジェクトページの"files"タブから最新の*linux-x64-JRE.tar.bz2ファイル(例:20120721-engys-HelyxOS-100-linux-x64-JRE.tar.bz2)をダウンロードし、ローカルのOpenFOAMディレクトリに置きます。
次のように入力してファイルを展開します。
次のように入力してHelyxOSディレクトリに移動します。
次のように入力してHelyx OS を起動します。
VTKライブラリのロードに失敗した場合、次のようなエラーがターミナルに表示されます。
その場合、以下のように入力すると問題を解決できます。
ただし64ビットOSの場合は以下のようにします。
HelyxOSを使用するとsnappyHexMeshによるメッシュ作成、ケースファイルの作成、HelyxOSのサポートするソルバーでの計算実行が可能になります。
ビルドには以下のソフトウェアが必要です。
以下の手順でHelyxOSをビルドすることが可能です。
javaとJDKが作業用のマシンにインストールされ、問題なく動作することを確認してください。下記のコマンドでjavaとJDKのインストール状況とバージョンを確認できます。
HELYXOSプロジェクトページの"files"タブから最新の*src.tar.bz2ファイル(例:20120721-engys-HelyxOS-100-src.tar.bz2)をダウンロードし、ローカルのOpenFOAMディレクトリに置きます。
ビルドに必要なライブラリを用意するためにOpenFOAMディレクトリにコンパイル済みのHelyxOSをインストールします。方法についてはHELYXOSのインストールを参照してください。
ant (>1.7) がインストールされていることを確認してください。下記のコマンドでantのインストール状況とバージョンを確認できます。
次のように入力してHelyxOSディレクトリに移動します。
build_src.xmlと同じディレクトリから次のように入力してantを実行します。
Ver1.0.0ではAboutWindow.javaで文字コードに由来するエラーが出るので以下のコマンドで文字コードを変更後、再度、antを実行します。
ビルドが成功するとlibディレクトリ内にHelyxOS_MOD.jarというファイルが作成されます。このファイルの名前をHelyxOS.jarと変更して以下のコマンドを実行すると変更済みのHelyxOSが実行できます。
インストール後、ターミナル上でEngys/HelyxOS/v100に移動し、以下のコマンドを入力するとHELYXOSが起動します。
ツールバー左端のアイコンをクリックすると新しい解析ケースを作成することができるのでOpenFoamを起動できる適当な位置にケースを作成保存します。
[Surface Regions]に移動し、[Import STL]からSTL形式の形状ファイル(サンプル)を読み込みます。正常に読み込めると下図のように形状が表示されます。
ウィンドウ左側の[Surface]に表示されている下側の[Box]を選択した上で[Layer]タブをクリックし、以下のように入力します。
Number of Layers | 3.0 |
Relative Size | チェック |
Final Layer Thickness | 0.3 |
Layer Min Thickness | 0.2 |
Layer Streching | 1.0 |
[Base Mesh]に移動し、次のように入力して解析領域サイズとメッシュ分割数を定義します。
Base Mesh Type | User Defined |
x | y | z | |
Min | -3.0 | -3.0 | 0.0 |
Max | 10.0 | 5.0 | 5.0 |
Number of Elements | 100 | 50 | 40 |
体積領域を設定する場合は[Volume Regions]に移動し、設定します。今回は特に設定は必要ありません。
[General Options]に移動し、以下のように設定します。ここで指定した点を含む閉空間にメッシュが作成されます。
x | y | z | |
Material Point | -2.0 | -2.0 | 1.0 |
設定後、[Create Mesh]をクリックするとメッシュ作成が開始されます。作成中は進捗状況がメッセージウィンドウが表示されます。正常に終了すると下図のようにメッセージが表示されます。
メッシュ作成が終わったら改めて解析ケースを読み込みます。ツールバー左から2つ目のアイコンをクリックして解析ケースを読み込みます。読み込み後、ツールバーのドロップダウンで[Wireframe]を選択してメッシュが作成されたことを確認します。
ケースを読み込んだら[Solution Modeling]で次のように入力して設定を行います。
Time | Steady |
Flow | Incompressible |
Turbulance - model | Standard high-Re k-ε |
Energy | チェックをはずす |
設定を行ったら[Run]に移動して下図のように[Solver]に[SimpleFoam]が設定されていることを確認してください。[SimpleFoam]が設定されていない場合、[Solution Modeling]の設定を何度か切り替えることで[SimpleFoam]を設定できます。
[Materials]に移動して流体の物性値を設定します。デフォルト設定の空気(air)が設定されていることを確認してください。今回は使用しませんが物性値データベースにはあらかじめ以下の物性値が登録されています。また独自の物性値を登録することも可能です。
登録済み物性値 |
---|
Water |
liquidWater(Waterと同じ) |
waterVapor |
airStreamMixture |
air |
merculy |
oil |
[Boundary Conditions]に移動して境界条件を設定します。ウィンドウ左下にある[Patches]リストから面領域を選択すると該当する領域がドローウィンドウ上で白く表示されます。境界条件は以下のように設定してください。
Name | ffminx |
---|---|
Type | Patch |
Momentum - velocity | Fixed value & (5.0, 0.0, 0.0) |
Momentum - pressure | Zero Gradient |
Turbulence - Type | Inlet outlet |
Turbulence - k(m2/s2) | 0.1 |
Turbulence - NuTilda(m2/s) | 0.01 |
Name | ffmaxx |
Type | Patch |
Momentum - velocity | Zero Gradient |
Momentum - pressure | Fixed value & 0.0 |
Turbulence - Type | Inlet outlet |
Turbulence - k(m2/s2) | 0.1 |
Turbulence - NuTilda(m2/s) | 0.01 |
Name | ffminy & ffmaxy & ffmaxz |
Type | Wall |
Momentum - Type | Fixed Wall |
Momentum - Wall Type | Slip |
Name | ffminz & Box_Box |
Type | Wall |
Momentum - Type | Fixed Wall |
Momentum - Wall Type | No - Slip |
体積領域がある場合は[Cell Zones]に移動して条件を設定します。今回は特に設定は必要ありません。
初期値を独自に設定する場合は[Field Initialization]に移動して初期値を設定します。今回は特に設定は必要ありません。
計算スキームを独自に設定する場合は[Numeriacl Schemes]に移動して設定します。今回は特に設定は必要ありません。
ソルバーパラメーターを独自に設定する場合は[Solver Setting]に移動して設定します。今回は特に設定は必要ありません。
[Runtime Control]に移動して計算終了タイミング、結果出力タイミングを設定します。以下のように設定してください。
Time Setting | |
---|---|
Start From | Start Time & 0.0 |
End Time | 100 |
Δt(s) | 1.0 |
Adjustable Time Step | チェックを外す |
Data Writing | |
---|---|
Write Control | Time Step & 100 |
Purge Write | 0 |
Write Format | ASCII |
Write Precision | 10 |
Write Compress | Uncompressed |
Time Format | General |
Time Precision | 6 |
Graph Format | Raw |
Data Reading | |
---|---|
Runtime Modifiable | チェックを外す |
[Run]に移動して[Solver]に[SimpleFoam]が設定されていることを確認して[Run]をクリックすると計算が開始されます。
計算中は進捗状況がメッセージウィンドウが表示されます。正常に終了すると下図のようにメッセージが表示されます。
計算終了後、ターミナル上で解析ケースディレクトリにに移動し、以下のコマンドを入力するとParaViewが起動します。
ウィンドウ左側のツリーで[newCase.OpenFOAM]が選択されていることを確認して[Apply]をクリックすると結果データが読み込まれます。
そのままツールバーの[Slice]をクリック、ウィンドウ左下に表示される[Properties]タブで[Y Normal]をクリックした後、[Apply]をクリックするとドローウィンドウにスライスが表示されます。
ウィンドウ左下に表示される[Display]タブの[Color]欄にある[Color by]で[U]を選択します。そのごツールバーの[Time]で最終の計算結果(Time = 100)を選択するとスライス上に最終結果の速度コンターが描画されます。
そのままツールバーで表示を[Wireframe]に切り替えるとスライス上のメッシュを確認できます。境界層要素が『3.表面領域の設定』で設定した通り3層挿入されていることがわかります。