いきなりOpenFOAM (5)

任意形状の計算方法とFreeCADの利用

例題のファイルを変更する方法

 前回までで、OpenFOAMの例題を計算し、ParaViewで結果を表示してみましたが、設計や開発に利用するには、任意の形状・条件で計算できる必要があります。そこで、任意の形状・条件で計算する方法を考えてみます。最初に考えつくのは、例題の一部を修正するという方法です。
 そこで、例題pitzDailyフォルダ内のファイルを見てみます。テキスト形式ファイルなので、エディタ(Windows環境であればメモ帳)で開くことができます。まず、systemディレクトリ内のblockMeshDictファイルを右クリック→テキストエディタで開く を選択すると、図1に示すように、エディタが起動し、内容を見ると、境界条件らしい名称(inletなど)の後に、規則的な数値が並んでいます。規則にしたがって、名称や数値を記述すれば、任意の形状を表現できそうなことがわかります。

図1 blockMeshDictファイル

 続けて、同じsystemディレクトリ内のcontrolDictを開いてみます(図2)。ここには開始時刻や終了時刻が記載されています。

図2 controlDictファイル

 続けて、0ディレクトリ内のUを開いてみます(図3)。これは、流速に関する規定で、図を見ると、inletには(10 0 0)と、X軸方向に10m/sの流速を与えていると想像できます。

図3 Uファイル

 このように、例題を任意の形状で任意の境界条件に書き換えることはできそうです。しかしながら、一箇所でも間違いがあると計算できなかったり、計算したいものに近い例題が無かったり、いざ計算を始めようとすると、意外にハードルは高いです。

専用のプリプロセッサを使う

 そこで、このコラムでは、3次元CADで形状を作成し、Xsimというブラウザ(オンライン)で使えるプリプロセッサを使って、任意形状・任意条件の解析ファイルを作成することにします。解析の流れを図4に示します。

図4 解析の流れ

 最初に、モデルを作成あるいは形状データを準備します。次に、モデルを面要素に分解します。専用プリプロセッサに限らず、OpenFOAMでの形状認識は、条件毎にバラバラになった面を複数読み込んで、1つの空間を作る方法になります。読み込ませるファイルフォーマットはstlになります。
 作成したstlファイルを専用のプリプロセッサ(Xsim)へ読み込ませ、GUIに沿って必要な条件などを設定し、Xsimが作成した計算用のファイルをダウンロードします。ダウンロードしたファイルを例題と同様に実行すれば、任意形状・任意条件の計算をすることができます。

面データの作成

 前述のとおり、OpenFOAMでもXsimでも、任意形状の読み込みには、面要素に分解されたstlデータが必要です。お手持ちの3次元CADで面要素への分解とstlファイルへの出力ができれば、現在使っている3次元CADがそのまま使えます。
 ここでは、面要素への分解ができない場合に、フリーの3次元CADである「FreeCAD」で面分解する方法を紹介します。

FreeCADの入手

 もし、まだFreeCADを入手されていない場合は、下記リンクより入手してください。このコラムではLinux環境を想定していますが、FreeCADはWindows, iOSにも対応しています。なお環境によりメニューが日本語化されているなど、このコラムの表示と異なる場合があります。

FreeCAD : https://www.freecadweb.org/?lang=ja

 今回のコラムではすでにある形状から面分割をする方法のみ紹介しますが、FreeCADで形状から作成することも可能です。FreeCADの操作は下記サイトなどを参考にしてみてください。

https://wiki.freecadweb.org/index.php?title=Online_Help_Toc/jp

FreeCADを使って面分割

 まず、FreeCADを起動し、メニューバーのFile→Importから、面分割したいモデルファイルを選択してください。図5のように、モデルが表示されます。
 モデルの操作はshiftキー+マウス右ボタンクリックで回転、マウス中ボタンクリックで移動、マウスホイール回転で拡大・縮小できます。

図5 モデルのインポート

 次に、図6の赤い楕円で囲まれた部分をクリックして、Draftを選択します。FreeCADはワークベンチと呼ばれる機能ごとのグループに分かれていて、ワークベンチを切り替えることで、2次元作図やソリッド化やブーリアン演算を行います。Draftは2次元作図機能で、ソリッドを面要素に分解する機能はDraft内のツールバーにあります。
 ワークベンチをDraftに切替えたら、左のコンボビュー(モデルツリー)でモデルを選択し、図の青い丸で囲まれた下向き矢印のアイコンをクリックすると、モデルは面要素に分解されます。コンボビューを見ると、モデルが複数の要素になっていることがわかります。このダウングレードと呼ばれている下向き矢印のアイコンは、低位の要素に変換するもので、複数ソリッドのブーリアン演算結果は単体のソリッドに、また、単体のソリッドは面要素に分解されます。

図6 面要素に分解

 面要素に分解したら、境界条件ごとにファイルを選択し、メニューバーのFile→Exportから、拡張子はstlを選択して適当な名称で保存します。図のモデルでは、流入口に相当する部分と流出口に相当する部分、ダクト内表面に相当する部分の3つのstlファイルを保存しました。

図7 選択した面要素をstlファイルで出力

 今回までで、専用プリプロセッサXSimに読み込ませる形状データの準備ができました。次回はXSimについて説明してゆきます。

おことわり
 本コンテンツの動作や表示はお使いのバージョンにより異なる場合があります。
 本コンテンツの動作ならびに設定項目等に関する個別の情報提供およびサポートはできかねますので、あらかじめご了承ください。
 本コンテンツは動作および結果の保証をするものではありません。ご利用に際してはご自身の判断でお使いいただきますよう、お願いいたします。