OpenFOAM

【3次元ダムブレイク流体解析(OpenFOAM)】圧力データと水面高さの実機比較

surfaceFeatureExtract 障害物の特徴線の抽出

特徴線の設定は「system/surfaceFeatureExtractDict」ファイルで行います。
※system/surfaceFeatureExtractDictが無い場合は新規で作成してください。適当なチュートリアル($FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/system/surfaceFeatureExtractDict)からファイルを持ってきても良いです。

system/surfaceFeatureExtractDict

ターミナルで以下のコマンドを実行します。

実行すると「constant/triSurface/walls_mm_tr.eMesh」ファイルが作成されます。

特徴性がどの様にできたかを見たい場合はobjファイルに変換することでParaviewで見ることができます。
以下のコマンドで変換ができます。

walls_mm_tr.objファイルをParaviewで読み込んで確認しましょう。

カマキリ

特徴線の抽出ができました。

この特徴線を使って先ほど作成したベースメッシュから「walls_mm_tr.stl」形状を抜き出します。

「system/snappyHexMeshDict」ファイルで設定を行います。

system/snappyHexMeshDict

設定項目が多くすべて覚えることができないですが以下主要な部分の解説を行います。

ジオメトリの定義

こちらで「walls_mm_tr.stl」から面の名前や領域名などを指定しています。

面の名前を全て「walls」としてしまったのでわかりにくいですが、対応関係がわかるように以下のように色で区別してみました。色が同じところは同じ名前にしておかないとエラーもしくは正常にメッシュ作成が行えません。

castellatedMeshControlsの設定

ここでは、

  • features:特徴線の設定
  • refinementSurfaces:再分割領域←今回は再分割は行っていません。

の設定を行っています。
locationInMesh (2.0 0.5 0.5)はメッシュ作成領域の座標を指定するため、障害物内の座標を指定してしまうと障害物内部にメッシュが作成されてしまいます。必ず障害物より外の座標の指定を行う必要があります。

※冒頭の「castellatedMesh true」がtrueであることを確認してください。
Falseだと使わないことになります。

境界層の設定

以下で境界層の設定を行うことができますが、今回は使用していません。

※冒頭の「addLayers true」がtrueであることを確認してください。
Falseだと使わないことになります。

ファイルの設定が終わったら以下のコマンドを実行します。

snappyHexMeshは段階に分けてメッシュ作成を行うため、必要な最新メッシュだけを取り出す場合は、オプションで「-overwrite」を付けます。

では、Paraviewで結果を確認しましょう。

寸法や面の名前に間違いがないかを確認します。

checkMesh メッシュ品質の確認

ターミナルで以下のコマンドでメッシュ品質を確認しましょう。
テキストに書き出すと見やすいので「checkMesh.log」に実行結果を書き出します。

checkMesh.log

パッチ名の変更

system/createPatchDict

system/createPatchDict

メッシュの面要素のリストである境界名は「constant/polyMesh/boundar」に保存されています。変更前と変更後でファイルを確認してみましょう。

constant/polyMesh/boundary

変更前

 

変更後

Paraviewでパッチ名を確認してみましょう。

パッチ名が変更されていますね。
はじめからblockMeshで変更後のような面の名前にしておけばよいのですが、今回はcreatePatchを使った面の名前の変更を行う練習のためあえてこのような工程を踏みました。

1 2 3 4 5
関連記事もどうぞ

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です