在 Paraview 中画截面上的流线

paraview 的 Stream Tracer 无法直接作一个截面上的流线。比如,对于OpenFOAM的算例,即使是二维算例,截取一个面后,用 Stream tracer 无法得到流线。解决办法是存在的,本篇介绍如果通过一系列 filter 的组合来得到截面上的流线。

以 pitzdaily 算例为例,步骤如下:

  1. 作一个截面(slice),这一步不需详述

  2. 对截面使用 Surface Vector filter,这个的作用是让速度矢量投影到平面上。

  3. 对得到的 SurfaceVector 使用 Mask Points filter,这个的作用是生成一系列参考点,将来画流线的时候,以这些参考点的位置来确定流线的位置和疏密。

    On Ratio 参数控制取点的疏密,这里的设置,表示每2560个点中取一个;Maximum number of points 控制总点数的数目;Random Sampling,开启随机取点模式,如果是非随机模式,将按坐标从小到大取点。假设 On Ratio = 2560 情况下,一共有1000个点,但是 Maximum number of points 设置为 100,那么将只取坐标最小的前100个点,而如果开启了随机模式,则点的分布基本上是均匀充满这个流动区域的。Generate Vertices,选择是否要显示参考点,如果开启,则会显示一个点阵。

  4. Filter 里选择 Stream Tracer with Custom Source,Input 和 Seed Source 分别按下图设置

就得到了如下的流线图,流线的疏密,可以通过Mask Points 的点数来控制,只是,遗憾的是点数的空间分布不好控制,比如,我想让中间部分稀疏一点,角落上密一点,不容易做到。另外,还需要注意左边 Pipeline,出现了三个 StreamTracerWithCustomSource,似乎这三个其实是一个,改变任意一个都会改变流线的属性。