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