最近一阵子都在做仿真二次开发相关的事儿,其中打交道最多的是脚本文件。
仿真流程自动化经常需要利用脚本文件,Fluent的脚本文件可以使用TUI、Scheme或Python,STAR CCM+的脚本文件使用java。不管使用何种形式,脚本文件主要目的都是记录用户的仿真操作流程。用户可以在脚本文件的基础上实现参数化仿真及自动化仿真。在二次开发过程中,脚本文件是构成仿真流程及实现仿真自动化的核心。这里简单聊聊Fluent和STAR CCM+的脚本文件。
Fluent的脚本文件主要有三种形式:TUI、Scheme或Python。
其中TUI形式主要为文本操作命令,为Fluent传统操作方式。虽然命令具有层次结构,比较容易看懂,但命令参数中众多的yes、no就比较难懂了。另外,TUI并非程序设计语言,难以单独实现参数化处理及流程控制。(不过TUI可以和scheme配合,可以在一定程度上弥补,但难度较大)
Scheme也是Fluent的传统操作方式。虽然Scheme是完善的程序设计语言,但此语言比较小众,属于Lisp语言的一种方言。做仿真的人很少有专门去学习此编程语言的。另外Scheme形式的脚本无法通过脚本录制获取,需要用户手动写入,这也提高了应用门槛。Scheme经常被用于TUI的补充,二者相互配合实现较为复杂的仿真流程控制。
Python形式的脚本是近几个版本推出的功能。Python属于比较大众的编程语言,各种教程资料也比较多,容易被用户接受。而且Python形式的脚本比较符合人类自然语言表达习惯,容易直接从脚本理解各种输入参数。Python形式的脚本也很容易改造成更复杂的参数化及流程控制版本,非常适合于二次开发。然而Python形式的脚本无法直接通过脚本录制获取,目前主要通过TUI脚本转化及手动编写两种形式获得Python形式的脚本。另外,Python形式的脚本在目前最新的Fluent 2025R2版本中依然只能在Beta功能中才能运行,未来会怎样,谁也说不清楚。就怕官方乱改,版本兼容性堪忧。
总体上讲,Fluent脚本虽然支持形式较多,但还远未达到理想的程度。还有极大地改进空间。
STAR CCM+的脚本文件主要是Java形式。
在STAR CCM+中,脚本文件可以通过录制的形式获取。用户在录制完毕后,得到的是一个Java类源代码,读懂代码需要有一定的Java基础。与Fluent脚本不同,STAR CCM+必须在录制完毕后才能看到脚本文件内容,而Fluent是在执行操作后马上就可以看到脚本文件内容。无法在操作完毕后直接看到脚本文件内容的变化不利于脚本调试,对于行数较多的复杂脚本尤其如此。
Java和Python一样,也是比较常用的编程语言,网络上关于Java的各种学习资料也非常多,学习成本相对较低。利用Java也可以很轻松地实现脚本参数化及复杂的流程控制。Java也可以做GUI界面,不过比较小众。