DEXCS2014 for OpenFOAM(R)公開版に向けて取組中

表題のプロトタイプ版を第33回オープンCAE勉強会@岐阜(夏合宿)にて試用したところ、取り立ててトラブルも無く、OpenFOAM-2.3.xを始めとする搭載コンポーネントの問題は無さそうとわかりました。そこで、今後の正式公開版に向けての実施項目がほぼ確定したのでここにアナウンスしておきます。

 

DEXCSランチャーの国際化対応

範囲を選択_999(509)

  • DEXCS2013では、日本語版と英語版で起動用ボタンが異なっていましたが、DEXCS2014では普通のソフトと同じように、メニューで切り替え、ソフトを再立ちげした時に反映するように変更しました。

 

メッシュ作成手順は、FreeCAD⇒cfMesh

DEXCSランチャーでの標準手順であった、Blender(+Swiftツール)⇒snappyHexMeshの部分を、FreeCADでモデルを作成して、cfMeshでメッシュ作成する手順に変更します。

範囲を選択_999(510)

  • プロトタイプ版では、cfMesh用設定ファイルの作成に一部手作業が必要でしたが、FreeCADのマクロ機能を使って自動作成できるようにする予定です。夏の合宿での演習テキスト(113ページ)では、まだポンチ図でしたが、現在のところ、上のようなGUI画面までは作成できています。

 

十徳ナイフはそろそろお役ご免

範囲を選択_999(511)

  • TreeFoamのアドオンとして十徳ナイフを残してきましたが、現在では半分ほどの項目はTreeFoamの機能で実現できてしまうので、今回はそれらをメニューから削除してしまいます。メニューの数は極力少なくした方が判りやすいので。
  • 一方、TreeFoamを数年使ってきてはいますが、やはりどうしてもコマンドライン入力が必要な場合も生じることがあり、そういう場合の痒いところに手が届く機能があれば、、、と思っており、まずは
    • Allrun, Allclear

くらいは、一々端末を起動しないで実行できるようにする予定。

 

動画チュートリアル

DEXCSランチャーの手順が変わるので、その部分は全面的な変更になります。それも含めて、このチュートリアル作成が一番手間のかかるところです。

 

その他

これまで通り、無償で公開しますが、広告収入が入る仕組みだとか、スポンサー(募集中)のロゴ入り冠版とかあっても良いのかなぁ、とも思っています。

foamyHexMeshとcfMeshによるメッシュ作成演習

第33回オープンCAE勉強会@岐阜(夏合宿)で実施した表題の演習テキストとケースファイル一式を公開します。

また、演習に使用したDEXCS2014 for OpenFAOM(R) プロトタイプ版のisoイメージは、製作実費+アルファ(主にサーバーのメンテナンス費用)で、3,000円の有償販売とさせて頂きますので、ご希望の方は「問い合わせページ」よりお申し込み下さい。

なお、上記演習のうち「swiftツールによるsnappyHexMesh作成演習」以外は、基本的にOpenFOAM-2.3.0以上と、cfMeshがインストールされた環境があれば、同梱のAllrunスクリプトで実行できる(上記 isoイメージが無くとも実施できる)はずなので、興味のある方はお試しください。

 

cfMeshの続き,fms形式ファイルについて

先の記事で、fms形式ファイルが有償のcfSuiteを使わないと作成できないと記しましたが、クロアチアの本場に行って体験してきた知人からコメントを頂きました。

surfaceFeatureEdges inputFileName.stl outputFileName.fms 

で作成できるそうです。⇒早速やってみましたが、確かに出来ました。

 

なんでこんな事に気づかなかったんだろう・・・を少々解説しておきます。

実はsurfaceFeatureEdgesというユーティリティがあることには気づいていましたが、OpenFOAMの件の(間違ったパラメタを意図的に指定するという)使い方によると、

–> FOAM FATAL ERROR:
unknown file extension x for file “Dexcs.x”. Supported extensions are ‘.ftr’, ‘.stl’, ‘.stlb’, ‘.gts’, ‘.obj’, ‘.vtk’, ‘.off’, ‘.dx’, ‘.smesh’, ‘.ac’ and ‘.tri’

From function triSurface::write(const fileName&, const word&, const bool)
in file triSurface/triSurface.C at line 496.

FOAM exiting

 

となって、.fmsはリストに上がって来ないのです。.ftr などは試して、面分割してくれることは確認できていたのですがねぇ。

 

実はfmsが使えた・・・ということなので、ソースコード(cfMesh-v1.0/utilities/surfaceFeatureEdges/surfaceFeatureEdges.C)がどうなっていたかを調べてみました。

if( outFileName.ext() == “fms” || outFileName.ext() == “FMS” )
{
Info << “Writing : ” << outFileName << endl;
originalSurface.writeSurface(outFileName);
}
else
{
triSurfacePatchManipulator manipulator(originalSurface);
const triSurf* newSurfPtr = manipulator.surfaceWithPatches();

Info << “Writing : ” << outFileName << endl;
newSurfPtr->writeSurface(outFileName);

deleteDemandDrivenData(newSurfPtr);
}

ということで、拡張子がfms(またはFMS)の時とそうでない場合の処理が異なっているということで、以上、一件落着しました。

cfMesh

少し前に表題のツールが公開されたので使ってみました。

結論から言うと、たいへん素晴らしいツールで、次のDEXCS2014 for OpenFOAM には搭載することに決定しました。

いくつかのチュートリアル問題も同梱されており、その試用結果イメージがM.OhbuchiさんのTwitter記事(たとえば、こちら)にも紹介されていたのですが、ここでは新規に作成する場合を想定、 何はともあれ、DEXCSランチャーでの標準チュートリアル問題(DEXCSの3次元フォント周りの流れ解析)にて作成したメッシュを、これまでの方法(snappyHexMesh)にて作成したメッシュとを比較してみました。

範囲を選択_926

また、実際にこれらのメッシュを使ってsimpleFoamで流れ解析した場合の収束状況と、y+についても比較してみました。

範囲を選択_932

snappyHexMeshでは、レイヤーメッシュが不完全で、コーナー部などで欠落し、その部分でy+の値が異常に大きくなってしまっていましたが、cfMeshでは連続的な分布となって、この事からもレイヤーに欠落がない事が確認できます。

ただ1点惜しむらくは、下の図で赤丸で囲った部分で、フォントの形状データがつながってしまっています。

範囲を選択_934

この際に使用した形状データは、stlもしくはftr形式のいわゆる表面形状データです。表面の細分化レベルをもう1段階細かくしてやれば、形状は区別できるようにはなりますが、どうしても対象形状に対して一様に細分化されてしまい、メッシュ数が大幅に増大してしまうことになります。

これに対して、表面データだけでなく輪郭線データを含んだfms形式のデータファイルを入力として使うと、下の図のように局所的な細分化の設定も可能になるようです。

範囲を選択_935

ちなみにこのデータは、今のところ、cfSuiteを使わないと作成できないようです。cfSuiteは有償(金額は不明)ですが、2週間のお試しライセンスがあるので、これを使って作成したものです。

 

詳しくは、来る7/26のオープンCAE勉強会@富山にてcfSuiteのデモも含めて紹介予定です。