粒子追跡について

335 views
Skip to first unread message

尾村

unread,
May 22, 2022, 11:18:59 PM5/22/22
to OpenFOAM
現在、OpenFOAMを勉強中で、まだわからないことが多く困っており質問させていただこうと思います。
まず、今使用しているバージョンは、OpenFOAMv-2112です。
そして粒子を含んだ計算を行いたいと思っています。
そこで、ある断面を通過する粒子の質量や数を出力したいのですが、そういった設定はあ りますでしょうか。(kinematicCloudPropatiesに追加する文面など)
想定しているのは、以下のリンクにあるような感じです。断面の粒子質量を見ています。

川畑真一

unread,
May 23, 2022, 9:13:32 AM5/23/22
to OpenFOAM
最近粒子系ソルバ使ってないのでうっすらとした記憶を頼りにですが
kinematicCloudPropaties内のcloudFunctionsに
patchPostProcessingの処理を書けば粒子関連のデータをパッチで出力できた気がします。

patchPostProcessing1
    {
        type patchPostProcessing;
        maxStoredParcels 10000;
        patches ( outlet );
    }

patchPostProcessingで調べると、
情報出てくるかと思いますので、
記述などはそのあたりの情報を追ってもらえばと思います。

求めているデータが出てくるかは
今は回答できないので
試していただければと思います

2022年5月23日月曜日 12:18:59 UTC+9 尾村:

尾村

unread,
May 28, 2022, 2:29:36 AM5/28/22
to OpenFOAM
有益な情報ありがとうございます。
今、粒子のデータを出力させたい部分は以下の写真のようにpatchを設定していません。なので、断面を指定してデータの出力ができればいいのですが、まだそのような情報にはたどり着けていません。

また、一度、出力したい断面の部分にpatchを新たに作成して、教えていただいてようにkinematicCloudProperties内に設定を書き込み計算を行いました。しかし、patchがあることで粒子が通過せず行いたい計算ができませんでした。
まだopenfoamの経験が浅いため、厚かましいとは存じますが、粒子が通過できるpatchの設定や、断面での出力が可能であればご教授いただきたいです。
よろしくお願いいたします。postprocessingimage.png
2022年5月23日月曜日 22:13:32 UTC+9 hamma...@gmail.com:

mmer547

unread,
May 30, 2022, 6:39:11 AM5/30/22
to OpenFOAM
検証する時間がとれていないので
情報だけですが、

faceZoneを用いるポスト処理もあるようなので、
リンクを貼ります。


faceZoneについてはPenguinitisさんのところに、そのものズバリではないですが
ヒントになる記事ありますので、共有いたします。


ご参考になれば幸いです。

2022年5月28日土曜日 15:29:36 UTC+9 尾村:

mmer547

unread,
May 30, 2022, 10:05:38 AM5/30/22
to OpenFOAM
ちょっとj時間できたのでやってみましたが、facePostProcessingは
質量流量は出るみたいですが、個数は出てきませんでした。

簡単に検証したインプットとpostProcessingに出力される結果ファイルを貼ります。

2022年5月30日月曜日 19:39:11 UTC+9 mmer547:
column.7z
facePostProcessing_countFace.dat

尾村

unread,
May 30, 2022, 11:44:40 PM5/30/22
to OpenFOAM
有益な情報、また、実際に計算までしていただき本当にありがとうございます。
自分でも計算を実行し、postProcessingに結果が出力されていることを確認しました。
お忙しいところ恐縮ですが、いくつか質問がありますのでここに書かせていただきたいと思います。

①VTKファイルの見方について
粒子の情報をできるだけ多く知りたいのでPenguinitisさんのサイトを参考に、計算してくださったcolumnのconstant以下にparticleTrackDictを作成しました。計算後に$steadyParticleTracksを実行しVTKの出力までは行えたのですが、praviewでの表示方法が分からず、以下の写真(Penduinitisさんのサイトから)のようになりません。ほかのサイトも調べてみたのですが、まだ写真のように見れていません。
particleTrack.png

②透過壁について
以前、patchPostProcessingを利用するために、patchを作成したのですが粒子が通過しませんでした。そこでPenguinitisさんのサイトを参考に、createBafflesDict で境界面のタイプを cyclicに指定し断面のパッチを作成しました。しかし、粒子はパッチを通過しませんでした。今のところ粒子が通過するような透過パッチは作成できないのでしょうか。

知識が少なく、質問が初歩的なものかもしれないですがご教授いただければ幸いです。

2022年5月30日月曜日 23:05:38 UTC+9 hamma...@gmail.com:

尾村

unread,
May 31, 2022, 4:22:27 AM5/31/22
to OpenFOAM
②で参考にしたサイトのリンクを添付し忘れていたので、添付させていただきます。
2022年5月31日火曜日 12:44:40 UTC+9 尾村:

mmer547

unread,
May 31, 2022, 11:05:32 AM5/31/22
to OpenFOAM
VTKファイルは出力されているのだとしたら、ParaViewでそのまま読めば表示できると思います。
見えないのだとしたら、結果表示変数を選択しておらず、Solid Colorになっているのではないでしょうか?
もしくは線が細すぎて見えていないだけかもしれません。

また、試しにやってみましたけど、Cyclicでも粒子は通過します。
設定やログにエラーやワーニングが出ていないか、
境界条件もご確認ください。

通過している粒子の情報、フェイスでの流量出力もできてはいます。
(あっているかはわかりませんが)

適当に作ったインプットも置いておきます。


なお、うまくいってないインプットはイメージでお伝えいただくのではなく、
実際のファイル群を添付された方がよいかと思います。
テストケース作るのは大変なので……
(出せないものもあるとは思いますが)

2022年5月31日火曜日 17:22:27 UTC+9 尾村:
column_ami.7z
Animation5.gif

尾村

unread,
Jun 3, 2022, 2:35:30 AM6/3/22
to OpenFOAM
ありがとうございます。
テストケースの件ですが、自分はMPPICInterDyMFoamを以下のサイトと同じように作成し実行しているので、MPPICFoamやMPPICDyMFoamでテストケースを作ろうと試みましたが技量が足りずうまく作成できませんでした...。

申し訳ありませんが、MPPICInterDyMFoamのテストケース、log、動画を添付させていただきます。logでは最初の方にワーニングが出ていましたが、これがpatchを通過しない原因になっているかはわかりませんでした。
実際行っているケースは複雑なので単純化したテストケースを作成しています。
テストケースの内容としては、容器の中に水、空気が入っており、その中に穴の開いた円筒があります。その円筒を回転させておき、円筒の底を通過する粒子(水より軽い)のデータをみるというものです。円筒の底には、snappyHeXMesh、createBafflesを通してcyclicのPatchを作っています。円形の断面を作りたいので、円形のcyclicpatchをtoposet、creaateBafflesで作れれば通過するのかもしれませんが、この方法しか作成方法が分からず、columnのテストケースのように作成できていません。

動画を見るといくつかの粒子は円筒を通っていますが、これはcyclicのPatchがすこし荒く完全に円筒の底を覆っていないためだと思います。(ほとんどはcyclicに阻まれている)

様々な記事を参考にし、自分なりに作成したものなので、おかしいところは多々あると思いますが今回の問題について検討していただければ幸いです。
長文失礼いたしました。


2022年6月1日水曜日 0:05:32 UTC+9 hamma...@gmail.com:
moveHole.zip
moveHole.mov
log.MPPICInterDyMFoam

尾村

unread,
Jun 3, 2022, 2:57:33 AM6/3/22
to OpenFOAM
VTKファイルのParaViewでの読み込みについてですが、 $steadyParticleTracksを実行すると0.01、0.02、0.03...のようにそれぞれのフォルダーができその中にVTKファイルが出力されます。粒子の追跡データを見たいときはこれらのVTKファイルをすべて読み込むのですか?(paraviewを起動してひとつひとつのVTKファイルをドラッグ)。
ある一つのVTKファイルを読み込んだ場合、(例えば0.3の中のVTKファイル)、結果の表示をUにしても何も表示されませんでした。Glyphにかけると粒子は見えます。

簡単なこともできていないかもしれませんが、こちらについてもご教授いただければ嬉しいです。

2022年6月3日金曜日 15:35:30 UTC+9 尾村:
Reply all
Reply to author
Forward
0 new messages