吾生有涯 学海无涯
析模有界 知识无界

Fluent开发|03 为何要改用Python?

为何Fluent要用Python脚本而非继续沿用使用了几十年的Scheme脚本?

要说Fluent的开发环境,也的确是够乱的。UDF使用C/C++,界面和TUI使用Scheme,内部表达式又是用另外一种自己定义的语法结构。混乱的工具带来的是学习成本的增加。不过自从PyANSYS推出后,ANSYS的各模块也加速向Python靠拢,这当然也包括Fluent。

注:说起ANSYS的各模块开发使用的编程语言就更乱了,有javascript(如Mechanical、Meshing)、python(如SpaceClaim)、Scheme(如Fluent)、C(如Fluent)、Fortran(如CFX)、Tcl/Tk(如ICEM CFD)、CCL(如CFX、CFD-Post)等等,真的是一个群魔乱舞。做过ANSYS Workbench开发的人一干一个不吱声。不过就目前的趋势来看,这些模块都有向Python靠拢的迹象。

Python和Scheme都是解释型编程语言,也都常被用作大型软件的脚本语言。不过相比较Python而言,Scheme就显得非常小众了(Scheme语言是Lisp语言的一个方言分支)。在TIOBE计算机语言排行榜上,2025年3月份,Python高居第一,而Scheme排名第92位,Lisp排名第23位(见tiobe官网 https://www.tiobe.com/tiobe-index/) ,虽然榜单排名不能直接说明语言的功能强弱,但却可以反映出软件的受欢迎程度,也可以反映出语言的生态。

从以下一些方面进行简单比较Python与Scheme:

1. 语法设计

从语法设计的角度看,Python采用主流的命令式语法,其表达方式更接近于人类的自然语言,读起来更加方便,如python表达式a*b + c更符合人类的数学直觉。而Scheme语言使用前缀表达式(如(+ (* a b) c)),并且以大量的圆括号进行表达,对于新手极不友好。

2. 编程范式

Python可以支持多种范式(面向对象、过程式、函数式)。Scheme以函数式编程为核心。

3. 执行效率

同为解释型语言,Python与Scheme的执行效率都不算太高,不过它们都可以通过一些优化措施提高性能。但是在用于脚本程序时,制约效率的从来都不是脚本自身的执行速度。

4. 标准库与第三方支持

Python拥有庞大的标准库和第三方生态(如PyPI近40万个包),内容覆盖Web开发、数据科学、AI等领域。Scheme缺乏统一的标准库。

5. 社区与资源

Python拥有活跃的社区和丰富的教程,在工业界应用非常广泛。Scheme的社区较小,资源多集中于学术领域,实际项目支持较少。

再结合Fluent中脚本的使用方式进行考虑。我们在Fluent中使用脚本无外乎以下几个场景:

  1. 降低重复性操作。将GUI操作转换成脚本,这样就可以利用读入脚本的方式代替GUI的鼠标和键盘操作。而且脚本文件容易修改和阅读,用于同行之间技术交流也挺不错。就可读性而言,Python显然更有优势。
  2. 控制操作流程。有时需要在脚本中实现一些判断、循环等操作。Scheme语言没有循环语句,其使用递归来代替循环。这在通用编程中问题不太大,但是在脚本流程控制中就显得极为不便了。而Python显然更容易实现循环。
  3. 界面扩展。比如对现有的软件界面进行扩充,开发适合自己的工作界面。Scheme其实并不适合于开发界面,其界面开发需要依赖于Fluent原始内核,因为Fluent的GUI界面是通过Scheme开发的。比较麻烦的是,Fluent的GUI细节并不透明,现在想要开发Fluent GUI只能依赖于其提供的简易文档。而Python用于开发GUI的库就太多了,轻量级的Tkinter,中量的wxPython,重量的PyQt或PySide,这些都足以应付常规的GUI开发问题。

另外,将脚本语言从Scheme转换成Python,也更有利于与ANSYS其他模块之间的协同。


(完)

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Fluent开发|03 为何要改用Python?》
文章链接:https://www.topcfd.cn/40832/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册