王海云,袁安安,朱洪強
(南京郵電大學理學院,南京 210023)
計算流體力學的多數(shù)問題都可以歸為非線性雙曲守恒律方程,這類方程最大的特點是方程的解可能含有間斷.RKDG(Runge-Kutta discontinuous Galerkin)方法[1]是求解該類方程的前沿和熱點方法之一,它有眾多優(yōu)點,如便于進行h和p自適應,邊界條件處理簡單,能夠應對復雜幾何區(qū)域,精度高、并行效率高等,目前已有大量研究成果.h自適應方法可以根據(jù)解的情況自動調(diào)整網(wǎng)格,通常對間斷處的網(wǎng)格細化處理和光滑處的網(wǎng)格放粗,能利用較小的代價更加精確地捕捉間斷,如Hartmann[2]、Remacle[3]、Dedner[4]等利用誤差估計控制網(wǎng)格加密,獲得了很好的h自適應效果.p自適應方法[5-7]則是通過改變各單元上逼近函數(shù)的次數(shù),實現(xiàn)高階逼近和計算存儲的節(jié)?。甂ubatko等[5]應用p自適應RKDG方法對淺水波方程進行求解,自適應效果良好.而hp自適應方法[8-10]將這兩種自適應方法結合在一起,兼有h和p自適應的優(yōu)點.目前RKDG的自適應方法大多基于誤差估計,而非線性雙曲守恒律方程的誤差估計通常比較困難.Tian等[11-12]分別對兩個不同方程設計了一個基于梯度的自適應指標,實現(xiàn)局部DG方法的h自適應;筆者利用壞單元指示子分別給出了RKDG的h自適應[13-15]和p自適應[16]方法.本文擬在文獻[13]和[16]的基礎上設計一種新的hp自適應算法,以期兼有h和p自適應的優(yōu)點,從而進一步提高計算效果.
考慮如下一維標量雙曲守恒律問題
(1)
(2)
對解中包含間斷的問題,RKDG方法須使用限制器來控制數(shù)值偽振蕩.限制器首先探測間斷附近的單元,即壞單元(稱為壞單元指示子),然后通過修正壞單元上的數(shù)值解來控制數(shù)值振蕩,使格式穩(wěn)定.本文采用基于minmod函數(shù)的TVB限制器.記
(3)
數(shù)值解在間斷區(qū)域的誤差總是O(1)數(shù)量級,所以如果在間斷處采用低次的多項式逼近,不僅可節(jié)省存儲空間,還能減弱高次多項式逼近引起的數(shù)值振蕩.為實現(xiàn)對間斷點的精確捕捉,需要對間斷區(qū)域采用密網(wǎng)格,光滑區(qū)域采用粗網(wǎng)格,以節(jié)省計算量.壞單元指示子可以用來區(qū)分間斷區(qū)域和光滑區(qū)域,通過對間斷區(qū)域的壞單元進行加密并使用低次多項式逼近,對光滑區(qū)域的好單元對(來自同一次加密的兩個單元)合并后采用高次多項式逼近,從而實現(xiàn)hp自適應.在單元合并時,由于低次多項式和高次多項式合并之后的新單元仍是低次的,這會降低數(shù)值精度,故只有當2個單元都是高次多項式時才能合并.基于這些考慮,本文設計了hp自適應RKDG算法,算法流程圖如圖1所示,具體步驟如下:
圖1 算法流程圖Fig.1 Flowchart of hp-adaptive algorithm
1)給定網(wǎng)格最大加密深度L、高次多項式次數(shù)kmax和低次多項式次數(shù)kmin、最終求解時間T;
6)如果tn+1 采用3個經(jīng)典算例進行數(shù)值試驗,給出kmin=1,kmax=3,D=4,初始單元數(shù)N0=40時的hp自適應算法結果,并與不做任何自適應的標準RKDG方法進行比較.為了說明新算法的有效性和優(yōu)勢,標準RKDG的單元數(shù)分別取N0和2N0. 圖2 一維Burgers方程hp自適應算法結果Fig.2 Results of hp-adaptive algorithm for one-dimensional Burgers’ equation 圖3 Riemann問題hp自適應算法結果Fig.3 Results of hp-adaptive algorithm for Riemann problem 圖4 Buckley-Leverett問題hp自適應算法結果Fig.4 Results of hp-adaptive algorithm for Buckley-Leverett problem 本文設計了一個新的基于壞單元指示子的hp自適應RKDG算法.該算法先使用壞單元指示子來捕捉間斷,然后在間斷區(qū)域采用密網(wǎng)格和低次多項式逼近,在連續(xù)區(qū)域采用粗網(wǎng)格和高次多項式逼近.數(shù)值試驗表明,這個新的hp自適應算法兼有h和p自適應的優(yōu)點,不僅捕捉間斷更加精準,而且有效節(jié)約了計算消耗.3 算例
4 結論