鄭 澎,冷玨琳,徐 權(quán),劉田田,楊 洋,高俊琪,董慶利
(1. 中國工程物理研究院 計算機應(yīng)用研究所,綿陽 621900;2. 中國工程物理研究院 高性能數(shù)值模擬軟件中心,北京 100088;3. 北京應(yīng)用物理與計算數(shù)學(xué)研究所,北京 100094)
在數(shù)值模擬流程中,網(wǎng)格生成環(huán)節(jié)包括了幾何建模、模型處理、網(wǎng)格剖分、設(shè)置邊界/載荷參數(shù)、網(wǎng)格組裝等階段,最終得到計算所需要的求解域的離散網(wǎng)格。由于網(wǎng)格的精度和質(zhì)量直接關(guān)系著求解的精度和質(zhì)量,在上述階段中,為得到滿意的網(wǎng)格剖分結(jié)果,模型處理和網(wǎng)格剖分步驟需要反復(fù)的人工迭代修改,據(jù)美國圣地亞實驗室統(tǒng)計,它們會占到整個算例工作量的50%以上[1]。
高性能數(shù)值模擬應(yīng)用是運行于高性能計算機上的復(fù)雜數(shù)值模擬應(yīng)用,往往需要基于復(fù)雜模型生成十億規(guī)模以上的網(wǎng)格[2-3],實現(xiàn)這一過程的高度自動化無疑有利于提高效率和避免人工失誤。實現(xiàn)高度自動化的難點在于:首先是模型全自動處理難,數(shù)值模擬應(yīng)用的模型(以下簡稱CAE 幾何模型)大多來自于CAD 模型,而CAD 模型和CAE 幾何模型的幾何表達方式不同,技術(shù)關(guān)注的目標(biāo)不同[4-5],實現(xiàn)CAD模型到CAE 幾何模型的自動處理一直是研究熱點[4-6],目前,即使是成熟的商業(yè)前處理軟件也不能實現(xiàn)任意模型的自動處理;其次是針對復(fù)雜模型的全自動網(wǎng)格生成算法難,尤其是六面體網(wǎng)格生成及高階曲面網(wǎng)格生成仍然是眾多研究關(guān)注的焦點[7-8]。
大規(guī)模網(wǎng)格生成本身對計算能力和內(nèi)存的消耗也是巨大的,單機生成已無法滿足需求。目前,并行求解器的研制正在逐步適應(yīng)并行機體系結(jié)構(gòu),相比之下,網(wǎng)格生成方法的研究滯后很多,嘗試在全自動網(wǎng)格生成算法的基礎(chǔ)上實現(xiàn)并行化,達到“并行網(wǎng)格生成-并行求解”的一致并行,是突破大規(guī)模網(wǎng)格生成瓶頸的活躍的研究領(lǐng)域[3,9-12]。并行網(wǎng)格生成的難點在于:首先,要得到高質(zhì)量的網(wǎng)格劃分,就要盡可能全局考慮幾何,而在全局幾何上的串行和緊耦合操作又會造成并行方面的瓶頸;其次,要支持自適應(yīng)計算,就需要實現(xiàn)在求解過程中并行自適應(yīng)調(diào)整網(wǎng)格[13-14],但又不能影響負載平衡;第三,需要考慮并行網(wǎng)格生成與并行求解器的耦合連接問題,外耦合文件連接方式存在巨大的I/O 開銷和網(wǎng)格量數(shù)據(jù)轉(zhuǎn)換開銷。這些都造成了網(wǎng)格生成算法并行化實現(xiàn)的困難。上述這些難點決定了必須發(fā)展和高性能數(shù)值模擬相適應(yīng)的并行網(wǎng)格生成方法和相關(guān)軟件工具。然而,相比于串行網(wǎng)格生成研究已有近50 年的歷史,且開源及商業(yè)的網(wǎng)格生成軟件不斷推出[15],并行網(wǎng)格生成研究起源于20 世紀(jì)90 年代,步入21 世紀(jì),才真正隨著高性能計算的飛速發(fā)展而逐步展開。并行網(wǎng)格生成屬于以計算數(shù)學(xué)、計算機圖形學(xué)、并行計算等學(xué)科為支撐的交叉學(xué)科,在國內(nèi),缺乏長期投身這一技術(shù)研究的研究人員和對通用并行網(wǎng)格生成軟件的持續(xù)研發(fā)投入,造成國產(chǎn)高性能數(shù)值模擬應(yīng)用軟件普遍存在“前處理弱”的問題,使得軟件的可用性大打折扣,很大程度上影響了軟件的推廣。
復(fù)雜數(shù)值模擬應(yīng)用很少采用在數(shù)值模擬軟件中建模的方式,而是采用在CAD 軟件中建立幾何模型,然后導(dǎo)入到軟件中。理想狀態(tài)下,網(wǎng)格生成應(yīng)能直接基于CAD 模型進行,但實際情況是,導(dǎo)入的CAD 模型需要進行一系列處理,才能得到可為后續(xù)網(wǎng)格生成算法使用的CAE 幾何模型。根本原因在于:CAD 技術(shù)關(guān)注產(chǎn)品設(shè)計對象的幾何外形,采用邊界表示法(boundary representation,Brep)表示模型,即模型由一系列封閉解析曲面所包圍的體所定義,體和體之間是拓撲分離,稱為流形拓撲模型。而CAE 幾何模型關(guān)注數(shù)值模擬計算對象的物理性能和功能的分析,在拓撲上,不一定是封閉的且體與體之間也不一定拓撲分離,稱為非流形拓撲模型,如圖1 所示,存在懸邊、懸面等多維混合,以及共點、共邊、共面等情況。
圖1 非流形拓撲示意Fig. 1 Examples of non-manifold topologies
自20 世紀(jì)90 年代起,學(xué)術(shù)界和工業(yè)界就開始廣泛關(guān)注CAD 模型與CAE 幾何模型的數(shù)據(jù)不一致性問題[16],但直到現(xiàn)在,仍然缺乏業(yè)界認可的兩者統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),復(fù)雜模型的人工處理依然工作量巨大[1],全自動模型處理技術(shù)仍然是研究熱點。
模型處理方法按處理對象,可分為自身錯誤處理和算法關(guān)聯(lián)錯誤處理兩類;按照實現(xiàn)方式,可分為對連續(xù)CAD 模型處理[17-19]和對離散CAD 模型處理[20-21]兩類。
自身錯誤指模型的幾何缺陷和拓撲缺陷,幾何缺陷包括錯位、曲線和曲面自相交、法向不連續(xù)等,拓撲缺陷包括存在孤立點、孤立邊、非閉合面、鄰接面相交或重疊等。算法關(guān)聯(lián)錯誤指模型具有不適合特定網(wǎng)格生成算法的特征,例如:不適合Delaunay 表面網(wǎng)格生成算法的短邊、窄面、尖角等細小幾何特征;算法關(guān)聯(lián)錯誤還指模型具有對計算結(jié)果不產(chǎn)生影響的冗余特征,基于冗余特征生成網(wǎng)格,會造成多余的計算開銷。算法關(guān)聯(lián)錯誤的判定往往和具體的應(yīng)用相關(guān)。
目前,絕大多數(shù)模型處理方法都是串行的。其中,全自動模型處理方法大多是針對自身錯誤的處理,首先通過自動的拓撲檢測剔除孤立點、邊和非閉合面,再以點/線/面間的容差為依據(jù)[17]進行縫隙、錯位的縫合和重疊的解除等,采用合適的容差是自身錯誤處理算法的關(guān)鍵,過大的容差往往容易造成幾何特征丟失。算法關(guān)聯(lián)錯誤的處理由于有多種復(fù)雜因素影響,一般需要人工輔助來判定要處理的幾何特征和選擇處理方法,處理方法包括冗余細節(jié)移除[22]、局部降維[23-24]、對稱處理[25]等,目前,也有學(xué)者嘗試基于機器學(xué)習(xí)方法實現(xiàn)自動的判定和處理,已在單部件模型去細小特征方面取得了初步進展[6],但離工程實用仍有很大差距。
此外,將CAD 模型信息無縫傳遞給CAE 幾何模型也是研究關(guān)注點,例如:通過傳遞CAD 模型的裝配信息給對應(yīng)的CAE 幾何模型,實現(xiàn)自動設(shè)置接觸對、運動副等邊界條件,避免人工操作帶來的失誤。商業(yè)CAD 平臺UG、PTC、CATIA、AUTOCAD 與其內(nèi)置的CAE 求解器之間已實現(xiàn)了這樣的無縫對接,其他CAE 軟件只能通過采用商業(yè)轉(zhuǎn)換插件[26]或在STEP 等中間格式基礎(chǔ)上研發(fā)信息傳遞機制[27]來實現(xiàn)。
并行網(wǎng)格生成及優(yōu)化方法需在串行自動網(wǎng)格生成算法基礎(chǔ)上實現(xiàn)并行化。它要考慮并行機的特點,充分發(fā)揮機器計算能力的優(yōu)勢并具備良好的可擴展性,其研究內(nèi)容涉及區(qū)域分解、網(wǎng)格并行剖分、網(wǎng)格自適應(yīng)優(yōu)化、并行網(wǎng)格數(shù)據(jù)結(jié)構(gòu)等。
區(qū)域分解方法的目標(biāo)是在保持子區(qū)域負載平衡的同時盡量減少通信,常用的實現(xiàn)方法分為靜態(tài)圖剖分和動態(tài)圖剖分兩類。靜態(tài)圖剖分方法主要有幾何剖分、基于幾何和拓撲的剖分、基于代數(shù)連通度的剖分和多層級剖分[28]等。動態(tài)圖剖分方法用于負載發(fā)生變化后的分區(qū)調(diào)整,包括全局重剖分和增量重剖分,前者相對后者通信代價高但負載平衡效果能得到保障。當(dāng)并行網(wǎng)格生成與并行求解器進行內(nèi)耦合內(nèi)存對接時,理想狀態(tài)是并行求解的進程數(shù)與網(wǎng)格生成的分區(qū)數(shù)相當(dāng),這樣會大大減少對接開銷,但網(wǎng)格分區(qū)數(shù)如果過多,會在子區(qū)域內(nèi)部插入過量的人工邊界,導(dǎo)致子區(qū)域定義極易出錯,網(wǎng)格生成無法順利進行。
已有的網(wǎng)格并行剖分方法,按照實現(xiàn)方式不同可分為三類[9]:第一類是生成子區(qū)域交界面網(wǎng)格后,再生成各子區(qū)域內(nèi)部網(wǎng)格;第二類是先生成各子區(qū)域內(nèi)部網(wǎng)格,再生成子區(qū)域交界面網(wǎng)格;第三類是同步生成各子區(qū)域內(nèi)部網(wǎng)格和交界面網(wǎng)格。
由于網(wǎng)格并行剖分方法的實現(xiàn)需建立在串行自動網(wǎng)格生成算法基礎(chǔ)上,本文站在復(fù)用串行算法的角度,對網(wǎng)格并行剖分方法進行新的分類:第一類是零復(fù)用串行算法,需對串行算法的底層操作進行并行重構(gòu),例如,針對增量Delaunay 四面體算法的插入點操作的并行化[29],此類方法需要重新設(shè)計算法的數(shù)據(jù)結(jié)構(gòu)和邏輯;第二類是全復(fù)用串行算法,它通過區(qū)域分解,將整體區(qū)域分解為子區(qū)域,在子區(qū)域內(nèi)部可全復(fù)用串行算法生成網(wǎng)格,對子區(qū)域交界面的處理有兩種方式,一種是避免改動子區(qū)域交界面[30],但交界面附近網(wǎng)格質(zhì)量難以保證,另一種是允許改動交界面但要進行少量通信;第三類是部分復(fù)用串行算法,它是前兩類方法的混合[12]。第二、三類方法較容易擴展為能快速集成串行算法成果的網(wǎng)格并行生成框架[31-32]。
網(wǎng)格自適應(yīng)優(yōu)化指在求解器并行求解過程中,基于中間計算結(jié)果對網(wǎng)格的局部區(qū)域進行修改,從而不斷提高計算精度。修改方法分為兩類,一類是網(wǎng)格的重分或細化,一類是保持拓撲不變的網(wǎng)格節(jié)點移動。重分方法[3,14,33]刪除修改區(qū)域的內(nèi)部網(wǎng)格,保留區(qū)域邊界,然后基于新定義的網(wǎng)格尺寸重新生成區(qū)域邊界約束下的網(wǎng)格,當(dāng)修改區(qū)域與分區(qū)交界面時,通常固定分區(qū)交界面不變,也有的方法是通過動態(tài)圖剖分,使新分區(qū)的交界面避開修改區(qū)域。細化方法將修改區(qū)域的網(wǎng)格單元分裂為更細小單元,一般基于模板[34-36]實現(xiàn),非結(jié)構(gòu)網(wǎng)格常采用最長邊中點分裂的模板,結(jié)構(gòu)網(wǎng)格采用八叉樹分裂模板,但相鄰樹節(jié)點深度差不超過1。網(wǎng)格節(jié)點移動方法先基于修改區(qū)域的網(wǎng)格質(zhì)量度量構(gòu)建目標(biāo)優(yōu)化函數(shù),然后極小化求解,從而得到節(jié)點的較優(yōu)位置[37],再移動節(jié)點。對分區(qū)交界面的優(yōu)化可在完成內(nèi)部網(wǎng)格優(yōu)化后單獨進行,首先需構(gòu)建與相鄰子區(qū)域至少1 層單元重疊的虛(網(wǎng)格)區(qū)域(如圖2 所示),因為虛(網(wǎng)格)區(qū)域內(nèi)單元也會對交界面上網(wǎng)格質(zhì)量產(chǎn)生影響,優(yōu)化后,再通過通信保持分區(qū)交界面的一致性。
圖2 虛(網(wǎng)格)區(qū)域示意(來自文獻[38])Fig. 2 An illustration of ghost zones among sub-domains(courtesy of Ref.[38])
并行網(wǎng)格數(shù)據(jù)結(jié)構(gòu)支撐了并行網(wǎng)格生成與優(yōu)化算法的實現(xiàn)。目前,相比串行算法普遍采用的半邊(Half-edge)、半面(Half-face)以及兩者擴展的數(shù)據(jù)結(jié)構(gòu),并行網(wǎng)格數(shù)據(jù)結(jié)構(gòu)的設(shè)計并無統(tǒng)一標(biāo)準(zhǔn),主要從以下幾個要素去考慮[39-40]:支持多樣化的網(wǎng)格單元,支持存儲和訪問高效,易于并行擴展等。
網(wǎng)格生成是數(shù)值模擬前處理軟件研發(fā)的基礎(chǔ),如圖3 所示,基于網(wǎng)格生成軟件提供的核心數(shù)據(jù)結(jié)構(gòu)和算法的支撐,再加上交互引擎、前處理界面方面的技術(shù)攻關(guān)和研發(fā)投入,可以快速形成各種專用及通用前處理軟件,這種研發(fā)模式被商業(yè)前處理軟件普遍采用。
圖3 基于網(wǎng)格生成軟件開發(fā)前處理軟件Fig. 3 Development of pre-processing softwares based on the mesh generation software
受益于串行網(wǎng)格生成方法的多年發(fā)展,串行網(wǎng)格生成軟件不斷推出[15],國外研究機構(gòu)、大學(xué)和商業(yè)公司在理論與工程實戰(zhàn)經(jīng)驗積累上占有絕對優(yōu)勢[41],相比之下,無論從整個技術(shù)還是軟件市場份額而言,國內(nèi)外的并行網(wǎng)格生成軟件都還不成熟,發(fā)展國產(chǎn)并行網(wǎng)格生成軟件面臨機遇。
目前,開源和自研的并行網(wǎng)格生成軟件方面,國外的有美國阿貢實驗室主持研制的SIGMA[42]和哥倫比亞大學(xué)研發(fā)的GRUMMP[43]等,SIGMA 是并行網(wǎng)格生成及應(yīng)用的框架軟件,它提供并行網(wǎng)格數(shù)據(jù)結(jié)構(gòu)和并行網(wǎng)格生成算法的基礎(chǔ)框架,GRUMMP 支持各向同性三角形和四面體網(wǎng)格并行生成。國內(nèi)有浙江大學(xué)研發(fā)的HEDP-pre[44],能基于復(fù)雜外形并行生成大規(guī)模非結(jié)構(gòu)網(wǎng)格;中國工程物理研究院研發(fā)的SuperMesh[45],具備非結(jié)構(gòu)和結(jié)構(gòu)網(wǎng)格并行生成能力,能支持百萬億次規(guī)模的并行計算;以及國防科技大學(xué)正在研制中的YHGrid[41]等。雖然大多數(shù)商業(yè)前處理軟件還不支持并行前處理,但并行化趨勢已顯現(xiàn),例如,近期Cubit 開始推出并行掃掠六面體網(wǎng)格生成功能[46],ANSYS 公司Fluent 也推出了64 核并行六面體核心網(wǎng)格生成功能[47]。
中國工程物理研究院計算機應(yīng)用研究所和中物院高性能數(shù)值模擬軟件中心聯(lián)合研制的并行網(wǎng)格生成軟件,英文名稱為“SuperMesh”[45],具備基于復(fù)雜幾何模型的結(jié)構(gòu)網(wǎng)格和非結(jié)構(gòu)網(wǎng)格的并行生成功能,并通過無縫對接高性能科學(xué)與工程計算并行編程框架[48],支持高性能科學(xué)與工程計算中普適的三類計算:結(jié)構(gòu)網(wǎng)格、非結(jié)構(gòu)網(wǎng)格和無網(wǎng)格組合幾何計算。目前,它已經(jīng)支撐了結(jié)構(gòu)力學(xué)、計算流體力學(xué)、輻射流體力學(xué)、分子動力學(xué)、燃燒學(xué)和電磁學(xué),以及多物理過程耦合計算的多個應(yīng)用。
SuperMesh 軟件架構(gòu)凝煉了并行網(wǎng)格生成過程的共性特征,設(shè)計了可復(fù)用的算法構(gòu)件。軟件架構(gòu)如圖4 所示,自底向上分別是幾何網(wǎng)格數(shù)據(jù)層、算法構(gòu)件庫、流程管理層、編程接口。
圖4 SuperMesh 軟件架構(gòu)Fig. 4 The architecture of SuperMesh
幾何網(wǎng)格數(shù)據(jù)層包括可計算幾何數(shù)據(jù)模型(computational geometry data model, CGDM)和它關(guān)聯(lián)的網(wǎng)格數(shù)據(jù);算法構(gòu)件庫包括模型處理和網(wǎng)格剖分兩大模塊,模型處理模塊包括模型導(dǎo)入、特征識別、錯誤修復(fù)等算法構(gòu)件,網(wǎng)格剖分模塊包括網(wǎng)格剖分及網(wǎng)格優(yōu)化構(gòu)件;流程管理層負責(zé)算法構(gòu)件庫的管理和基于流程組裝算法構(gòu)件;編程接口是提供給用戶的API 接口,用戶按上文圖3 中所述的開發(fā)方式,可直接調(diào)用API 接口開發(fā)前處理功能。
可計算幾何數(shù)據(jù)模型包括CAE 幾何數(shù)據(jù)結(jié)構(gòu)和其上定義的公用操作。如圖5 所示,CAE 幾何數(shù)據(jù)結(jié)構(gòu)按照非流形拓撲關(guān)系來管理幾何對象和附加屬性。非流形拓撲關(guān)系在體/面/邊/頂點等鄰接關(guān)系的基礎(chǔ)上增加了對共面/共邊/共點鄰接關(guān)系的支持。CAE幾何數(shù)據(jù)上的公用操作包括載入、查詢、修改、賦值四類:載入操作負責(zé)將不同表達格式的CAD 模型在邏輯上映射為CAE 幾何數(shù)據(jù)結(jié)構(gòu),查詢操作提供對CAE 幾何數(shù)據(jù)的訪問,修改操作提供對CAE 幾何數(shù)據(jù)的編輯;賦值操作在幾何對象上定義一些附加屬性,例如:邊界條件、網(wǎng)格尺寸參數(shù)、網(wǎng)格數(shù)據(jù)指針等。
圖5 可計算幾何數(shù)據(jù)模型Fig. 5 An illustration of computable geometry data
基于可計算幾何數(shù)據(jù)模型和它關(guān)聯(lián)的網(wǎng)格數(shù)據(jù)構(gòu)成了與高性能計算機體系結(jié)構(gòu)匹配的幾何網(wǎng)格數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)運行時的內(nèi)存映像如圖6 所示,CAE 幾何數(shù)據(jù)與計算節(jié)點對應(yīng),網(wǎng)格數(shù)據(jù)分為網(wǎng)格區(qū)、網(wǎng)格域和網(wǎng)格片,網(wǎng)格區(qū)與計算節(jié)點對應(yīng),網(wǎng)格域與計算節(jié)點內(nèi)的CPU 對應(yīng),網(wǎng)格片與計算節(jié)點內(nèi)的CPU 核對應(yīng)。由于幾何網(wǎng)格數(shù)據(jù)結(jié)構(gòu)在“網(wǎng)格生成”和“數(shù)值計算”兩階段保持一致,實現(xiàn)了網(wǎng)格生成與并行編程框架[48]的內(nèi)存對接,避免了長時間I/O 開銷和數(shù)據(jù)轉(zhuǎn)換開銷[49]。
圖6 與高性能計算機體系結(jié)構(gòu)匹配的幾何網(wǎng)格數(shù)據(jù)結(jié)構(gòu)Fig. 6 Data structure of geometry and mesh compatible with the architecture of high-performance computers
基于幾何網(wǎng)格數(shù)據(jù)結(jié)構(gòu)實現(xiàn)了并行網(wǎng)格生成的算法構(gòu)件化。算法構(gòu)件的抽象模型如圖7 所示,包括構(gòu)件接口、數(shù)據(jù)存儲單元、數(shù)據(jù)并行通信單元、算法單元四部分。構(gòu)件接口負責(zé)載入輸入?yún)?shù),并返回生成的數(shù)據(jù);數(shù)據(jù)存儲單元負責(zé)在進程私有空間存儲幾何網(wǎng)格數(shù)據(jù);數(shù)據(jù)并行通信單元負責(zé)實現(xiàn)進程間拓撲相鄰的幾何網(wǎng)格數(shù)據(jù)的同步,確保相鄰的網(wǎng)格單元是協(xié)調(diào)的;算法單元負責(zé)在進程內(nèi)復(fù)用串行算法實現(xiàn)模型處理、網(wǎng)格剖分或優(yōu)化。當(dāng)用戶按照構(gòu)件抽象模型約定的規(guī)范擴展新的算法構(gòu)件時,只需將算法構(gòu)件注冊到SuperMesh 中,新增算法構(gòu)件就可通過API 接口提供給外部用戶使用。
圖7 算法構(gòu)件抽象模型Fig. 7 Components of the parallel mesh-generation algorithm
SuperMesh 具有可配置的通用流程,用戶按流程將不同的算法構(gòu)件連接組裝起來,如圖8 所示,就可快速研發(fā)前處理模塊。
圖8 基于構(gòu)件組裝的并行前處理功能集成Fig. 8 An integration of parallel pre-processing components
2.3.1 并行模型處理技術(shù)
高性能數(shù)值模擬應(yīng)用從部件級模擬躍升到多部件乃至整體模型的模擬,系統(tǒng)性、綜合性地考慮不同部件之間的幾何物理耦合關(guān)系,獲得更高精度的數(shù)值模擬結(jié)果。在這類模擬中,典型輸入是多個部件組裝在一起的“裝配體(Assembly Geometry)”,當(dāng)裝配體模型包含的部件數(shù)目成百上千、乃至更多時,為降低建模難度,普遍采用分部件建模的方式獲得。分部件建模獲得的裝配體部件之間存在偏移、交纏、錯位、縫隙等錯誤。
例如圖9 所示,某大壩模型按壩段裝配時存在多種錯誤(模型由中國水利水電科學(xué)研究院張國新教授團隊提供)。部件間的共享區(qū)域在不同部件中存在多份表征,如果直接在該模型的原始邊界表征上生成網(wǎng)格,重疊區(qū)域的網(wǎng)格在幾何和拓撲上都不兼容,不能用于數(shù)值模擬計算。針對上述重復(fù)表征問題, 提出了適用于裝配體模型的自動曲面嵌入算法[50],該算法首先建立連續(xù)表征與離散表征相互映射的混合表征模型,然后按照從低維向高維順序處理的方式,依據(jù)表1 設(shè)計的規(guī)則,先對裝配模型的離散表征進行局部幾何干涉解除,再更新連續(xù)表征,有效的實現(xiàn)了串行自動化的模型處理。
表1 自低維向高維的局部幾何干涉解除規(guī)則Table 1 Rules for resolving local interferences from lower dimensions to higher dimensions
圖9 多部件裝配模型錯Fig. 9 Typical assembly errors of a multi-component model
上述的串行方法,當(dāng)幾何對象的干涉數(shù)量上萬時,處理時間接近半個小時,占據(jù)整個網(wǎng)格生成時間的一半以上,因此,我們進一步提出基于共享內(nèi)存的并行化處理方法。其核心思路是:首先對所有要干涉處理任務(wù),判定其所影響的幾何對象,然后將處理任務(wù)依次分配給不同的線程進行處理。因此,在原串行算法的預(yù)處理環(huán)節(jié)中,增加建立任務(wù)影響鄰接圖步驟,該鄰接圖反映了待處理對象間的影響關(guān)系。如圖10 所示,任務(wù)隊列中有4 個任務(wù),處理對象包括A、B、C、D 四個,根據(jù)處理任務(wù)中的對象信息可以構(gòu)建鄰接圖,該鄰接圖反應(yīng)了待處理對象間的影響關(guān)系。在線程中執(zhí)行處理任務(wù)時,先通過鄰接圖獲取處理任務(wù)所影響的對象,為對象上鎖,若對象已被上鎖,則線程等待,接著,按串行算法執(zhí)行處理任務(wù),最后,為對象解鎖。并行曲面嵌入算法流程如圖11 所示,詳細步驟如表2 所示。
表2 并行曲面嵌入算法Table 2 The algorithm for parallel surface imprinting
圖10 干涉處理任務(wù)鄰接關(guān)系圖Fig. 10 An adjacency graph of tasks
圖11 并行曲面嵌入算法流程Fig. 11 Sketch for the parallel surface imprinting
基于并行曲面嵌入方法對大壩模型和靶球模型分別進行了串行和多線程并行的測試,測試環(huán)境為中物院高性能數(shù)值模擬軟件中心的高性能計算集群系統(tǒng),采用Intel Xeon E5-2680v4(2.4 GHz)處理器,單節(jié)點28 核,64G 內(nèi)存。如圖12所示,輸入的靶球模型包含115 部件,1 952 張曲面和4 739 條曲線,檢測出模型干涉數(shù)為15 177 個,執(zhí)行曲面嵌入算法,串行耗時1 047 s,多線程并行最低耗時457 s;大壩模型包含1 884 部件,檢測出模型干涉數(shù)為35 174 個,執(zhí)行曲面嵌入算法,串行耗時1 521 s,多線程并行最低耗時696 s。測試結(jié)果如表3 所示。
圖12 模型的曲面嵌入效果Fig. 12 Examples of surface imprinting
從表3 可看出,我們提出的并行模型處理方法相比串行方法,能提高大概1 倍的效率。但在可擴展性上并不理想,這是由于曲面嵌入算法的擴展性與模型干涉特征緊密相關(guān),因此該方法依然有改進空間。
表3 并行曲面嵌入算法測試Table 3 Parallel performance of the surface imprinting algorithm
此外,針對CAD 模型信息無縫傳遞給CAE 幾何模型的需求,我們提出基于離散CAD 模型的信息自動重構(gòu)方法。目前,已實現(xiàn)相似幾何體自動識別算法和適用于任意曲面類型的接觸關(guān)系自動識別算法。前者基于幾何矩理論,采用一組滿足平移、旋轉(zhuǎn)、縮放不變性的幾何矩不變量對三維幾何體的形狀特征進行描述,并根據(jù)形狀特征向量的相似程度評估幾何體之間的相似性[51],從而支持批量自動選取幾何相似的對象,避免人工交互下的錯選和漏選。針對復(fù)雜的離散CAD 模型可能包含數(shù)千萬甚至上億三角面片,后者采用多線程并行加速篩選和接觸檢測過程,自動提取數(shù)百部件模型包含的接觸關(guān)系只需15 s 左右,同時,為了提高識別精度, 還根據(jù)模型特征計算幾何對象間的局部容差, 基于局部容差進行接觸檢測,相比Ansys 和Abaqus 采用統(tǒng)一容差進行檢測,檢測結(jié)果更準(zhǔn)確。
面向結(jié)構(gòu)網(wǎng)格生成要對CAE 幾何模型進行分區(qū)處理的需求,我們實現(xiàn)了可復(fù)用的拓撲分區(qū)模板。通過將自動識別的幾何構(gòu)型特征點與拓撲分區(qū)模板自動匹配,實現(xiàn)將同一模板重復(fù)應(yīng)用到同類幾何構(gòu)型上,提高了工作效率。例如圖13 所示,應(yīng)用分區(qū)拓撲模板自動處理發(fā)動機三維風(fēng)扇轉(zhuǎn)子模型,生成結(jié)構(gòu)網(wǎng)格。
圖13 可復(fù)用拓撲分區(qū)模板效果Fig. 13 Application of a reusable topology partition template
2.3.2 網(wǎng)格并行生成及優(yōu)化方法
當(dāng)生成大規(guī)模網(wǎng)格時,串行網(wǎng)格生成和并行求解程序之間產(chǎn)生的輸入、輸出代價不可忽略。而當(dāng)前的分布式并行網(wǎng)格生成與近萬核并行求解器對接時,區(qū)域分解過程仍然存在分區(qū)數(shù)目過多造成的低質(zhì)量人工邊界等分區(qū)瓶頸問題。針對上述問題,我們提出多級并行網(wǎng)格生成與優(yōu)化框架,該框架按照部分復(fù)用串行算法的方法,通過多級分區(qū)方式,克服分區(qū)瓶頸問題,并行可擴展性良好[12,52],可支持十億量級以上網(wǎng)格并行生成。
多級并行網(wǎng)格生成與優(yōu)化的核心思路是:首先基于對網(wǎng)格分布情況的預(yù)估,對CAE 幾何模型進行第一級分解,將幾何實體分配到不同的進程組中,在各進程中完成對初始網(wǎng)格的并行生成;接著,以初始網(wǎng)格為背景網(wǎng)格,進行第二級區(qū)域分解,再進行大規(guī)模網(wǎng)格的并行細化及優(yōu)化[53],算法流程如圖14,詳細步驟如表4 所示。
表4 多級并行網(wǎng)格生成與優(yōu)化算法Table 4 Mulit-level parallel mesh generation and optimization algorithm
圖14 多級并行網(wǎng)格生成與優(yōu)化流程Fig. 14 Diagram of multi-level parallel mesh generation and optimization
基于多級并行網(wǎng)格生成方法對上文中的大壩模型進行百億網(wǎng)格生成,壩體初始網(wǎng)格結(jié)果如圖15 所示,測試環(huán)境為神威太湖之光超級計算機,可擴展結(jié)果如表5 所示,可以看出該方法有較高的并行效率?;诙嗉壊⑿芯W(wǎng)格生成方法對F6 模型進行了混合網(wǎng)格剖分,初始網(wǎng)格如圖16 所示,混合網(wǎng)格在邊界層采用半結(jié)構(gòu)化的三棱柱單元,剩余區(qū)域采用四面體單元填充。
圖16 F6 模型的初始網(wǎng)格Fig. 16 The initial meshes for F6
表5 算法可擴展性測試Table 5 Scalability test
圖15 大壩模型的初始網(wǎng)格Fig. 15 The initial meshes for a dam model
國產(chǎn)并行網(wǎng)格生成軟件要能實現(xiàn)世界領(lǐng)先,核心競爭力在于并行網(wǎng)格生成技術(shù)的超越。過去十年,基于國產(chǎn)頂尖超算系統(tǒng)的大規(guī)模數(shù)值模擬應(yīng)用取得了顯著進步,服務(wù)于高性能數(shù)值模擬應(yīng)用的并行網(wǎng)格生成技術(shù)也得到了很大發(fā)展。隨著算力指數(shù)進入E 級時代以及人工智能成為新一代超算系統(tǒng)重要的應(yīng)用場景,并行網(wǎng)格生成需要適應(yīng)新形勢,未來可從以下兩個方面把握技術(shù)的發(fā)展方向:
1)基于異構(gòu)并行體系的并行網(wǎng)格生成方法。超算平臺已發(fā)展為CPU 和加速器(GPU)混合的異構(gòu)并行體系,并行網(wǎng)格生成方法將以計算節(jié)點間分布式并行和計算節(jié)點內(nèi)異構(gòu)線程并行相結(jié)合的編程模型為主流,已有的方法需通過移植或改造,適應(yīng)加速器等硬件,充分發(fā)揮超算平臺的性能優(yōu)勢;此外,超大規(guī)模應(yīng)用的復(fù)雜模型占用內(nèi)存巨大,難以在單個計算節(jié)點上進行處理,需研究模型的分布式存儲和表征方法,以及發(fā)展基于分布式內(nèi)存的并行模型處理方法。
2)基于人工智能輔助實現(xiàn)高度自動化網(wǎng)格生成。在網(wǎng)格生成過程中,算法關(guān)聯(lián)錯誤處理、設(shè)置網(wǎng)格尺寸等環(huán)節(jié)很大程度上依賴工程經(jīng)驗?;谌斯ぶ悄芗夹g(shù)能從經(jīng)驗數(shù)據(jù)中習(xí)得“模式”,然后依據(jù)“模式”實現(xiàn)處理的自動化,且對復(fù)雜問題的處理成功率將隨著數(shù)據(jù)的積累而不斷提高。例如,模型清理中,可基于模型的幾何特征集和處理操作集構(gòu)建神經(jīng)網(wǎng)絡(luò)的輸入空間,再利用生成網(wǎng)格的質(zhì)量度量不斷反饋和修正網(wǎng)絡(luò),從而得到較優(yōu)的操作組合;基于幾何分解法的六面體占優(yōu)網(wǎng)格生成中,通過大量樣本訓(xùn)練可成功識別復(fù)雜模型的掃掠特征和拓撲六面體塊特征,進而實現(xiàn)模型自動分解和網(wǎng)格生成;基于人工智能技術(shù)還能建立起幾何外形或關(guān)鍵特征與網(wǎng)格密度分布之間的關(guān)系,為網(wǎng)格節(jié)點分布和自適應(yīng)提供更好的依據(jù),提高網(wǎng)格自適應(yīng)的效率和計算結(jié)果的精準(zhǔn)度。
面向高性能數(shù)值模擬的網(wǎng)格生成與普通的網(wǎng)格生成不同,在求解問題的復(fù)雜度和規(guī)模不斷增大的前提下,一方面需要實現(xiàn)網(wǎng)格生成的高度自動化,另一方面需要通過并行化來突破生成超大規(guī)模網(wǎng)格的內(nèi)存和效率瓶頸,這就決定了必須發(fā)展相應(yīng)的并行網(wǎng)格生成軟件來滿足需求。本文在分析國內(nèi)外相關(guān)技術(shù)和軟件的發(fā)展現(xiàn)狀基礎(chǔ)上,指出加強并行網(wǎng)格生成軟件的研制既是挑戰(zhàn),也是機遇,詳細介紹了自主可控并行網(wǎng)格生成軟件SuperMesh 的架構(gòu)設(shè)計和關(guān)鍵技術(shù),并對技術(shù)未來的發(fā)展方向進行了探討,對相關(guān)技術(shù)研究和產(chǎn)品研發(fā)具有借鑒意義。