Skip to Main Content

      

Ansys博客

November 15, 2022

让Ansys的强大功能在Python领域大放异彩

目前,Python这门编程语言在全球范围内炙手可热,而Python生态系统囊括了丰富的开源代码库,可供开发人员免费使用,以帮助创建全新的解决方案。PyAnsys代码库有助于开发人员在其Python项目中集成Ansys仿真,从而开辟了广阔的新天地。

我们可以从这样一种角度来理解仿真:它无需执行现实世界的任务,‍就可提供与真实场景相关的信息。它可以在不破坏、甚至是未构建昂贵‍物理原型的情况下对应力进行测试。它无需构建实际的温度、压力、电流或流动测试条件,即可在热、电气、流体等众多领域中充分探索新设计的特性。我们无需创造实际的测试场景‍‍事件,即可获得与真实场景相同的内部详细信息。‍在当我们可能需要花费50或100年之久,或者需要破坏价值高达数百万美元的物理原型才能获得这些内部运行信息时,‍仿真这一优势就显得尤为重要了。

在仿真环境中,人们需要执行的唯一现实任务就是手动配置、运行以及共享仿真结果。

但是,甚至这种情况也在发生改变,这一切要得益于PyAnsys以及其它用于连接数字原型的Ansys解决方案。

PyAnsys是一系列Python软件包,可帮助用户以前所未有的方式与Ansys产品(包括MAPDL、AEDT等)进行交互。该软件包可提供现代化的可编程接口,通过该接口,用户不仅可以使用Ansys仿真堆栈编写脚本,以进行各种多物理场仿真,而且还可以编写工作流程脚本,将仿真与其它自动化操作相结合。 

3D polar plot of antenna array output using PyAEDT

采用PyAEDT绘制的天线阵列输出的3D极坐标图。

为什么选择Python?

为什么选择Python?长期以来,Ansys参数化设计语言(APDL)提供丰富的脚本与控制功能,支持与Ansys产品进行交互。用户可以在APDL(或者Mechanical APDL [MAPDL],一种基于APDL创建的有限元分析程序)中编写脚本,从而有利于仿真的设置、执行和后处理。此外,Ansys定制化工具套件(ACT)也可提供众多功能,以用于在Ansys Mechanical中控制和自动执行仿真。但‍也仅此而已:用户只能在这些工具中使用它们的脚本功能。此前,尚未有一种机制支持通过APDL、MAPDL或者ACT以外‍‍的、可编程的方式与Ansys产品进行交互。

然而在2016年,情况有所转变,一位名叫Alex Kaszynski的Python开发人员,同时也是Ansys MAPDL的用户,他创建了一种代码库,能够使用Python与MAPDL进行交互。当时,Python语言已成为学校开设的热门课程,并受到无数开发人员的热烈追捧,而且Python生态系统拥有丰富的公共与私有代码库,可供开发人员下载并用于创建自己的应用。Kaszynski在GitHub在线开源代码库上发布了他的代码库PyMAPDL,以便感兴趣的用户可以下载,并将其功能整合到他们自己的MAPDL项目中。 

吸引大量用户下载这个代码库。PyMAPDL向用户免费提供,然而当时如果用户希望与Ansys MAPDL进行交互,则需要获得该应用的许可证,比较明确的事实是,Ansys用户非常希望能够以更丰富的可编程方式与Ansys仿真堆栈实现交互。

Ansys很快也了解到这种积极的需求,随即聘请了Kaszynski并鼓励他继续之前的工作。  

Exhaust manifold mesh postprocessing using  PyFluent

采用PyFluent对排气歧管分析进行后处理

PyFluent postprocessing  showing an iso-surface of the velocity of flow in an exhaust manifold

PyFluent后处理显示了排气歧管中流速的等值面

借助Python不断前行

目前,这项工作仍在持续进行中。截至本文撰写时,GitHub上的PyAnsys页面提供了一系列软件包,可用于通过“Python”方式与Ansys产品进行交互:

  • 电子仿真:PyAEDT
  • 固体力学仿真:PyMAPDL
  • 流体仿真:PyFluent、PyFluent-Parametric、PyFluent-Visualization
  • 后处理:PyDPF-Core、PyDPF-Post
  • 材料管理:Granta MI BoM Analytics

此外,GitHub上的PyAnsys页面还提供了一系列可访问的共享组件,有助于提高软件包的互操作性并最大限度地降低维护成本。

由于Python生态系统提供了代码库,用户可以使用这些代码库创建具有定制用户界面(UI)的Web应用,而且可以从这些定制UI中轻松调用PyAnsys产品。这样可以确保基于PyAnsys的项目具有高度易用性,因为用户无需熟悉与每种Ansys产品相关的UI。即使是对于能够访问多种不同Ansys仿真工具的Python脚本而言,其用户界面‍也仅包含与自动化工作流程相关的选项和输入需求。

一直以来,GitHub社区积极上传基于PyAnsys的项目,以供他人使用,而Ansys对相关项目进行审核,并与开发人员展开合作,希望将其创意加入到全新的PyAnsys软件包。在GitHub上,这些软件包(以及完整文档与代码示例)将继续以MIT授权的形式作为开源库提供。

另外,Ansys Developer Experience数字平台已经推出,旨在鼓励和支持更广泛的开发者生态系统与Ansys进行交互。该平台不仅包括开发人员门户、同行交流论坛,并且能够访问Ansys文档及工具,以便开发人员能够快速启动工作。这是Ansys首次提供专用平台和资源,以支持开发人员使用Ansys新兴技术。Developer Experience平台旨在促进开发者生态系统不断发展壮大,同时‍,‍提供更轻松地访问相关资源和获取技术支持‍的途径,‍以提升用户体验。 

MAPDL volume plot of a lathe cutter

车床刀具的MAPDL容积图

MAPDL modal principal stresses of lathe cutter

车床刀具的MAPDL模态主应力

现实优势

对于全球的用户而言,PyAnsys能够带来实实在在的好处。例如,德国系统设计与工程公司Bewind GmbH的工程团队使用PyAnsys创建定制的自动化工作流程,从而能够更准确、更高效地对其风力涡轮机叶片进行疲劳评估。该方法利用Ansys求解器的预测准确度来验证叶片的结构可靠性和运行效率,可以节约大量时间和成本。

还有其它公司已相继采用PyAnsys来实现重复、复杂仿真的自动化,例如那些可用于训练机器学习(ML)或人工智能(AI)系统的仿真。训练此类系统可能需要开展数千次仿真,如果可以通过Python脚本以编程方式管理仿真运行,那么管理这些仿真的执行与分析将轻松得多。还有一些公司通过采用PyAnsys来帮助确保以完全相同的方式执行重复的仿真,从而降低由于枯燥复杂的重复任务而造成人为错误的可能性。

通过使用Python优化流程的功能,工程师有机会重新思考如何来执行操作。例如,通过把复杂工作流程分解成可以使用独立资源并行运行的多个任务,Python脚本可以大幅缩短完成工作流程所需的时间。以前,结构团队、流体团队和热分析团队之间可能需要持续协调和传输的操作(传统上不同团队需要按顺序使用不同的工具运行仿真),现在可以在脚本中轻松捕获,并且该脚本可以在相互连接的数据流中与其它解决方案结合使用,从而提供所有团队都需要的信息。

PyAnsys软件包的可用性以及将Ansys仿真整合到更广泛操作生态系统的功能,为最终用户和开发人员开辟了新天地。‍如今‍,许多公司都采用PyAnsys自动执行现有流程,‍而这些流程‍是已知‍的并且需要以特定方式执行,所以这种方法行之有效。不过,PyAnsys也创造了一些新的机会,让Ansys仿真能够集成到从未尝试的工作流程中。PyAnsys有望成为支持互连创新并最终推动数字化转型的‍又一项Ansys新技术。

欢迎访问Ansys Developer Experience网站。