CFD 可视化工作流程:Visit vs Paraview vs Tecplot 等

计算科学 可视化
2021-11-26 14:03:51

对于那些比我更熟悉这些工具的人,各种可用工具的优缺点是什么?现在我专门使用 Tecplot 进行 CFD 可视化,但它还有很多不足之处。矢量图形还可以,但不是很好,我不清楚如何让 LaTeX 正确生成原始字体。对于 2D 线图,我更喜欢 python/matplotlib 用于具有出色 LaTeX 可操作性的 pgf 图形,但 python 缺乏流场可视化的东西。在 Tecplot 中编写脚本是可以的,通过录制宏并编辑它们,复制相同的图形但使用不同的数据非常容易。它也很容易启动和运行。Paraview 和 visit 我没有用过任何重要的东西,而且他们似乎有很高的进入门槛。

对我来说,matplotlib 需要更多的学习才能开始,但在那之后,您可以在眨眼之间产生出色的出版质量矢量图,比在 Matlab 中更快更好。与 Tecplot 相比,paraview 或 visit 是否可以这样做?

换句话说,如果你有一个新的博士生,你会如何推动他们获得最佳质量的数据,你的工作流程会是什么样子?

2个回答

我大胆猜测,大多数计算科学领域的人都使用 Visit 或 Paraview 进行流可视化。这些只是我使用的两个最广泛使用的程序。

确实一开始有一点点障碍,但是我的学生用了一两节课后还是比较熟练的。如果您想观看如何使用它们的交互式演示,请在此处观看视频 11 和 32:http: //www.math.colostate.edu/~bangerth/videos.html

我不知道你为什么要为你的可视化使用矢量图形。它适用于 2D 情况,但在 3D 中我相信需要光栅图像。例如,在 Paraview 中,您可以导出为 PDF。此外,您可能会发现 Mayavi 很有趣。下一个示例生成一个矢量图像(请谨慎使用,这个简单示例为 1.8 MB)。

import numpy as np
from mayavi import mlab

# Test data: Matlab `peaks()`
x, y = np.mgrid[-3:3:50j,-3:3:50j]
z =  3*(1 - x)**2 * np.exp(-x**2 - (y + 1)**2) \
   - 10*(x/5 - x**3 - y**5)*np.exp(-x**2 - y**2) \
   - 1./3*np.exp(-(x + 1)**2 - y**2) 

surf = mlab.surf(x, y, z, colormap='RdYlBu', warp_scale=0.3, representation='wireframe', line_width=0.5)
mlab.outline(color=(0, 0, 0))
axes = mlab.axes(color=(0, 0, 0), nb_labels=5)
axes.title_text_property.color = (0.0, 0.0, 0.0)
axes.title_text_property.font_family = 'times'
axes.label_text_property.color = (0.0, 0.0, 0.0)
axes.label_text_property.font_family = 'times'
mlab.savefig("vector_plot_in_3d.pdf")
mlab.show()

在此处输入图像描述

作为最后的评论,我想说您可以在 Mayavi/Paraview、Tecplot 或 matplotlib 中生成良好的可视化,但您必须投入一些时间。

以下是 Paraview 中的一些示例:

在此处输入图像描述

在此处输入图像描述

http://www.paraview.org/gallery/