CGNS形式のメッシュをOpenFOAMで使いたい

199 views
Skip to first unread message

kominami

unread,
Dec 23, 2024, 1:53:43 AM12/23/24
to OpenFOAM
CGNS形式のメッシュをOpenFOAMで使いたい。

OpenFOAMerのみなさん、こんにちは。
kominamiです。

CGNS形式のメッシュをOpenFOAMで使いたいため、調べてみました。しかし、見つかるのは古い情報ばかりでした。
そこで、CGNS形式のメッシュをOpenFOAMで使う方法に心当たりのある方がいらっしゃるならば、お手数ですが御教示いただきたく、よろしくお願いします。


== とりあえず、ここまでで調べたこと ==

もともとは、下記のプロジェクトがありました。
ただし、OpenFOAM 1.4.1/1.5/1.6/2.0 を前提にしています。
ソースコードをダウンロードして、ubuntu 10.04 LTSでビルドする作業の手順が記載されています。(成功すると、cgnsToFoam と foamToCGNS ができるそうです。)
https://openfoamwiki.net/index.php/Sig_Turbomachinery_Utilities_CGNS_Converters


OpenFOAM 5.* を前提に、ubuntu 14.04 LTS や CentOS 7 でビルドできるようにしたFork版も見つかりました。(それでも10年前です。)
https://github.com/wyldckat/cgnsToFromFoam


CGNSのgithub にも見当たりません。
https://github.com/CGNS/CGNS/discussions?discussions_q=openfoam


いつに書かれた記事かは判りませんが、汎用のオープン仕様で、多くのCFDソルバーがサポートしていながら、OpenFOAMは未サポートだと書いてあります。
https://cfd.university/learn/the-complete-guide-to-structured-and-unstructured-mesh-reading-using-cgns/what-is-the-cgns-format-and-how-to-get-started/


== 質問 ==

表記のように、CGNS形式のメッシュをOpenFOAMで使う方法を教えてください。

※ ideasUnvToFoamというユーティティがありますが、もとのUNV形式はピラミッド要素に対応していません。CGNS形式はピラミッド要素に対応していて、foamToCGNSはピラミッド要素も変換できるというのを、むかしに、実際に試したことのある方から伺っています。


最近のDEXCS 202*for OpenFOAMの端末環境を前提にしたビルドの実績でもかまいません。(OpenFOAM v2106/v2206/v2306/v2406,10,12 あたりです。)

もしかして、都合よく、foamToCGNSのdebパッケージがネットの中にあったりしませんか?

もしかして、最新のgmeshだと、CGNS形式を読み込んで、OpenFOAM用の形式で出力できたりしないでしょうか?



以上、よろしくお願いします。

H‐Tsubota@xsim.info

unread,
Dec 24, 2024, 2:47:02 AM12/24/24
to OpenFOAM
試したことはありませんが meshio ( https://github.com/nschloe/meshio )がCGNSに対応しているので、
meshioで CGNS→VTK or MSHに変換し、vtkUnstructuredToFoam or gmshToFoam でOpenFOAM形式に変換すればできるかもしれません。

一番確実なのは自分でcgns→OpenFOAMの変換プログラムを書くことだと思います。
10年ほど前に仕事でやったことがありますが、各要素の面を取り出してOpenFOAM形式で羅列するだけなのでそれほど難しくなかった記憶があります。


2024年12月23日月曜日 15:53:43 UTC+9 kominami:

Hideaki Kominami

unread,
Dec 26, 2024, 11:00:20 AM12/26/24
to open...@googlegroups.com
H-Tsubotaさん

kominamiです。
御教示いただき、ありがとうございます。

meshio を使ってみました。

1)Salomeを使って、テトラとピラミッドが混在したメッシュを作成しました。このときOpenFOAM用メッシュに変換後の面パッチとなるよう、Groupe of Facesも作成しました。

2)Salomeで、cgns ,medの各型式でエクスポートしました。
  エクスポートしたファイルを、再度インポートした結果、問題ありません。

3)meshioでの変換の結果は下記です。
  cgns からの変換は失敗しました(Expected "Base" in file. Malformed CGNS?  Error: Couldn't read file Mesh_1.cgns as cgns)
  med からの変換は成功しました。
     vtk形式へは成功。しかしmsh形式へは失敗(ansys形式に変換しようとして、何かエラーが出ています。)

4) vtkUnstructuredToFoam で、vtk形式のファイルからOpenFOAMのメッシュへの変換に成功しました。
   ただし、出発しているmedファイルがバイナリのため、3)の直後ではvtkファイルがバイナリーになっています。事前にvtkをバイナリーからアスキーに変換しておかないと、 vtkUnstructuredToFoamがエラーを出力します。

5) 変換後、paraFoamで読み込んで、メッシュが表示されました。
  ただし、面パッチの情報が欠落しています。(polyMesh/boundaryファイルにも無し)

※ Meshiがサポートしているファイル形式とOpenFOAMのユーティリティから、Salome作成したメッシュをOpenFOAMに持ってくるには、上記の経路しかなさそうです。

===========
Meshoは 5.3.5
python は 3.10.12(Meshioがサポートしているバージョンです)
Salome は、windows版の9_6_0
===========

以上、現時点での状況です。

2024年12月24日(火) 16:47 H‐Tsubota@xsim.info <haruka....@gmail.com>:
--
このメールは Google グループのグループ「OpenFOAM」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには openfoam+u...@googlegroups.com にメールを送信してください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/openfoam/27318c08-d5c9-4d1e-a190-79433ec7ea6fn%40googlegroups.com にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages