こんにちは(@t_kun_kamakiri)
OpenFOAMのメッシュ操作のユーティリティであるsubsetMeshについて解説を行います。
前回の記事ではtopoSetコマンドを使ってセルセットを作りました。
以上のような障害物があるセルセットを作成しましたが、今回はこちらのセルセットを元にsubsetMeshコマンドを使ってベースメッシュからセルセット部分を削除したいと思います。
subsetMeshコマンドを使ってメッシュの一部の取り出しを行う。
OpenFOAM初心者でチュートリアルを動かしたことがある方を対象にしています。
DEXCS2020
OpenFOAM v2006
sebSetコマンド
subsetMeshコマンド以下のコマンド実行することができます。
1 | subsetMesh –overwrite c0 –patch walls |
オプションは必要に応じてつけて実行します。
- -case dir
Specify case directory to use (instead of cwd) - -decomposeParDict file
Use specified file for decomposePar dictionary - -overwrite
Overwrite existing mesh/results files - -parallel
Run in parallel [Parallel option] - -patch name
Add exposed internal faces to specified patch instead of “oldInternalFaces” - -patches wordRes
Add exposed internal faces to closest of specified patches instead of “oldInternalFaces” - -region name
Specify alternative mesh region - -resultTime time
Specify a time for the resulting mesh - -zone
Subset with cellZone(s) instead of cellSet. The command argument may be a list of words or regexs - -doc
Display documentation in browser - -help
Display short help and exit - -help-full
Display full help and exit
今回使用したオプションは「-overwrite」と「-patch」です。
やっていることは以下のようなことです。
やっていることはblockMeshからセルセットの一部を取り出しです。
つまりblockMeshとセルセットの共通部分を取り出しているということですね。
なので今回はセルセットの形状そのものがblocMeshで作成されたメッシュから取り出されています。
取り出した際に内部にあった面は、デフォルトでは”oldInternalFaces” という名前の境界になります。しかし、「-patch」オプションの後に境界名を指定すれば、面の名前は指定した境界名になります。
今回はその他の境界名と同じ名前である「walls」という境界名にしました。
まとめ
今回はsebsetMeshコマンドでメッシュの一部取り出しを行いました。
次回は空気と水の初期状態を作るOpenFOAMのユーティリティsetFieldsの解説を行います。
参考書
PENGUINさんサイトを体系的に学べる書籍となっています。ネット記事でも十分勉強できるのですが、OpenFOAMの初学者でOpenFOAMをインストール済みであれば一冊持って置き、体系的に学ぶのが良いでしょう。
あとは初心者向けに丁寧に解説がされているこちらの書籍もお勧めです。最後の章にはオーバーセットメッシュ(重合メッシュ)の機能を使った解析を最後まで丁寧に解説しているので挫折することはないでしょう。