ParaViewでのSourceを利用した流線の書き方

ParaViewでのSourceを利用した流線の書き方

この記事はオープンCAE Advent Calendar 2022の1日目です。

背景、目的

先日、ParaViewでの流線の書き方について、新しく分かったことのがあったのでまとめておいて後から見返せるようにしたいと思った。

こういうメモは書けるときに書いていないと、後に思い出せなくなるので、物忘れ対策の一面もある。

基本的な流線の書き方

流線はStreamTracerで描画する。

image

StreamTracerでは流線の起点となるSeedにLineとPoint Cloudを選択できる。

image

Lineは指定した線上から流線を描画する。

image

Point Cloudは指定した球内に分布する点から流線を描画する。

image

どちらもNumber Of Pointsで指定した数字を起点の数として描画する。

image

特定の断面からの流線

特定のパッチやSlice面から流線を描画するにはStreamTracer With Custom Sourceが使用できる。

まず、流線の起点を置きたい断面を作る。

image

作った断面に対して、StreamTrace With Custom Sourceフィルタを適用する。フィルタを適用すると、InputとSeed Sourceを聞かれる。Inputには流線のもととなるデータを指定する。

image

次に、Seed Sourceには先ほど作った断面を指定する。

image

これでSliceを起点に流線が描画できる。

image

ただし、このやり方だと、StreamTracer With Custom SourceにNumber Of Pointsの項目がないため、流線の起点の数が指定できない。

そのため、SliceにMask Pointsフィルタを適用し、Mask Pointsの設定で起点の数を指定する。

image

起点の数はMask PointsのMaximam Number of Pointsの数を変えることで、コントロールできる。

image

また、起点についてはMask PointsのGenerate Verticesにチェックを入れておくと、可視化できる。

image
image

デフォルトではMask Pointsが生成するVerticesはメッシュによって位置が偏ることがある。

image

その場合はRandom Sampling にチェックを入れると、改善することがある。

image
image

流線を描画する際はSeed SourceにMask Pointsを指定する。

image

指定した点数の起点から流線が書ける。

image

その他Sourceからの流線

流線について、例えば、特定の一点だけから流線を書きたいとか、そういったことを考えた場合、StreamTraceで非常に小さい球を指定して書くとかを考えた。

ある意味パワープレイなので、可能なら座標を指定して流線を描画したいと思い、いろいろと調べているうちにStreamTracer With Custom Sourceに「Source」と入っていることに気が付いて、ParaViewのSourceから流線が書けるのではないかと考えた。

SourcesメニューからPoint Sourceを作成し、流体空間内に座標を変更する。

image

Stream Tracer With Custom SourceのSeed SourceにPoint Sourceを指定する。Stream Tracer With Custom SourceはPoint Sourceを選択している場合は選べないので、~.foamなど流体解析結果が含まれているデータを選択して適用する。

image

これにより、指定したPoint Source一点からの流線が描画できる。

image

同様に他のSourcesも流線描画の起点として使用できる。

Lineを使うと次のようになる。StreamTracerのSeedにLineを選択した時と似ている。

image

Sphereを使うとStreamTracerでSeedにPoint Cloudを指定したときと似たような感じなる。

image

他のSourceも流体空間内の流線の起点指定に使用できる。

まとめ

流線について、入門関係の記事ではStreamTracerを使った紹介が多く、より細かい描画の仕方については、まだ記事数が十分ではない気がするので、今回整理した。

ニッチな内容の可能性はあるが、PointSourceからの流線の描画などは、ケースによっては必要になるので、覚えておいて損はないと感じた。