DEXCS2015 for OpenFOAM(R) リリースノート

ダウンロードはこちら

(2015/9/26公開)

DEXCS for OpenFOAM(R) は、OpenFOAMと、これをより簡単・高度に活用できるようにする為の様々なツールをすべてインストール済のオール・イン・ワンパッケージで、誰でも簡単・即使えるようにしたマシンイメージ(isoファイル)です。

範囲を選択_999(005)

詳しくはこちら

DEXCSランチャーのヘルプメニューからも参照できます

DEXCS2015では、

  • ベースOSはLinux Mint 17.1 Cinnamon No Codecs(LTS)
    • DEXCS2014ではやむ無くubuntu でしたが、Linux Mint に戻しました
    • 国際化にも対応しました。但し、ヘルプファイルは日本語のみ。
    • 2015/9/23 システムアップデート
  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
  • DEXCS2011から搭載するようになった中級者向けツール(TreeFoam)の機能強化を図りました。
  • FreeCADマクロ(cfMesh用簡単設定ツール)を、より使い易くしました。

なお、DEXCS2012までは、32/64bit版がありましたが、DEXCS2013からは、64bit版のみです。

また、製作可能なisoイメージの最大容量の制限の関係上、今回はHelyx-OS と、OpenMDAOの搭載は見送る事としました。

 

インストールと利用法

範囲を選択_999(006)

詳しくはこちら


マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)

  • 起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
  • 基本的に、DEXCS2011でやった方法と同じです.DEXCS2012,2013では、同じやり方が通用しない部分が一部ありましたが、それらの不具合はなくなりました。
  • VirtualBoxにインストールする方法は、こちらにDEXCS2013について詳しく記されていますが、基本は同じです。また、DEXCS2011までは、”Guest Additions”が入っておりませんでしたが、DEXCS2014では導入済みなので、共有ファイルの設定なども同様に実施可能です。

同梱プログラム

範囲を選択_999(007)

その他のドキュメントについて

    • DEXCSランチャーのヘルプメニューを参照下さい。
      • 本当に初めて使う人は、「ランチャーの使い方」-「まずは使ってみる」をご覧下さい。
      • 「ランチャーの使い方」-「形状作成」にて、FreeCADの使い方を概略説明しています。
      • 「ランチャーの使い方」-「メッシュ」にて、FreeCADマクロで起動される表形式のGUIの使い方と、cfMesh作成に必要なパラメタの概要を説明しています。
      • 「ランチャーの使い方」-「計算実行」「結果処理」を理解できるようになると、OpenFOAMの基本的なファイル構造を理解できたことにもなります。
      • 以上は動画チュートリアルになっていますが、「フラッシュプレーヤー」を変更して参照することを強くお勧めします。変更方法は、最下段の「フラッシュプレーヤーの変更方法」をご覧ください。
    • Blender⇒SwiftツールをDEXCSランチャーから使用することはなくなりましたが、ツールそのものは使用可能で、メッシュ作成用のテンプレートフォルダもBlenderモデルと併せて同梱してあります(デスクトップ上:DEXCS/template/swift_dexcsMesh)。
    • Swiftツールもヴァージョンアップして、出力ファイルの仕様が少々変更になっていますが、基本的な使用方法は変わっておりません。使用法の詳細を知りたい方はDEXCS2013のリリースノートをご覧ください。
    • SLURMというリソースマネージャもインストールしてあり、サブミット用のサンプルスクリプトを含んだケースファイルも同梱してあります(デスクトップ上:DEXCS/template/slurm_damBreak)。コア数が4つのマシンであれば、以下のコマンドを、そのまま利用可能(のはず)です。
      • $ sbatch submit.sh  (ジョブサブミット)
      • $ squeue  (ジョブ確認)
      • $ scancel [jobID] (ジョブ停止)
    • コア数が4でないなどの環境で、バッチジョブがペンディング状態のまま実行出来ない場合は、デスクトップ上、DEXCS/launcherOpen/doc/slurm.pdf を参考に設定ファイル(slurm.conf)を変更して使用して下さい。
    • ジョブサブミット、ジョブ確認は、TreeFoamの十徳ナイフからも起動できます.
    • 上記を含めて、TreeFoamから起動する十徳ナイフのメニューに変更はありません。
    • JAVA gnuplot GUI の使用方法
    • TreeFoamの基本的な使い方はTreeFoamのヘルプメニューから、「使い方」を参照して下さい。(DEXCS2014までは内容が古い物になっていましたが、DEXCS2015では、最新版に対応した内容になっています)
    • TreeFoamに関する情報は、DEXCS公式HPの AboutTreeFoamの記事にまとめてあります。
    • DEXCS2015に搭載のTreeFOAMは、+dexcsSwakとして、上記公式ページに掲載ヴァージョンに対して独自のカスタマイズが加えてあります。範囲を選択_999(008)
    • また、これに関連し、一部の機能が無効になっています範囲を選択_999(009)

 

FreeCADとcfMesh用マクロの使い方

先の記事に書いた通り、ただいまDEXCS2015 for OpenFOAM(R) の動画チュートリアルを作成中ですが、その一部は単独でそのまま表題の説明用途にも使えるわなぁ・・・と改めて気付いたので、本記事にて紹介しておきます。

FreeCADの基本的な使い方

範囲を選択_987

DEXCSでは、複雑な形状作成はユーザーが使い慣れた3D-CAD(もちろん頑張ればDEXCSに搭載のFreeCADやBlenderでも可能です!)で作成してもらうとして、これをstepまたはstl形式でFreeCADにインポートして使ってもらう事を想定しています。

その際に、FreeCADに標準搭載のプリミティブ要素(直方体や円柱など)を使って、領域を追加で定義したり、解析用の境界面を定義するのに、面の分割や再結合の操作が必要になりますが、これらの操作方法を具体例で確認することが出来ます。

⇒ チュートリアルを見る

 

cfMesh用マクロの使い方と機能の概要説明

範囲を選択_988

上述の方法で、FreeCADのソリッドモデルで解析空間を定義できるようになれば、DEXCSに搭載のFreeCAD用マクロ(makeCfMeshSetting.py)を使って、cfMesh用に境界面の定義や分割方法を指定する為の設定ファイル(meshDict)を自動作成できます。

このチュートリアルでは、マクロで起動される表形式のGUIの使い方と、実際に作成したmeshDictを対比させながらmeshDictファイルのパラメタの意味を解説するとともに、GUIでは指定しなかった、または指定出来ないパラメタを手修正で追加する方法についても解説しています。

⇒ チュートリアルを見る

DEXCS2015 for OpenFOAM(R) 製作の最終工程

先の第42回オープンCAE勉強会@岐阜(夏合宿)にて使用したDEXCS2015のプロトタイプ版ですが、ほとんどトラブルは無さそうだったので、いよいよ製作の最終工程・・・Winkチュートリアルを作成中です。
ワークスペース 2_984

 

DEXCSは基本Linuxですが、Winkチュートリアルだけは、Windows環境で作成する必要があるので、DEXCS2009以来、毎度の事ながら、この工程が最大の難所です。

拙宅マシンも更新して、仮想WindowsマシンもWindows10に更新、ちょっぴりサクサク作業できるようにはなりましたが・・・

とりあえず、第1弾が完成です。

範囲を選択_985

⇒ まずは使ってみる

蛇足ながら・・・

上のスクリーンショットと、下のそれを比べてみて下さい。

範囲を選択_986

明らかに画像品質が違いますね。下の物は、拙宅のLinuxMint17のデスクトップ環境でChromeを使って表示した場合です。

Chrome(on Linux Mint 17)でなく、FireFoxを使うなり、WindowsマシンのChrome を使えば、上の画像になってくれます。なんでだろ?

baffleMeshing by cfMesh

表題の資料をslideshare

範囲を選択_228

 

にアップしておきましたが、ここに補足解説しておきます。

モデルとメッシュ一式は⇒こちら

要旨

cfMeshでバッフルを有するメッシュを普通に作成すると形状が大きく崩れてしまい、とても使い物にならない(snappyHexMeshで作成したものと比べて)という問題があったので、解決策を調査したものです。

結論

CADモデルとしては、厚みの無いシェルではなく、有限の厚みを持たせるようにすれば、それなりにメッシュが作成できるようです。メッシュとして理想的なバッフル(厚みがゼロ)にはなりませんが、実用面を考えれば、実際の対象物の厚みをそのままモデリングすれば良く、メッシュもその厚み(隙間)サイズを再現してくれるので、これはこれでそれなりに使えそうです。

但し、ファンタイプ境界のようにバッフルの表裏面で、変数の受け渡しが出来るのかどうかは課題になりそうです。

 

おまけ

応用例として、OpenFOAM標準チュートリアルの、interDyMFoam/mixerVesselAMI:撹拌槽問題でバッフルが何ヶ所かあるので、これをcfMeshで作成することとし、その際のTipsをほんのさわりだけですが紹介しています。

実はすでにメッシュも完成し、interDyMFoamの計算も問題なく動いています。

このメッシュ作成法ですが、FreeCADの使い方を含めて、Tipsがたくさんありました。そこで、第42回オープンCAE勉強会@岐阜(夏合宿)

演習4:「cfMeshによる実践的なメッシュ作成」

の題材にならんかなぁ・・・と思案中です。

 

FreeCADで3Dソリッドを切断する方法

市販の3D-CADには当たり前に出来そうな機能(たとえば、AutoCADに関するこちらの記事)ですが、何故かFreeCADには存在しないようです。色々調べたのですが、否定的な記事(たとえば、こちらの記事)しか見つかりませんでした。

だからといって、これが本当に出来ないとなると、仕事では使えない!となってしまいます。実は最近受注した仕事の中で、どうしてもこの機能を使う必要がありました。そこでよーく考えれば、余分な手間はかかるけど所望の機能(切断)は実現できるはずという方法はいくつか思いついたので、色々試してみることとなり、まぁこれがベストかなという方法も見つかったので以下に記しておきます。

範囲を選択_127

切断平面を作成し、(これで「切断ボタン」があれば良いのだが無いので)これを法線方向へ押し出してブロックを作成、元のソリッドとのブーリアン演算するというものです。一見したところ単純に一手間増えただけのようで、何でこんな簡単な方法が公知でなかったのか・・・実は、切断平面を作成する際の注意点があって、これを間違えると、上の図のような押し出しが出来てくれないからでした。

直線の作成

範囲を選択_128(Partワークベンチ)⇒範囲を選択_132(パラメトリックな幾何プリミティブを作成)

範囲を選択_130

エッジから平面を作成

範囲を選択_128(Partワークベンチ)⇒範囲を選択_129(高度な図形作成ユーティリティ)

範囲を選択_134

手順は上の図に示しているが、ここで注意が必要なのは、範囲を選択_135の平面にチェックマークを付加しておくことと、範囲を選択_136でのエッジ選択方法です。これ(とくに後者)を間違えなければ、以下の手順(押し出し)がすんなりうまくいきますが、間違えるとどうなるかは後述します。

切断平面の押し出し

範囲を選択_128(Partワークベンチ)⇒範囲を選択_137(押し出しツール)

範囲を選択_143

作成した切断面を選択して、法線方向押出しで、上図のようになってくれれば、意図した通りの結果ですが、

失敗例1

範囲を選択_140

法線方向の押し出しが出来てくれません。これは、切断面を作成する際に、範囲を選択_135の平面にチェックマークを付加していない場合にこうなります。もっとも上図の場合には、こういう押し出し形状であったとしても、題意の切断面は作成可能ですがね。

失敗例2

範囲を選択_141

この場合は、法線方向の押し出しにはなっているのですが、押出方向が反対で、これでは次のブーリアン演算しても意図した切断面が得られません。

実は、この解決策を探すことに一番苦労しました。それが範囲を選択_136のエッジ選択方法です。結論は、正しい選択方法は1発では見つかりません。

確率的には、2回に1回はうまくいくはずです。3つの直線を順番に選択するんですが、失敗したら、出来たもの(Extrudeオブジェクト)を削除(Deleteキーを押す)し、さらに作成した切断面(Face)を削除して、切断面を作り直します。この時に失敗した時とは違う方法で選択し直せばうまくはずという・・・まぁ、このへんで妥協して使ってやるしかなさそうです。

単純に右回り/左回りということでなく、最初にどの直線を選択するかにも依存するので、とにかく3つの直線の選択順序をちゃんと覚えておくことが重要です。最初に選択する直線を同じにして、右回り/左回りを切り換えれば多分うまくいくはずです。

 

 

ブーリアン演算

は説明するまでないと思いますが、念の為以下に手順を図示しておきます。

範囲を選択_128(Partワークベンチ)⇒範囲を選択_145(ブーリアン演算ツール)

範囲を選択_146

 

 

 

終わりに

本記事を作成するにあたり、改めて公開情報を調べ直したところ、否定的な記事のあったサイトの別のページで、類似の代替方法も見つかりました。ご参考までの紹介ですが、ブーリアン演算するところは一緒ですが、対象のExtrudeオブジェクトを作る方法が異なっています。ここで紹介した方法が直感的で判りやすいとは思いますが、一発で確実に決められないところが難で、どちらでやるかはお好み次第でしょうか。

なお、一発で確実に決める方法なり、押出方向を逆にする方法なり、ご存知の方は是非ご一報のほど。

 

追記(2015/6/15)

早速FBのページにてアドバイスを頂きました。

範囲を選択_152

 

切断平面上でスケッチを作成し、これを押し出すというものです。もう一手間増えるのと、ワークベンチの切り替えが必要になりますが、スケッチは適当な大きさで作成すればよく、切断面が凹んだ物体でも対応可能。切断方向を任意に切り替えらえることも出来るので、まさしく切断ツールとなりますね。