中文引用格式: 马轶聪,牟泓宇,淮晓永. 基于服务架构的OpenFOAM求解客户端设计[J]. 电子技术应用,2023,49(3):124-129.
英文引用格式: Ma Yicong,Mou Hongyu,Huai Xiaoyong. Design of OpenFOAM solver client based on service architecture[J]. Application of Electronic Technique,2023,49(3):124-129.
0 引言
计算流体动力学(Computational Fluid Dynamics,CFD)是通过计算机数值模拟计算和图像显示,对包含有流体流动及热传导等相关物理现象的系统进行分析的一门学科[1],在工业设计中起到了重要的作用。经过几十年的长足发展,已有多款CFD商业软件(Fluent、CFX、STAR-CD/CCM+等)被应用于科研及实际生产中。由于商业软件在使用上有较高专业性要求且费用高昂,OpenFOAM作为一款开源免费的解算工具库被越来越多的科研人员所使用[2]。OpenFOAM软件配置过程灵活,可以通过自定义编程进行使用,但由于OpenFOAM仅支持通过命令行形式进行调用、无GUI图形交互[3]的原因,导致软件的使用效率较低,且新手使用时上手困难。同时,OpenFOAM仅为一些基本物理量提供设置及监控,对于其他物理量的监控则需要用户编程进行实现,提高了软件的使用门槛与操作难度。因此,针对于OpenFOAM的GUI功能开发也成为了提高软件使用效率的重要拓展方向之一。
由于解算软件功能复杂,现有的商业软件为满足大部分业务使用者的交互需求,开放了更多的参数设置接口,提高了GUI界面参数配置流程的复杂性。用户在进行求解参数配置时,需要考虑其他参数对当前工程解算的影响,增大了使用难度。因此,GUI定制化开发也成为了目前解算软件致力于解决的问题。除此之外,求解计算主要以网格为计算对象单元,为了获得更加准确的数值仿真结果,工程中需要将计算域划分为非常细小的网格单元,使得计算网格量通常可以达到千万甚至上亿的数量级。网格数量越多,计算时对CPU、内存等计算资源的需求也会越高。因此,大型复杂模型的仿真求解需要大量的计算资源进行支撑,提高软件使用效率。
为了解决OpenFOAM缺少GUI交互功能的问题,本文设计实现了一个OpenFOAM求解客户端,提供友好的用户交互界面。为了满足求解计算中对于大量计算资源的需求,设计了基于服务的“云+端”计算架构[4],设计开发了一个OpenFOAM求解器服务,将OpenFOAM求解器进行服务化封装,部署于云端,通过云端协同的方式实现远程云端解算服务调用、可视化服务调用。通过使用云端丰富的计算资源,满足用户使用场景需求,提高软件使用效率。同时,软件客户端使用界面模板进行求解设置界面的动态生成,支持用户界面自定义配置,满足了软件易维护、可拓展的特性。
本文详细内容请下载:https://www.chinaaet.com/resource/share/2000005241
作者信息:
马轶聪,牟泓宇,淮晓永
(华北计算机系统工程研究所,北京 100083)