在开源CFD代码中,SU2虽然不像OpenFOAM名气那么大,但SU2也有不少特色。今天聊聊SU2的配置文件。
和大多数开源软件一样,SU2目前也没有靠谱的GUI,虽然官方提供了一个基于trame与vtk的前后处理程序,但稍微体验两下就会觉得这是个半成品玩具,距离真正的工业GUI还有相当长的路要走。目前SU2的主要使用方式还是基于配置文件调用。
SU2的配置文件与OpenFOAM完全不同,其将仿真前处理的所有内容放置于一个模版式的配置文件中(config_template.cfg)。此文件内容非常多,最新的8.1版中,该文件包含注释一起总共2541行,从头到尾的看一遍都要用上不少的时间。
SU2的配置文件采用的是传统的Config文件格式,基本上每个关键字都进行了注释,对用户来说非常友好,在设置配置文件的时候不需要像OpenFOAM那样需要记忆一堆的关键字。
不过也不是没有缺点。最大的缺点在于模板配置文件中的内容过多,事实上在设置特定案例的时候只需要取配置文件中的一小部分即可,并非每次都要把模板配置文件都从头到尾的设置一遍。就比如说我只是计算一个纯粹的流动问题,那就犯不着把那些传热啊优化啊啥的都设置一遍。而到目前为止,SU2并没有针对一些特定的流动问题推出典型的设置文件。个人觉得可以将模板文件按功能模块分解成多个子文件,在使用过程中再按照需求组装成用于计算的cfg文件。
另外SU2使用的依然是传统的config文件,此文件是最简单的配置文件,不具备逻辑嵌套功能。若能改用yaml之类的配置文件,可能使用起来会更方便一些。目前尚不可知SU2读取配置文件采用的方法,不过利用C++读写yaml还是比较丝滑的。主要是还yaml可以将配置文件进行逻辑组织,使其更符合人类的阅读习惯。
不过,这种单一配置文件的开源求解器用来套壳是最爽不过了。搞个漂亮的GUI,然后将用户在GUI中输入的数据插入到模板配置文件中,快速形成特定问题的配置文件,简直不要太香。
SU2目前功能还是比较单一的,还是以流动和传热计算为主,以及围绕流动和传热而展开的旋转机械、流固耦合、伴随优化、动网格等,目前还不能处理多相流和化学反应流问题。