APP下载

面向云计算环境的后处理服务*

2022-07-21李佰文淮晓永高若辰蒋金虎

电子技术应用 2022年7期
关键词:等值线图等值后处理

李佰文 ,淮晓永 ,高若辰 ,陈 博 ,蒋金虎

(1.华北计算机系统工程研究所,北京 100083;2.一汽(南京)科技开发有限公司,江苏 南京 211100;3.复旦大学 大数据研究院,上海 200433)

0 引言

计算流体力学(Computational Fluid Dynamics,CFD)是流体力学、数值求解计算和计算机科学与技术结合的一门新兴交叉学科[1]。目前CFD 已被广泛应用于汽车、船舶、航空航天等多个工业设计领域[2-3]。

CFD 的基本结构一般分为前处理、数值求解和后处理分析三部分[4]。后处理分析是对求解器计算出的结果数据进行可视化,以直观的可视化方式呈现给用户[5]。

仿真模拟人员在后处理时往往需要面对大量抽象的时空物理量,整理分析这些数据将占据整个仿真模拟计算流程中的大部分时间。得益于计算机技术的发展,如今使用后处理软件处理仿真模拟计算结果已经非常灵活和直观。但复杂大型的计算流体动力学仿真后处理仍需要耗费大量的计算资源[6]。另外,研究人员常需要在不同的平台以不同的形式进行后处理分析。

针对目前CFD 软件后处理所需计算量较大、操作平台不灵活等问题,本文将后处理计术与云计算技术进行集成,设计了一个面向云计算环境的后处理服务模型,根据该模型基于ParaView 模块设计实现了一个面向云计算环境的后处理服务原型软件。

1 后处理服务模型

后处理分析的主要功能包括:残差图、等值面图、等值线图、矢量图、流线图、流场特征动画、仿真分析报告等[7]。

用户通过残差图了解求解过程中求解值的收敛特性;通过模型的等值面图、流场切面等值面图分析流场的速度、压力、温度、湍动能等在流场中的分布情况;通过速度矢量图、流线图分析了解流体在流场中运动特性[8];帧动画将流场分析的动态过程保存,以方便用户使用;仿真分析报告将较为全面的后处理分析结果整合在一个报告中供用户查阅。

WAMP(Websocket Application Messaging Protocol)是一种建立在Websocket 之上可以进行发布、订阅和远程调用的通信协议[9]。

根据后处理服务的主要功能需求,可以设计一个后处理服务模型,模型包含了常用功能的应用协议,客户端使用支持WAMP 的通信协议向服务端发送包含不同应用协议的信息即可完成对具体后处理服务的调用。最终实现后处理功能的服务化。

后处理服务模型如图1 所示。

图1 后处理服务模型

1.1 后处理服务应用协议

由后处理服务模型可知,由通信协议传递至服务端的信息,通过后处理服务应用协议调用具体的后处理计算功能。

根据后处理服务模型可以设计后处理服务应用协议类Postprocess Protocols,Postprocess Protocols 类中包含了后处理服务功能的应用协议与实现方法,不同的方法使用不同的应用协议,通过对类中协议与方法的添加与修改即可完成后处理服务功能的增加与修改。类中包含的主要协议及功能如表1 所示。

表1 后处理协议类的主要接口协议

1.2 基于服务的后处理分析流程

基于后处理服务协议和后处理服务模型建立一个后处理服务,通过Client Factory 管理客户端连接,当Client成功连接时则创建协议对象接收Client 请求执行相应计算功能。

基于本后处理服务模型的后处理分析流程时序图如图2 所示。

图2 后处理分析流程时序图

主要有如下步骤:

(1)客户端获取到流场工程列表,用户点击要打开的流场工程文件,服务器端执行打开操作进行图像渲染并将图像发送给客户端,客户端显示出几何模型的图像;

(2)用户点击想要使用的可视化功能按钮,客户端向服务器端发送新建可视化功能申请,服务器端接收到申请后将更新后的图像信息和可视化功能相关的设置项信息传送回客户端,最后客户端完成UI 界面的更新;

(3)用户调整几何模型及可视化功能的设置项,调整设置完成后应用设置项,此时客户端向服务区端发送更新设置项请求,服务器端更新图像信息并将信息返回至客户端,客户端接收信息后完成UI 的更新;

(4)用户点击想要使用的后处理其他功能,如生成帧动画等功能,客户端向服务器端发送相应的请求,服务器端接收到信息后执行相关指令,执行完成后将图像与结果返回给客户端。客户端再执行相应的显示功能。

2 后处理服务原型软件设计与实现

2.1 后处理服务原型软件总体设计

在后处理服务模型和协议的基础上,使用wslink 模块[10]作为通信协议,以Postprocess Protocols 作为应用协议,配合ParaView 等多个模块,设计实现一个后处理服务架构实例架构,如图3 所示。

图3 后处理服务架构

本后处理服务运行在Python3.7 及以上版本,服务包含了后处理使用的各种模块,如ParaView、Wslink、docx、ImageIO、Matplotlib 以及连接VTK 的库包vtkmodules 等。

Wslink 基于autobahn 实现了WAMP 协议,可以实现Python Server 与JavaScript 之间的双向通信。

ParaView 模块是一个用于构建科学可视化应用服务的Python 模块[11]。由于ParaView 模块提供了较为完整的图形处理接口,因此可以按需求使用ParaView 模块中的所需可视化算法构建后处理服务[12]。在本后处理服务中通过对ParaView 模块的图形处理接口,按照此前后处理服务模型的设计进行服务化封装,实现了后处理中与图形显示及操控有关的功能,如创建过滤器、获得设置项、应用设置项等。

2.2 后处理服务原型主要功能设计与实现

2.2.1 可视化功能相关设计项设计

根据需求本后处理服务需要提供等值面图、等值线图、速度矢量图与流线图4 种可视化功能,并且在可视化功能执行后客户端需要展示相应的设置项,因此需要对主要设置项进行设计。

本服务中针对不同的可视化功能的主要设置项设计如表2 所示。

表2 可视化功能主要设置项类型

等值面图中的等值面属性可以选择p 或u 等选项,等值面值是可以由用户输入的数值,服务在应用设置后则根据所选属性生成相应数值的等值面。等值面可以以点阵或者面的形式进行显示。

等值线图通过设置截面中心点3 个数值和截面法向量3 个数值来确定截面在空间中的位置。在生成的截面上会显示指定属性如p、u 或者k 的等值线。可以通过设置一个或多个等值线值调整截面上的等值线。

速度矢量图以箭头方向和不同颜色表示经过某些预设点的速度方向和大小,通常这些预设点的位置由求解计算过程确定。在速度矢量图中可以设置矢量箭头的放大比例和显示类型。矢量图显示类型可以选择面或者体两种,面类型下可以设置速度显示面的中心点和法向量,即展示包含在此面中的预设点的速度矢量箭头。体类型则直接展示此模型中所有预设点的速度矢量箭头。

流线图显示了流体质点具体的流动轨迹,可以设置显示类型和流线长度。显示类型包括线、面、体3 种。在线类型下输入一个点坐标即可显示通过此坐标点的流线图;在面类型下可以设置面中心点位置和法向量。此外在面或体类型下可以设置流线数量。

在完成本后处理服务提供的功能类型及对应设置项的设计之后,即可进行可视化相关协议方法的设计与实现。

2.2.2 基于过滤器的可视化功能

下面以创建等值线图功能为例,介绍功能方法的设计与实现。方法的实现主要包括三步:(1)对流场功能调用ParaView 模块的生成切面图过滤器展示某个流场切面;(2)在此切面内调用ParaView 模块的生成等值图过滤器完成等值线图的创建;(3)获取功能的设置项。具体实现如下:

客户端在选定工程的情况下通过通信协议向服务端发送创建等值线图消息,消息中包含工程参数;服务端收到消息开始执行创建等值线图功能,首先解析出客户端发送协议中的工程参数,根据参数创建对象,将此对象设置为活动实例,读取流场文件的数据信息,然后调用paraview.simple 中的创建流场切面过滤器方法为活动用例创建流场切面过滤器;从流场数据中根据默认等值线属性获得该属性值的数值范围,在数值范围取N 等分值,调用paraview.simple 中的创建流场等值图过滤器方法,并将N 等分值作为创建等值线过滤器的等值线值;调用simple.Show()和simple.Render()方法更新VTK 模块显示的图像;使用等值线图实例对象下的ListProperties方法获取对象中的所有属性名,然后循环遍历属性列表,根据列表中的值执行GetProperty 方法获得列表中属性值对应的具体设置项,将其中的属性值和设置项组成字典;最后将执行结果和字典发送给客户端。

程序基本流程图如图4 所示。

图4 创建等值面图程序流程图

2.2.3 生成残差图功能

当用户调用生成残差图协议方法时,服务端将生成能够反映选定工程在求解计算过程中求解值收敛情况的残差图。

方法执行后,首先打开当前流场工程中的残差数据文件,读取文件中的数据,将表头储存并根据表头将数据保存在列表中,再根据时间变量进行行列转换等预处理得到最终的绘图列表,对绘图列表调用Matplotlib 的plot 方法进行二维绘图,最后将图像发送给客户端进行展示。

2.2.4 帧动画功能

帧动画根据实现反映了流场的动态变化情况,实现中使用ParaView 模块实现了流场文件的读取,使用ImageIO模块完成场景动画的保存。

主要实现如下:方法执行后首先读取当前工程的流场数据,获得流场中的动画和动画步长;然后根据预设数据设置具体的属性与设置项,创建一个用来显示的观察器,将活动用例的数据显示在观察视角当中,调整观察视角的方位;再把所有动画步数的视角数据存入数组,调用ImageIO 模块的方法将数组中的数据保存到本地gif 文件;最后将帧动画数据打包返回客户端。程序基本流程图如图5 所示。

图5 生成帧动画程序流程图

2.2.5 生成仿真分析报告功能

仿真分析报告较为全面地整合了后处理分析结果,在功能实现中使用了paraview-docx 模块完成文档文件的创建与内容的添加。如使用Document 方法创建文档对象,使用add_heading 与add_paragraph 方法添加段落和标题,使用save 方法保存文档。主要实现步骤如下:

调用docx 模块中的Document 创建文档对象;根据网格划分数据和求解器参数设置生成工程概述段;读取残差图数据生成工程计算收敛图,将图片添加在残差图段落;在默认设置项下获取各个可视化分析图并保存在可视化分析段落。

3 后处理服务测试

将后处理服务部署在云端,用户可以通过客户端实现后处理分析功能。

这里通过一个基于React 框架的Web 后处理分析客户端对后处理分析服务功能进行测试,选择打开一个工程,如摩托车外流场仿真工程,验证创建等值面图、等值线图、矢量云图、流线图等可视化分析功能的可用性,然后验证生成残差图、帧动画和生成报告等功能的响应情况。

其中,生成等值面图及等值线图功能测试结果如图6、图7 所示。

经过测试,面向云计算环境的后处理服务能够给客户端提供后处理计算相关接口,满足了后处理分析需求;由于利用了云上的高性能计算资源,后处理计算效率也得到了有效提高。

图6 等值面图测试结果

图7 等值线图测试结果

4 结论

本文通过对ParaView 等模块进行服务化封装,设计实现了一种基于云计算环境的后处理服务框架。这种“云+端”的后处理服务架构同时具有服务器端的高性能和客户端的便捷性,实现了云端协同的优化计算,且具有良好的可扩展性。

猜你喜欢

等值线图等值后处理
车身接附点动刚度后处理方法对比
德国城乡等值化的发展理念及其对中国的启示
果树防冻措施及冻后处理
异步电动机等值负载研究
乏燃料后处理的大厂梦
如何来解决等值线问题
Surfer软件在气象资料自动成图中的应用研究
发动机排气后处理技术