高 翔,張 翔,徐傳福,劉 杰,龔春葉
(1.國防科技大學計算機學院,湖南 長沙 410073;2.國防科技大學高性能計算國家重點實驗室,湖南 長沙 410073)
科學工程計算是20世紀后半葉出現(xiàn)的新型交叉學科,旨在利用計算機探索科學原理,是除了理論和實驗之外的第3種科學手段,極大地延伸了人的計算能力[1]。近幾十年來,它一直是自然科學和工程科學領域的熱點,特別是以計算數(shù)學為基礎形成的計算力學、工程設計等諸多交叉學科。相比以往理論和實驗學科,這些新型學科注重工程應用中的實際問題。典型地,計算機輔助工程CAE(Computer Aided Engineering)是利用計算手段有機組織包括航空、航天、造船、機械等重大工程項目中的各個制造環(huán)節(jié)。因而,研究科學工程計算對于解決實際問題具有不可估量的實用價值。
當前計算流體動力學、電磁學、通信仿真、計算機圖形學等皆已成為科學工程計算領域的主流學科。這些學科領域的許多重要系統(tǒng)最終歸結為偏微分方程PDE(Partial Differential Equation)的數(shù)值求解。典型的PDE數(shù)值求解方法包括有限元FEM(Finite Element Method)、有限體積法FVE(Finite Volume Method)、有限差分法FDM(Finite Difference Method)等[2]。在運用這些數(shù)值求解方法前,一步關鍵的前處理操作就是如何將連續(xù)的幾何模型網格化,即網格生成(Mesh Generation),又稱為網格劃分。網格生成是按照求解條件、材料特性等限制因素將給定幾何區(qū)域劃分成有限個基本幾何形體,一般將二維幾何體劃分為三角形或四邊形網格,將三維幾何體劃分為四面體或六面體網格等。德克薩斯大學奧斯汀分校的Hughes教授指出,在科學工程計算應用中,數(shù)值求解時間僅占4%,而前處理中的網格生成卻占總用時的20%以上[2]。由此可見,如何實現(xiàn)高效的網格生成算法,是解決科學工程計算中重大應用問題的關鍵步驟。
研制網格生成軟件,不僅要考慮理論模型的理想情況,還要考慮模型問題中的先驗知識,避免在求解過程中出現(xiàn)網格質量影響計算準確性等問題。故而網格生成軟件需借助多個交叉學科領域技術人員的通力合作,才能達到高可用水平?,F(xiàn)階段比較成熟、實用的網格生成軟件大多為西方大學、研究機構、商業(yè)公司等單位所研制,這得益于他們多年來的理論知識和工程實戰(zhàn)經驗的積累,以及持續(xù)不斷地在網格生成、圖形交互、數(shù)據可視化等方面的技術攻關和研發(fā)投入。相比之下,國內網格生成軟件仍然不夠成熟,缺乏一定的通用性和靈活性。
迄今,傳統(tǒng)的網格生成技術已逐漸趨于完善階段,目前并未出現(xiàn)顛覆性的重要網格生成算法。加之多年來軟件研制技術的快速發(fā)展,國內外已涌現(xiàn)出許多知名網格生成軟件,并廣泛應用于學術界和工業(yè)界。
國外網格生成軟件研發(fā)開始得最早,其最大推動力主要來自于航空航天等領域的工業(yè)需求[2]。根據幾何拓撲方式,網格生成方法通常分為結構網格和非結構網格。結構網格生成最早可追溯到20世紀70年代美國勞倫斯利弗莫爾國家實驗室的Winslow和Crowley以及同時期俄國Godunov和Prokopow的研究工作[3]。此后,具備結構網格生成軟件的有EAGLE系統(tǒng),它誕生于1987年,并無圖形交互功能,1992年集成圖形化功能并重新命名為EAGLEView。緊接著,許多其他結構網格生成軟件亦不斷涌現(xiàn),如AGPS面幾何系統(tǒng)、GridPro/az3000系統(tǒng)、ENGRID塊結構系統(tǒng)等[3]。它們都將人機交互作為必備功能,并提供編程語言實現(xiàn)可定制功能。其中,源于NASA的Gridgen[4]是一套多塊分區(qū)結構網格生成系統(tǒng),后來發(fā)展為商業(yè)軟件系統(tǒng)PointWise,還有現(xiàn)在著名的ICEM CFD軟件除了包含非結構網格功能,也包含了強大結構網格生成能力,已成為著名商業(yè)軟件ANSYS的重要工具之一。
相比結構網格,非結構網格對網格的規(guī)則性沒有嚴格要求,但在20世紀70年代早期想獲得自動生成的非結構網格極其困難[2]。從70年代末開始,隨著計算機領域基礎研究發(fā)展,四面體網格生成算法開始發(fā)展并持續(xù)至今[5]。此外,六面體等基本幾何形體及其混合網格生成算法也得到空前發(fā)展。相應地,一批優(yōu)秀的非結構網格生成軟件應運而生,例如ICEM CFD、Hypermesh、TurboGrid、STAR CCM+等?,F(xiàn)有的這些網格生成軟件大多提供友好的交互界面,強大的各類網格生成和處理技術,保證網格質量滿足工程應用中的數(shù)值求解需求。這些軟件更具通用性、靈活性,成為許多工業(yè)領域的主流工具。根據統(tǒng)計,國外商業(yè)或開源的結構/非結構網格生成軟件數(shù)目多達60余款[6],功能齊全、技術成熟,為不同領域應用問題提供高質量網格生成。除了網格生成軟件本身,許多商業(yè)CAE軟件將其作為整個數(shù)值仿真的有機整體之一,不僅具有適用于其他軟件的輸出格式,還能兼容主流開源和商業(yè)軟件的二次開發(fā),因此這些國外網格生成軟件幾乎壟斷了CAE領域。
國內對于網格生成軟件的研制起步較晚,據不完全統(tǒng)計,目前由國內機構研發(fā)的網格生成軟件系統(tǒng)主要包括:浙江大學研發(fā)的HEDP/Pre[2]、中國空氣動力研究與發(fā)展中心研發(fā)的NNW-GridStar[7]、山東大學研發(fā)的AUTOMESH-2D[8]、大連理工大學研發(fā)的JIFEX軟件前處理子系統(tǒng)AutoFEM[9]以及中國工程物理研究院高性能數(shù)值模擬軟件中心研發(fā)的SuperMesh[10]等。其中HEDP/Pre是CAE軟件HEDP的前處理模塊,支持非結構網格生成,主要包括三角形、四邊形、四面體、六面體和混合網格。NNW-GridStar軟件基于網格拓撲框架構造技術實現(xiàn)了復雜外形結構網格附面層的自動生成,具備良好的人機交互功能和模塊設計,是專業(yè)的結構網格生成軟件。AUTOMESH-2D集成了多種網格生成算法,并支持各類網格單元的混合,但其目前僅支持二維網格生成。JIFEX的前處理子系統(tǒng)AutoFEM是基于AutoCAD/MDT的有限元建模軟件,可直接利用幾何模型建立有限元計算模型,并包含多種有限元網格生成方法。SuperMesh兼具結構網格、非結構網格生成能力,特別是并行網格生成技術,能支持百萬億次規(guī)模的并行計算。此外,國內一些自主CAE軟件內部也集成了部分網格生成功能,這一系列CAE軟件一般以其面向特定應用而聞名,采用了較為先進的設計理念和高效計算方法,解決了國內業(yè)界不少實際應用問題,帶來了直接和間接的經濟效益,也培養(yǎng)出一批從事科學工程計算的人才。但是,從整個技術和軟件市場份額而言,無論CAE領域還是網格生成領域,由于國內自主軟件競爭力不足,大多相關從業(yè)人員還是使用國外開源或商業(yè)軟件。
網格生成作為數(shù)值模擬的第一步,也是影響數(shù)值模擬精度和效率的一個關鍵環(huán)節(jié)。為打破國外商業(yè)軟件的壟斷,提升我國工業(yè)軟件自主可控水平,基于國產高性能計算平臺,擬采用Python和C/C++高級編程語言,研制通用的網格生成軟件YHGRID,服務于結構、流體、電磁等科學工程計算領域。由于網格質量依賴操作人員的工程經驗,自動化程度還處于較低水平。為滿足未來工程應用對效率和精度的需求,通用網格生成軟件要解決的關鍵技術包括可擴展性的軟件架構設計、高效可靠的核心并行網格生成算法和數(shù)據結構、高質量的網格優(yōu)化技術等。
為實現(xiàn)方便高效的人機交互,通用網格生成軟件YHGRID采用可視化的圖形界面,實時顯示幾何模型和所生成的計算網格,具有幾何模型處理、并行網格生成、網格格式轉換等功能,且具有較強的功能可擴展性。為實現(xiàn)上述功能和目標,軟件架構可由如圖1所示4個層級的功能組成:(1)人機交互。采用GUI圖形界面實現(xiàn)人機交互,在圖形界面下實現(xiàn)項目的全周期管理、各種功能的調度和業(yè)務流程控制。(2)前端引擎。主要滿足幾何外形和計算網格實時顯示的需求,在并行環(huán)境下能夠對分布式存儲的數(shù)據進行整合,顯示統(tǒng)一、完整的幾何外形和網格。(3)核心算法。該部分是網格生成軟件的核心,包括幾何模型處理、各種網格生成算法和優(yōu)化技術。(4)并行環(huán)境。指生成大規(guī)模網格的并行環(huán)境系統(tǒng),是通用網格生成軟件并行計算的基礎層功能。
Figure 1 Architecture of the mesh generation software YHGRID圖1 YHGRID網格生成軟件架構
YHGRID網格生成軟件的研制目標是既可以部署在單機平臺,也可以將界面客戶端部署在微機,服務端部署在遠程高性能計算平臺,兩者之間通過SSH應用采用易于網絡傳輸?shù)臉藴矢袷綄崿F(xiàn)高效數(shù)據通信。在超大規(guī)模網格生成的交互實時性方面,由于三維網格可視化過程中需要顯示的一般是所選擇的部分區(qū)域外表面的信息,因此可轉化為快速判斷三維網格中哪些是外表面以及哪些外表面可見,并應用數(shù)據壓縮、硬件加速等技術提高可視化交互的實時性。
通用網格生成軟件最重要、最核心的技術是高效可靠的網格生成算法和數(shù)據結構。針對結構網格、非結構網格和混合網格等不同類型的網格,雖然目前已有不少成熟公開的生成算法甚至開源程序可供借鑒,但是為了提高自主可控軟件的核心競爭力,還需要在基礎的表面網格、體網格生成上下功夫,研究高效率、高可靠的單元網格生成算法,從而提供給用戶更多可定制化的參數(shù),以滿足不同領域的計算需求。另一方面,隨著數(shù)值模擬的精細化程度不斷增加,所需計算網格的規(guī)模也越來越大,例如考慮湍流模型的真實飛行器模擬就需要數(shù)以億計的網格單元。由于內存和單核性能的限制,傳統(tǒng)串行網格生成算法很難在當前計算系統(tǒng)上快速生成滿足需求的網格。為充分利用現(xiàn)代HPC (High Performance Computing)平臺快速生成大規(guī)模的精細化網格,需要發(fā)展并行的網格生成算法。
以非結構網格生成為例,一般并行網格生成算法從設計思路出發(fā)可以分成數(shù)據并行和算法并行:其中數(shù)據并行通常利用區(qū)域分解將原區(qū)域劃分成多個子區(qū)域,然后將子區(qū)域映射到不同處理器進行處理;算法并行則是通過挖掘串行算法流程中潛在的并行度,將其重新組織為多個可以并發(fā)執(zhí)行的子任務集合。基于區(qū)域分解的數(shù)據并行是當前網格并行算法研究的主流。根據子區(qū)域交接面網格和子區(qū)域內部網格生成的先后順序,大致可以分為同步生成、先生成子區(qū)域網格和先生成交界面網格3大類。并行網格生成算法的關鍵是區(qū)域分解的負載均衡以及交界面的處理。以交界面處理為例,一方面需要維持交界面附近生成高質量的網格單元,另一方面需要在保證交界面網格一致性的同時,高效處理跨處理器的通信和同步。
同步生成的一類典型算法是基于Delaunay原理的Bowyer-Watson增量插入算法。其核心過程是不斷對新加入的網格點形成空腔,然后對空腔區(qū)域重新Delaunay三角化[11]。因此,Bowyer- Watson算法進行并行化處理時,若2個進程處理的空腔互相不重疊,則可以同時進行網格生成;當處理的新網格點所在的空腔在其他進程的處理范圍內時,則需要進行通信,即此時生成的是子區(qū)域之間的交界面網格單元。其并行化算法在二維情形下插入新的網格點,示意圖如圖2所示。Bowyer-Watson算法的空腔形成是通過判斷已有網格單元的外接圓或者外接球是否包含新的網格點,若包含則刪除該單元作為空腔的一部分。故當同時插入多個點時,只要多個點周邊形成的空腔相互獨立、互不影響,則多個點可以并行插入;但當空腔發(fā)生交叉的情況時,并行性則被破壞。因此,使用Bowyer-Watson算法構建并行算法時,需要將原區(qū)域劃分成多個子網格區(qū)域發(fā)送給各個進程或者處理器。每個進程處理各自的網格區(qū)域,當插入新的點時則要判斷新形成的空腔是否跨越了子網格之間的交界面,若沒跨越則可插入,若已經跨越則需要進行相應的進程通信。如圖2所示,該區(qū)域由3個子網格構成,其中當子網格2中插入新網格點P時,經判斷可以發(fā)現(xiàn)除了本區(qū)域中的三角形BCD的外接圓包含點P,子網格1中的三角形ABC外接圓也包含點P,子網格3中的三角形DEF的三角形也包含點P。故進程2需要向進程1和進程3發(fā)送訪問相關區(qū)域的請求,若進程1和進程3同意該請求,且返回相應的數(shù)據并對特定區(qū)域加鎖,則進程2可進行相關操作。通過上面的分析可以看出,并行的Bowyer-Watson算法對子網格區(qū)域交界面處的網格生成時間是不確定的,決定于插入的新網格點是否在交界面附近。
Figure 2 Point insertion of the parallel Bowyer-Watson algorithm圖2 并行Bowyer-Watson算法的插點示意圖
并行的前沿推進算法是先生成子區(qū)域網格再生成交界面網格,其核心思想為:將原區(qū)域劃分成多個子區(qū)域,先對非共享邊界區(qū)域進行網格生成,之后重新劃分區(qū)域形成新的共享邊界并對之前的未生成網格區(qū)域完成網格生成。L?hner等[12]是第1個提出前沿推進并行算法的研究者,其算法主要過程是首先利用四叉樹覆蓋整個幾何區(qū)域(生成三維網格時使用八叉樹),形成相應的單元尺寸場指導非結構網格生成,同時將幾何區(qū)域劃分成多個四分區(qū)域;之后將劃分的多個四分區(qū)域在遵循負載平衡的原則前提下分配給各個子進程,進程間共享著子區(qū)域的邊界邊和邊界點;各個進程對未靠近邊界線的地方使用前沿推進法生成非結構網格,遺留下邊界區(qū)域的未生成區(qū)域;之后將四分區(qū)中的劃分朝著x軸和y軸方向移動一定距離,形成新的邊界區(qū)域和邊界線;最后各個進程對未生成區(qū)域進行非結構網格生成;一直如此操作直到前沿集合為空時停止。
如圖3所示為并行前沿推進算法過程的簡略示意圖,展示的過程分為3個階段。第1個階段為劃分區(qū)域構成4個子區(qū)域;第2個階段為各個子區(qū)域中的進程生成非靠近公共邊界的網格;第3個階段為移動整體劃分的區(qū)域,形成新的公共邊界,如AB邊和CD邊,原先屬于邊界附近的空白區(qū)域,如今可以利用前沿推進法生成網格。
Figure 3 Procedure of the parallel advance front algorithm圖3 并行前沿推進算法過程示意圖
不同于并行的Bowyer-Watson算法和前沿推進算法,交界面優(yōu)先并行算法則是一種先生成交界面網格的算法,其一般步驟為:首先利用區(qū)域分解方法將目標幾何體劃分成多個子區(qū)域,或者先生成粗體網格再進行區(qū)域劃分;然后對各個子區(qū)域交界面進行最終網格的生成,如此不同子區(qū)域的邊界網格保證了一致性;最后將各個子區(qū)域分配給不同處理器進行最終的網格生成。不同的交界面優(yōu)先并行算法的區(qū)別主要在于在交界面生成網格的方式或區(qū)域分解的方式存在差異。如圖4所示為交界面優(yōu)先并行算法的示意圖,首先對幾何體ABCDIJKL生成粗體網格,然后區(qū)域分解成2個部分并對邊界面EFHG生成最終的邊界面網格。
Figure 4 Schematic diagram of the interface first parallel algorithm圖4 交界面優(yōu)先并行算法示意圖
幾何模型處理能力是網格生成軟件系統(tǒng)能用和好用的基礎,它為網格生成算法提供前置處理的CAD (Computer Aided Design)幾何模型。一般網格生成軟件應包括基礎的CAD功能庫、通用幾何數(shù)據格式的讀寫、基本幾何的創(chuàng)建以及幾何模型的清理和修復等功能。目前國際主流的幾何處理引擎主要有美國Spatial Technology公司推出的ACIS、德國西門子公司擁有的Parasolid和開源的Open Cascade等平臺,一些成熟的商業(yè)網格生成軟件大都通過購買集成相關軟件的模塊獲得幾何處理能力。
ACIS平臺提供從簡單實體到復雜實體的造型功能,包括實體的布爾運算、曲面裁剪和過渡等多種編輯功能,其特點是采用C++面向對象的數(shù)據結構,使得線架造型、曲面造型、實體造型可以靈活組合使用。ACIS使用軟件組件技術,用戶可使用所需的組件,也可以開發(fā)相應部件來代替,它提供高級的專業(yè)函數(shù),可以單獨出售接口源碼給需要特定功能的用戶。Parasolid平臺支持包括通用的單元建模、集成的自由曲面建模和實體建模,提供漸變、偏移和幾何替換等功能,可通過自動再生周圍數(shù)據來移除特征細節(jié)。Parasolid還提供廣泛的圖形和渲染支持,包括隱藏線、線框和繪圖,曲面細分和模型數(shù)據查詢等功能,并支持多種編程語言的接口調用。Open Cascade是一款開源的幾何造型引擎,基于該建模引擎已發(fā)展了若干CAD/CAE軟件,如國外的FreeCAD、HeeksCAD以及國內的AnyCAD等。Open Cascade基于邊界表示方法,能夠滿足二維、三維實體造型和曲面造型,大致分為建模、可視化和數(shù)據管理3大模塊。其中建模為核心模塊,可視化模塊基于OpenGL庫實現(xiàn),數(shù)據管理采用樹形結構,使用較為復雜。由于國內CAD幾何模型處理技術的缺失較為嚴重,研制YHGRID網格生成軟件擬采用開源的Open Cascade作為幾何處理引擎,并利用OpenGL圖形庫實現(xiàn)幾何和網格的可視化交互顯示。
另一方面,豐富的網格格式轉換和導出功能是網格生成軟件好用和易用的顯著標志。當前,科學工程計算軟件百花齊放,每個計算軟件都有自己特定支持的網格格式,為使得生成的網格能夠便捷地用于更多的計算軟件,YHGRID網格生成軟件應該支持導出豐富多樣的網格格式,例如CGNS格式、Fluent格式和Plot3D格式、開源計算軟件如OpenFOAM格式和SU2格式等。據統(tǒng)計,應用廣泛的ICEM CFD網格生成軟件支持的網格格式多達一百多種,一些沒有公開的網格格式還需要與相應工程計算軟件的開發(fā)機構合作開發(fā)。
網格生成在某種程度上可以說是一個工程性問題,結構/非結構網格生成算法生成的初始網格可能會存在大量的低質量網格單元,因此研制YHGRID軟件還需要網格優(yōu)化技術來進一步提升網格單元的質量。一般來說,網格優(yōu)化算法可分為2類:幾何優(yōu)化算法和拓撲優(yōu)化算法。幾何優(yōu)化算法指的是平移網格頂點,改變幾何位置來提高網格質量,而不會改變網格頂點的相對位置。經典的算法如拉普拉斯光順[13],其將內部點移到多邊形或多面體的形心或重心。還有一些算法會定義一些平滑目標函數(shù),通過數(shù)值優(yōu)化算法來優(yōu)化頂點的位置,如牛頓法[14]或最速下降法[15]等,這一類算法稱為基于數(shù)值優(yōu)化的平滑算法[16]。拓撲優(yōu)化算法指的是改變網格點的相對位置,通常會使用一組新的網格單元來代替原有質量較差的網格單元組。拓撲優(yōu)化有很多種,其中邊交換是用新的網格邊替代刪除的網格邊來優(yōu)化拓撲,比如圖5所示的3-2變換。面交換算法可以看做是邊交換的逆過程[17],如圖5所示的2-3變換。邊收縮算法則是將一條邊的2個頂點收縮成1個點來簡單化網格拓撲[18]。邊分裂算法將一條網格邊插入一個新的網格點,用于產生新的網格單元來優(yōu)化網格拓撲[19]。單一的網格優(yōu)化算法可以優(yōu)化一類特定的低質量網格單元,還有一些研究人員采用幾組不同的網格優(yōu)化組合算法,取得了不錯的效果。
Figure 5 Schematic diagram of edge swap and surface swap圖5 邊交換、面交換的示意圖
網格生成作為科學工程計算的基礎,是一門融合計算機圖形學、拓撲學、計算機科學等為一體的技術,其產品一直以來被國外商業(yè)軟件所壟斷,嚴重影響我國在該領域的話語權。為了打破國外商業(yè)軟件的壟斷,保障具有自主知識產權的工業(yè)軟件體系完整性,迫切需要基于國產高性能計算平臺研發(fā)滿足科學工程計算需求的網格生成軟件。本節(jié)主要從面臨的技術挑戰(zhàn)和未來的發(fā)展方向2個方面,分析自主開展YHGRID網格生成軟件研發(fā)可能遇到的問題。
由于國外商業(yè)軟件已經過長期的技術積累和發(fā)展,相關的功能和接口已十分成熟,并且占據了絕大部分的市場份額和用戶?;趪aHPC平臺研制網格生成軟件YHGRID,一方面需要充分調研當前商業(yè)軟件的功能和接口,盡量滿足現(xiàn)有用戶的功能需求,才有可能吸引更多的潛在用戶群體,健全工業(yè)軟件的生態(tài)體系;另一方面需要結合高性能計算的發(fā)展,超前布局新的網格生成技術和功能模塊,才有可能在未來實現(xiàn)“彎道超車”。
在幾何模型處理方面,光滑、清晰的幾何模型將極大地減少網格生成的工作量,并為表面網格、附面層網格自動化生成提供良好的條件。可以以開源的或國內發(fā)展較好的幾何處理引擎為基礎,進一步提高模型修補效率,發(fā)展模型自動化檢測方法,首先通過自動化檢測,標識出幾何模型中的空洞、縫隙等待修復的位置。對于單個曲面上的空洞,可以直接刪除空洞的幾何特征,保留完整的曲面信息。對于由多個曲面組成的空洞,可以通過新的平面或曲面進行填充。對于縫隙,如果其由2條鄰近的線組成,則直接合并2條線。如果縫隙較大,則可在縫隙中填充新的平面或者曲面。通過采用上述技術手段,可實現(xiàn)若干種實用的模型修補和清理方法。
在網格生成算法方面,需要高度重視核心生成算法的研究,高效可靠的面網格和體網格生成算法和數(shù)據結構是整個網格生成軟件功能的基礎。這方面固然有許多比較成熟的方法,但是至少在六面體網格生成、邊界限定的網格生成、高效的網格數(shù)據結構、網格生成算法的可靠性、任意多邊形/多面體網格生成等技術方面仍需要探索和突破。在生成算法的大規(guī)模并行方面,可能會面臨諸多問題,如邊界網格一致性問題、并行網格數(shù)據結構設計問題、大規(guī)模并行的負載均衡和通信效率等問題。需要結合國產高性能計算平臺,研究高效的多級并行網格生成算法,充分挖掘算法潛在的并行性。通過動態(tài)負載均衡等方法提升并行計算的性能,并采用HDF5等并行文件讀寫庫實現(xiàn)大規(guī)模網格的并發(fā)I/O。
在附面層網格自動生成方面,由于在空氣動力學等工程計算中,靠近物面的附面層流場變化劇烈,需要更加精細的網格捕捉流場特征,這部分網格生成的魯棒性問題一直是一個難點。在幾何外形變化劇烈的凹凸區(qū)域,存在網格相交、質量變差的可能,需要結合通用的附面層網格構造技術,研究新的附面層網格自動生成算法和網格過渡技術。
在網格質量優(yōu)化方面,傳統(tǒng)的幾何優(yōu)化和拓撲優(yōu)化方法一般是基于單個網格單元質量的評價而進行的改進,對網格質量的優(yōu)化缺少整體把握,往往只是對網格局部進行了一些優(yōu)化,又或是需要人工的反復操作迭代才能達到預期的網格質量要求。針對這一問題,自主研發(fā)YHGRID軟件時可以嘗試新型的網格全局自動優(yōu)化技術,減少人工干預并提高網格質量。
分析基于國產HPC平臺研發(fā)自主可控的網格生成軟件YHGRID面臨的技術挑戰(zhàn),雖然困難重重,且與國外成熟商業(yè)軟件在技術積累上還存在不小差距,但是隨著高性能計算的不斷發(fā)展,商業(yè)網格生成軟件現(xiàn)有的架構和功能已不能很好地滿足超大規(guī)模、高自動化網格生成的需求。因此,現(xiàn)階段研制國產的網格生成軟件也具有一定的后發(fā)優(yōu)勢,可以從以下幾個方面把握網格生成未來的發(fā)展方向:
(1)高階曲面網格的生成。由于高精度計算方法的發(fā)展和應用,科學工程計算的計算量越來越大,故而一般希望使用較少的計算單元即可獲得滿足精度要求的解。但是,用較少的單元來離散復雜曲面幾何外形的計算域時,常常會遇到困難,主要是因為在幾何外形變化劇烈區(qū)域,需要線性單元的尺度足夠小才能獲得滿意的計算精度。研究表明,如果采用高精度算法時仍然用線性直網格,將無法達到設計精度,需要將形狀規(guī)則的參考單元轉化為邊界為曲線或曲面的高階物理單元。因此,高階曲面網格生成近年來得到了持續(xù)關注。一般的方法是將傳統(tǒng)軟件生成的直網格轉化為曲網格,但由于缺少原始幾何模型的信息,轉化的曲網格并不能完全貼合真實幾何,故而在自主研制網格生成軟件時,可以研究高階曲面網格生成算法直接在CAD幾何上生成曲網格的方法,從而滿足高精度數(shù)值模擬的需求。
(2)超大規(guī)模的并行網格并行生成算法?;谀壳皯脧V泛的Delaunay、前沿推進等非結構網格生成算法,研究高可擴展的并行網格生成算法,以適應當前大規(guī)模、高精度的數(shù)值模擬需求。其中區(qū)域分解負責將問題域分解成多個離散子區(qū)域,然后子區(qū)域相對獨立地生成網格,因此區(qū)域分解是并行網格生成算法的關鍵步驟。由于各子區(qū)域最終生成的網格單元數(shù)量參差不齊,可結合單元尺寸分布算法預估網格量,研究并行可擴展的區(qū)域分解算法。并行網格生成的另一個難點是交界面處理,為保證網格質量和并行可擴展性,可研究先生成高質量交界面網格的解耦式生成算法,實現(xiàn)交界面的一致性,并大大減少子區(qū)域網格生成的通信和同步開銷。此外,當前主流的高性能計算結點都是處理器加協(xié)處理器的組合,研究集成異構并行計算的超大規(guī)模網格負載均衡剖分算法,可充分發(fā)揮國產HPC平臺的計算優(yōu)勢。
(3)基于深度學習的高自動化網格生成和優(yōu)化算法。給定幾何模型,傳統(tǒng)的非結構網格生成方法一般先離散幾何曲線和曲面,生成表面網格后,再以此為基礎生成空間體網格。這種自底向上的方式在保證網格貼體性質的同時,也很大程度限制了網格生成的自由度和自動化。自主研制YHGRID網格生成軟件,可研究采用自頂向下方式的新型生成算法,例如首先給定一個初始的三角網格,結合網格變形和加密技術,探索基于圖卷積神經網絡的深度學習方法,全自動化地將初始網格的邊界逐步移動映射到給定的幾何模型,從而實現(xiàn)貼體網格的生成。另一方面,可基于支持向量機和多層感知機等機器學習技術,以傳統(tǒng)的全局尺寸參數(shù)、點源/線源和幾何曲率特征等信息作為輸入,研究新型的自適應連續(xù)單元尺寸分布模型,高效指導計算區(qū)域內各處的網格疏密程度,從而取代傳統(tǒng)交互頻繁的背景網格等方法。
總而言之,自主研制YHGRID網格生成軟件,可以某些特色功能為牽引,以點帶面吸引用戶深度使用,從而逐步減輕對國外商業(yè)軟件的依賴。
在科學工程計算實踐中,首先需要對計算域進行網格生成,且網格生成的便捷程度和網格質量直接影響著計算周期和計算結果。因此,通用的網格生成軟件系統(tǒng)是開展現(xiàn)代科學工程計算的基礎。本文首先介紹了國內外網格生成軟件的發(fā)展現(xiàn)狀,國內相關領域的市場長期被國外的商業(yè)軟件壟斷,嚴重阻礙了自主工業(yè)軟件體系的發(fā)展。然后分析了研制YHGRID網格生成軟件系統(tǒng)中的若干關鍵技術,總結了可供參考的技術方案。最后基于國產高性能計算平臺,對研制自主可控的YHGRID網格生成軟件面臨的技術挑戰(zhàn)和未來的發(fā)展方向進行了探討。