为了对仿真结果进行可视化,可以使用可视化应用程序ParaView。 Paraview是一个高级的开源应用程序,可以用于可视化现场数据,在paraview.org/wiki/paraview上有很多关于它的使用信息。 为了避免重复,本节只提供了在Paraview中可视化OpenFoam模拟结果所需的最小信息量。

paraView允许用户对数据执行一系列过滤器并可视化各自的输出。过滤器支持不同的操作,例如: 流线的计算,将矢量场可视化为字形,计算等轮廓表面,仅举几例。一些提出的OpenFOAM后处理工具也可以在paraView中复制,例如从点和沿线采样数据。

Paraview有一个用于OpenFoam数据的本地阅读器,可以直接用于显示OpenFoam案例数据。 无需编译ParaFoam,使用ParaView还提供了利用上游软件最新Verion的机会。 使用ParaFoam的绕行仍然有效,但不再需要。 为了使用本机Paraview Reader,case目录中需要有一个以.foam结尾的文件。 通常,此文件的命名方式与模拟案例目录相同,但选择并不重要。

下面选取Interfoam的RisingBubble2D实例,介绍Paraview的一些最基本的工作原理。 这个案例可以在第4/RisingBubble2D章下的示例库中找到。 首先,为了生成可视化的数据,必须执行模拟:

blockMesh
setFields
interFoam
touch risingBubble2D.foam

最后一行命令在本节的上下文中很重要。 它生成一个后缀为“foam”的空文件,这是Paraview打开OpenFoam Case数据所需的。 最后,ParaView用于打开案例文件,并作为后台进程启动,使当前终端可以访问进一步的命令。

paraview risingBubble2D.foam &

请注意,如果ParaView二进制文件不在计算机的路径上,那么您可能必须使用完整的目录路径调用它。 下面显示了一个示例,但需要进行调整以表示ParaView的安装位置。

/path/to/install/ParaView-5.7.0/bin/paraview risingBubble2D.foam

一旦Paraview启动,就会出现RisingBubble2d.foam文件,如图4.5所示。 否则,可以通过Open对话将ParaView文件浏览器指向RisingBubble2d.foam文件来打开OpenFoam案例。 在Paraview图形用户界面(GUI)的左侧,向用户显示用于选择网格部分和要读取的不同物理场的选项。 此窗口名为Properties,如果关闭了它,可以使用视图下拉菜单重新激活它。 Properties视图显示在图4.5中。

图4.5:Paraview属性窗口

默认情况下,OpenFoam案例的内部网格和所有以网格为中心的物理场都被选择用于可视化。 当选择被接受时,通过单击属性窗口中的Apply按钮来读取物理场和网格。 可视化物理场的选择可以使用属性窗口上方的面板和管道浏览器,如图4.6所示。

图4.6:Paraview物理场和显示形式选择

最初,网格是用纯色着色的。 点击图4.6所示面板中的solid color卡,产生一个下拉菜单,其中包含所有可用的物理场。 初始时间步的alpha.water如图4.7所示。

图4.7: 可视化alpha.water

在Paraview中,使用过滤器处理物理场是一个非常简单的过程。 在图4.6中,最常用的过滤器显示为主面板底部的按钮。 其他筛选器可在主面板上的筛选器下拉菜单中使用。 涉及不同过滤器使用的文档很多,包括Paraview社区Wiki页面(paraview.org/wiki/paraview)和官方文档。

一种常用的过滤器是Contour过滤器,可以用于可视化两种流体之间的界面。 Contour过滤器基于标量场计算指定值的等值面。 在本例中标量场是alpha.water。 这种操作实际上与4.2节中描述的等值面采样实用程序相当相似。 可以从主菜单Filters → Common → Contour中选择筛选器。 标量场alpha.water必须被选择为parameter,而0.5则被选择为等高线值。 当所有设置都按需要定义时,单击Apply将在右3D视图中显示结果。 最后,XY平面上的界面线应该是可见的,类似于图4.8。

图4.8:可视化的alpha.water=0.5的iso-contour

Paraview中可视化的一个有趣方面是使用Selection Inspector枚举以单元格和/或点为中心的值和场数据的能力。 要开始,请确保在管道浏览器中选择了“rising-bubble-2d.foam”。 单击View-> Selection Inspector并在Selection Inspector窗口中,选中Invert Selection复选框。 在显示样式子窗口中,可以将选定内容的不透明度降低到0,以防止模糊单元格中显示的数值。 若要在每个单元格中显示alpha.water字段的值,请选择显示样式子窗口的单元格标签选项卡,并从标签模式下拉菜单中选择alpha.water。 在单元格标签中,可以指定所示值的格式,例如“%.1f”将是带有单个十进制数字的浮点格式。 图4.9显示了alpha.water字段的放大细节,显示的值以单元格为中心。

图4.9:alpha.water的可视化值

可以使用Paraview从顶部边界中提取值,而不是在4.2节中讨论的示例实用程序。 为了对patch进行采样,需要在Paraview中读取边界网格,而不仅仅是内部网格。 为此,在属性窗口的网格区域部分选择顶部补丁,如图4.10所示。

图4.10:读取顶部边界网格补丁

然后,通过使用Filter-> Alphabetical-> Extract Block Filter在Patches分支中选择顶部边界,将顶部补丁在管道中与大小写网格的其余部分隔离开来。 要直接绘制此补丁的数据而无需插值,请在管道浏览器中选择提取的块并选择Filters-> Data Analysis-> Plot Data。 在显示窗口(View-> Display)中,选择动态压力并跳到仿真的最后一个时间步。 结果图如图4.11所示。

图4.11:7s模拟时间顶部边界网格的动态压力

在本节中,提供了使用ParaView可视化应用程序的工作流的绝对最小部分。 欲了解更多详情,请查阅互联网上的材料以及官方文件。