使用OpenFOAM的同学都清楚,ParaView是与之搭配的后处理软件,功能非常强大。奈何它是一款开源软件(学习资料较少),再加上国内盗版软件横行,基本上后处理部分都被那几款有名的商业软件所把持,比如Tecplot、cfd-post、EnSight等等。
商业软件在易用性和稳定性上一般比开源的好很多,不过在功能上开源软件有时会更胜一筹,今天就介绍一下开源软件ParaView的那些事。
1、简介
- Paraview是一款开源、跨平台的数据处理和可视化软件,可以处理各种尺度的数据;
- ParaView可在分布式和共享内存的并行系统上运行,也可在单处理器系统,笔记本电脑和台式机工作站上运行;
- 它已在Windows、Linux、Mac OS X、IBM Blue Gene、Cray XT3以及各种Unix工作站和集群上成功通过测试;
- 它可以在超级计算机上分析千兆级大小的数据集;
- 它拥有成熟、特征丰富、灵活以及直观的用户界面;
- ParaView基于开放的标准建立了一种可扩展的架构;
- 有商业公司维护和支持;
- ParaView采用最自由的BSD许可证,从而允许用户免费使用;
- 数据探索可以交互的以3D或以ParaView批处理和Python脚本功能编程的方式完成;
- 在底层,ParaView使用VTK作为数据处理和渲染的引擎,使用Qt开发的用户界面;
- ParaView正在慢慢的变为科学可视化领域实际上的标准,在学术界、政府机构以及商业组织中被广泛使用;
- PavaView开发始于2000年,是洛斯阿拉莫斯国家实验室和Kitware公司之间的一个合作项目(James Ahrens领导);
- ParaView正在不断发展。 截至今天,主要贡献者有
2、ParaView术语
- 当安装上ParaView时,安装的一般是客户端,服务器,VTK库以及一些其他应用程序和库(pvpython,pvbatch,ParaWeb,Catalyst等);
- VTK提供基本的可视化和渲染算法;
- 为了提供渲染,并行处理,文件I/O和并行渲染等基本功能,VTK使用了几个额外的库;
- 大多数人实际上只是使用ParaView中一个小型客户端应用程序,它构建在一大堆为ParaView提供功能的库之上;
- pvbatch也是一个Python解释器,它为ParaView运行Python脚本。pvpython与pvbatch区别是,pvpython用于运行交互式脚本,pvbatch用于运行批处理脚本;
- ParaView服务器(pvserver)用于远程可视化。 此可执行文件执行所有数据处理,并可能执行渲染。 用户可以将ParaView连接到在HPC上远程运行的pvserver。 这使用户可以在自己的个人机上构建和控制HPC资源进行可视化及分析,就像在本地处理一样;
- 或者,用户可以使用pvdataserver和pvrenderserver。 这两个可以认为是pvserver分成的两个独立的可执行文件:一个用于数据处理部分(pvdataserver),另一个用于渲染部分(pvrenderserver)。 将pvsever拆分为单独的进程使得用户可以在单独的计算节点上执行数据处理和渲染。
3、ParaView架构
- Standalone模式
在独立模式下,客户端,数据服务器和渲染服务器都合并为一个串行应用。运行ParaView应用程序时,一般将自动连接到内置服务器,从而可以使用ParaView的全部功能。
- Client-Server模式
在客户端 - 服务器模式下,用户在并行计算机上执行pvserver程序并将它与ParaView客户端应用程序连接。pvserver程序同时嵌入了数据服务器和渲染服务器,因此数据处理和渲染发生在那里。客户端和服务器是通过socket连接的。
- Client-Render Server-Data Server模式
在此模式下,所有三个应用程序都在单独的程序中运行。客户端通过单独的一个socket连接到渲染服务器。渲染服务器和数据服务器通过多个socket进行连接,每个socket连接一个渲染服务器中的进程。
4、示例
下面展示一些由paraview处理的结果: