目前,Python這門編程語言在全球范圍內(nèi)炙手可熱,而Python生態(tài)系統(tǒng)囊括了豐富的開源代碼庫,可供開發(fā)人員免費使用,以幫助創(chuàng)建全新的解決方案。PyAnsys代碼庫有助于開發(fā)人員在其Python項目中集成Ansys仿真,從而開辟了廣闊的新天地。
我們可以從這樣一種角度來理解仿真:它無需執(zhí)行現(xiàn)實世界的任務(wù),即可提供與其它物理方式相同的洞察信息。它可以在不破壞、甚至是未構(gòu)建昂貴原型的情況下對應(yīng)力進行測試。它無需構(gòu)建實際的溫度、壓力、電流或流動條件,即可在熱、電氣、流體等眾多領(lǐng)域中充分探索新設(shè)計的特性。我們無需創(chuàng)造實際的體驗,即可獲得與實際經(jīng)驗相同的洞察。假如當我們可能需要花費50或100年之久,或者需要破壞價值高達數(shù)百萬美元的原型才能獲得這些洞察信息時,這一優(yōu)勢就顯得尤為重要了。
在仿真環(huán)境中,人們需要執(zhí)行的唯一現(xiàn)實任務(wù)就是手動配置、運行以及共享仿真結(jié)果。
但是這種情況也在發(fā)生改變,這一切要得益于PyAnsys以及其它用于連接數(shù)字主線的Ansys解決方案。
PyAnsys是一系列Python軟件包,可幫助用戶以前所未有的方式與Ansys產(chǎn)品(包括MAPDL、AEDT等)進行交互。該軟件包可提供現(xiàn)代化的可編程接口,通過該接口,用戶不僅可以使用Ansys仿真堆棧編寫腳本,以進行各種多物理場仿真,而且還可以編寫工作流程腳本,將仿真與其它自動化操作相結(jié)合。
?
采用PyAEDT繪制的天線陣列輸出的3D極坐標圖
為什么選擇Python?
那么,為什么要選擇Python呢?長期以來,Ansys參數(shù)化設(shè)計語言(APDL)提供豐富的腳本與控制功能,支持與Ansys產(chǎn)品進行交互。用戶可以在APDL(或者Mechanical APDL [MAPDL],一種基于APDL創(chuàng)建的有限元分析程序)中編寫腳本,從而有利于仿真的設(shè)置、執(zhí)行和后處理。此外,Ansys定制化工具套件(ACT)也可提供眾多功能,以用于在Ansys Mechanical中控制和自動執(zhí)行仿真。
但僅此而已:用戶只能在這些工具中使用它們的腳本功能。此前,尚未有一種機制支持APDL、MAPDL或者ACT以外的通過可編程的方式與任何Ansys產(chǎn)品進行交互。
然而在2016年,情況有所轉(zhuǎn)變,一位名叫Alex Kaszynski的Python開發(fā)人員,同時也是Ansys MAPDL的用戶,他創(chuàng)建了一種代碼庫,能夠使用Python與MAPDL進行交互。當時,Python語言已成為學(xué)校開設(shè)的熱門課程,并受到無數(shù)開發(fā)人員的熱烈追捧,而且Python生態(tài)系統(tǒng)擁有豐富的公共與私有代碼庫,可供開發(fā)人員下載并用于創(chuàng)建自己的應(yīng)用。Kaszynski在GitHub在線開源代碼庫上發(fā)布了他的代碼庫PyMAPDL,以便感興趣的用戶可以下載,并將其功能整合到他們自己的MAPDL項目中。
用戶競相而來地下載這個代碼庫。PyMAPDL免費向用戶提供,然而當時如果用戶希望與Ansys MAPDL進行交互,則需要獲得該應(yīng)用的許可證,比較明確的事實是,Ansys用戶非常希望能夠以更豐富的可編程方式與Ansys仿真堆棧實現(xiàn)交互。
Ansys很快也了解到這種積極的需求,隨即聘請了Kaszynski并鼓勵他繼續(xù)之前的工作。
采用PyFluent對排氣歧管網(wǎng)格進行后處理
PyFluent后處理顯示了排氣歧管中流速的等值面
借助Python不斷前行
目前,這項工作仍在持續(xù)進行中。截至本文撰寫時,GitHub上的PyAnsys頁面(https://github.com/pyansys)提供了一系列軟件包,可用于通過“Python”方式與Ansys產(chǎn)品進行交互:
電子仿真:PyAEDT
固體力學(xué)仿真:PyMAPDL
流體仿真:PyFluent、PyFluent-Parametric、PyFluent-Visualization
后處理:PyDPF-Core、PyDPF-Post
材料管理:Granta MI BoM Analytics
此外,GitHub上的PyAnsys頁面還提供了一系列可訪問的共享組件,有助于提高軟件包的互操作性并最大限度地降低維護成本。
由于Python生態(tài)系統(tǒng)提供了代碼庫,用戶可以使用這些代碼庫創(chuàng)建具有定制用戶界面(UI)的Web應(yīng)用,而且可以從這些定制UI中輕松調(diào)用PyAnsys產(chǎn)品。這樣可以確?;赑yAnsys的項目具有高度易用性,因為用戶無需熟悉與每種Ansys產(chǎn)品相關(guān)的UI。即使是對于能夠訪問多種不同Ansys仿真工具的Python腳本而言,其用戶界面僅包含與自動化工作流程相關(guān)的選項和輸入需求。
一直以來,GitHub社區(qū)積極上傳基于PyAnsys的項目,以供他人使用,而Ansys對相關(guān)項目進行審核,并與開發(fā)人員展開合作,希望將其創(chuàng)意加入到全新的PyAnsys軟件包。在GitHub上,這些軟件包(以及完整文檔與代碼示例)將繼續(xù)以MIT授權(quán)的形式作為開源庫提供。
另外,Ansys Developer Experience數(shù)字平臺已經(jīng)推出,旨在鼓勵和支持更廣泛的開發(fā)者生態(tài)系統(tǒng)與Ansys進行交互。該平臺不僅包括開發(fā)人員門戶、同行交流論壇,并且能夠訪問Ansys文檔及工具,以便開發(fā)人員能夠快速啟動工作。這是Ansys首次提供專用平臺和資源,以支持開發(fā)人員使用Ansys新興技術(shù)。
Developer Experience平臺旨在促進開發(fā)者生態(tài)系統(tǒng)不斷發(fā)展壯大,同時通過更輕松地訪問相關(guān)資源和獲取技術(shù)支持來提升用戶體驗。
車床刀具的MAPDL容積圖
車床刀具的MAPDL模態(tài)主應(yīng)力
現(xiàn)實優(yōu)勢
對于全球的用戶而言,PyAnsys能夠帶來實實在在的好處。例如,德國系統(tǒng)設(shè)計與工程公司Bewind GmbH的工程團隊使用PyAnsys創(chuàng)建定制的自動化工作流程,從而能夠更準確、更高效地對其風(fēng)力渦輪機葉片進行疲勞評估。該方法利用Ansys求解器的預(yù)測準確度來驗證葉片的結(jié)構(gòu)可靠性和運行效率,可以節(jié)約大量時間和成本。
還有其他公司已相繼采用PyAnsys來實現(xiàn)重復(fù)、復(fù)雜仿真的自動化,例如那些可用于訓(xùn)練機器學(xué)習(xí)(ML)或人工智能(AI)系統(tǒng)的仿真。訓(xùn)練此類系統(tǒng)可能需要開展數(shù)千次仿真,如果可以通過Python腳本以編程方式管理仿真運行,那么管理這些仿真的執(zhí)行與分析將輕松得多。還有一些公司通過采用PyAnsys來幫助確保以完全相同的方式執(zhí)行重復(fù)的仿真,從而降低由于無法完美重復(fù)枯燥的復(fù)雜任務(wù)而造成人為錯誤的可能性。
通過使用Python優(yōu)化流程的功能,工程師有機會重新思考如何來執(zhí)行操作。例如,通過把復(fù)雜工作流程分解成可以使用獨立資源并行運行的多個任務(wù),Python腳本可以大幅縮短完成工作流程所需的時間。以前,結(jié)構(gòu)團隊、流體團隊和熱分析團隊之間可能需要持續(xù)協(xié)調(diào)和傳輸?shù)牟僮鳎▊鹘y(tǒng)上不同團隊需要按順序使用不同的工具運行仿真),現(xiàn)在可以在腳本中輕松捕獲,并且該腳本可以在相互連接的數(shù)字主線中與其它解決方案結(jié)合使用,從而提供所有團隊都需要的信息。
PyAnsys軟件包的可用性以及將Ansys仿真整合到更廣泛操作生態(tài)系統(tǒng)的功能,為最終用戶和開發(fā)人員開辟了新天地。當今許多公司都采用PyAnsys自動執(zhí)行現(xiàn)有流程,因為這些流程已知并且需要以特定方式執(zhí)行,所以這種方法行之有效。不過,PyAnsys也創(chuàng)造了一些新的機會,讓Ansys仿真堆棧能夠集成到從未嘗試的工作流程中。PyAnsys有望成為支持互連創(chuàng)新并最終推動數(shù)字化轉(zhuǎn)型的Ansys另一項新技術(shù)。
審核編輯:劉清
評論