基于PETSc的CFD并行JFNK求解器
發(fā)布時間:2019-08-07 09:22
【摘要】:并行負載平衡和迭代求解性能是影響結(jié)構(gòu)多塊網(wǎng)格CFD(Computational Fluid Dynamics)并行求解效率的兩個重要因素。結(jié)構(gòu)多塊網(wǎng)格CFD并行求解通常以網(wǎng)格區(qū)塊分組實現(xiàn)負載平衡,網(wǎng)格塊數(shù)限制了進程并行規(guī)模,為了提高并行度,通常需要進行網(wǎng)格區(qū)塊重剖分(或稱二次剖分)。傳統(tǒng)上對于結(jié)構(gòu)多塊網(wǎng)格多采用顯式剖分方法,即先采用網(wǎng)格剖分程序(通常與CFD求解器軟件相對獨立)生成網(wǎng)格量近似相等的若干網(wǎng)格塊組,再進行并行求解。但是在工程實際中,往往需要多次重剖分,使得CFD前期數(shù)據(jù)處理耗時而繁瑣。CFD隱式求解算法穩(wěn)定性好,但Jacobian矩陣難以計算,目前主要采用近似Jacobian矩陣,這往往降低了迭代過程的收斂速度。Jacobian-Free Newton-Krylov(簡稱JFNK)算法是近年來逐漸發(fā)展起來的牛頓類非線性求解方法,僅需計算Jacobian矩陣與向量乘積(轉(zhuǎn)化為非線性函數(shù)相減),可回避了直接求解Jacobian矩陣的困難。針對一個實際的三維結(jié)構(gòu)網(wǎng)格CFD應(yīng)用,如何采用JFNK非線性算法取代傳統(tǒng)的LUSGS類線性解法,并能在并行計算中避免傳統(tǒng)的網(wǎng)格重剖分問題,這是本文開展工作的出發(fā)點。對此,本文采用PETSc(The Portable Extensible Toolkit for Scientific Computation)數(shù)值并行軟件框作為二次開發(fā)平臺。PETSc作為目前主流的開源數(shù)值并行軟件框架,向用戶提供了并行向量、矩陣等自有的數(shù)據(jù)結(jié)構(gòu),屏蔽了通用數(shù)值并行算法、并行通信等諸多實現(xiàn)細節(jié),很大程度上降低了并行程序開發(fā)的難度。PETSc不僅提供了針對單塊結(jié)構(gòu)網(wǎng)格的分布數(shù)組(DMDA)并行數(shù)據(jù)結(jié)構(gòu),也為科學(xué)計算提供了豐富的非線性與線性方程組求解器,其中牛頓類方法非線性求解器包括了對JFNK算法的支持。針對CFD結(jié)構(gòu)多塊網(wǎng)格的大規(guī)模并行計算問題,基于網(wǎng)格顯式剖分,采用PETSc提供的非線性解法器實現(xiàn)JFNK求解功能替代原有CFD軟件的線性隱式求解部分,實現(xiàn)JFNK并行求解器;并在此基礎(chǔ)上,利用PETSc提供的分布式數(shù)組數(shù)據(jù)結(jié)構(gòu)(DMDA),實現(xiàn)無需顯式重剖分的并行JFNK求解器(本文稱此為隱式剖分)。對于一個實際的三維結(jié)構(gòu)網(wǎng)格CFD應(yīng)用而言,采用PETSc的數(shù)據(jù)結(jié)構(gòu)與解法器,實現(xiàn)JFNK非線性求解器的大規(guī)模并行,是一個涉及數(shù)值方法、并行軟件框架、網(wǎng)格剖分、軟件集成與性能測試等覆蓋CFD求解器計算多個關(guān)鍵環(huán)節(jié)的問題。為此,本文開展了以下工作:(1)在分析傳統(tǒng)CFD計算流程的基礎(chǔ)上,建立了JFNK方法用于CFD計算的數(shù)值模型,梳理了CFD的定常流動非線性函數(shù)、非定常流動單時間步法非線性函數(shù)和雙時間步法的非線性函數(shù),給出JFNK方法的多種預(yù)條件,為在實際三維CFD應(yīng)用中實現(xiàn)JFNK方法奠定了數(shù)值模型基礎(chǔ)。研究了PETSc基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)、軟件體系結(jié)構(gòu)和數(shù)值計算功能支持,理清了PETSc框架中的通用JFNK方法及其實現(xiàn)思路,為基于PETSc框架的二次開發(fā)奠定了基礎(chǔ)。(2)基于PETSc和原始三維結(jié)構(gòu)網(wǎng)格CFD應(yīng)用,設(shè)計實現(xiàn)了并行JFNK非線性求解器。通過分析三維結(jié)構(gòu)網(wǎng)格CFD軟件計算流程,理清CFD計算過程中各模塊的作用以及原CFD程序的數(shù)據(jù)傳遞關(guān)系,依據(jù)PETSc的數(shù)據(jù)結(jié)構(gòu)特點、JFNK非線性計算的功能要求,對原CFD程序進行了數(shù)據(jù)結(jié)構(gòu)和計算流程重新設(shè)計,重點對JFNK非線性函數(shù)對應(yīng)三維CFD應(yīng)用右手項模塊進行了計算重組,并設(shè)計了JFNK預(yù)條件模塊,完成了PETSc的JFNK方法與原始三維結(jié)構(gòu)網(wǎng)格CFD軟件的無縫集成。(3)在(2)的基礎(chǔ)上,進一步實現(xiàn)無需顯式重剖分的并行JFNK求解器。研究發(fā)現(xiàn)PETSc的新型數(shù)據(jù)結(jié)構(gòu)-分布式數(shù)組數(shù)據(jù)結(jié)構(gòu)(DMDA)具備實現(xiàn)自動負載平衡的潛力。針對多區(qū)結(jié)構(gòu)網(wǎng)格CFD問題,對各原始網(wǎng)格區(qū)塊分別建立相對獨立的MPI通信子系統(tǒng),在各個通信子系統(tǒng)內(nèi)通過區(qū)塊與進程間的自動資源映射來實現(xiàn)負載平衡。通過PETSc框架,將網(wǎng)格重剖分與JFNK并行求解器實現(xiàn)了緊耦合,從而避免了傳統(tǒng)上CFD應(yīng)用往往需要顯式二次剖分所帶來的問題。(4)在“天河二號”高性能計算機上,采用多個網(wǎng)格規(guī)模和并行規(guī)模驗證了本文的兩種并行JFNK求解器的正確性,比較了計算性能。測試算例為三維圓柱繞流問題,網(wǎng)格最大規(guī)模達13.5億,最大并行規(guī)模達5184 CPU核。數(shù)據(jù)表明,對于結(jié)構(gòu)多塊網(wǎng)格CFD數(shù)值模擬,本文的兩種求解器均可行,其中隱式剖分版本相對顯式剖分版本具有明顯的性能優(yōu)勢,且隱式剖分版本具有良好的可擴展。
【學(xué)位授予單位】:國防科學(xué)技術(shù)大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2013
【分類號】:O35;TP338.6
本文編號:2523859
【學(xué)位授予單位】:國防科學(xué)技術(shù)大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2013
【分類號】:O35;TP338.6
【參考文獻】
相關(guān)期刊論文 前1條
1 鄧小剛;高階精度耗散加權(quán)緊致非線性格式[J];中國科學(xué)(A輯);2001年12期
,本文編號:2523859
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2523859.html
最近更新
教材專著