適應性網格加密(adaptive mesh refinement)
一個解很少在各處都同樣困難。區域的大部分可能平滑而無趣,而所有的戲劇——尖銳的邊界層、裂縫尖端、移動的震波——都擠進一個極小的區域。為了解析那一個區域而在各處都鋪均勻的細網格,會在容易的部分上浪費巨大的工夫。適應性網格加密是更聰明的替代:讓計算本身去發現它在哪裡吃力,只在那裡放小元素,而在解平緩處留下又大又便宜的元素。
讓這成為可能的引擎是後驗誤差估計子——「後驗」意指「事後」,由你已有的數值解算出,不同於 Cea 引理那種需要未知真解的先驗界。一個典型的基於殘差的估計子會在每個元素上計算:離散解未能滿足原偏微分方程的程度有多差(元素殘差),再加上一個量度元素邊上通量失配的跳變項。估計子大就表示那裡誤差大。於是迴圈是「求解、估計、標記、加密」:在當前網格上求解,估計各元素的誤差,標記估計子最大的元素,只加密那些(把每個被標記的三角形分成更小的),再重複。網格恰在需要之處變細,自動進行。
報酬是效率:要達到目標精度,你所需的未知量可能比均勻網格少好幾個數量級,而對奇異問題(內凹角、點負載),適應性能「恢復」均勻網格所失去的最佳收斂速率。凡是解具有局部特徵且幾何複雜之處,它都不可或缺。誠實的提醒:估計子只在常數倍內界定真誤差(可靠性與效率常數);好的估計子是問題相關的,對非線性或非自伴方程更難;而加密必須維持網格的協合與良好形狀,否則它會引入自己的誤差。它有表親——p-加密(提高多項式次數而非分割元素)與 hp-適應性(兩者並用)——對光滑解能收斂得更快。
在 L 形區域上,拉普拉斯方程的解在內凹角處有奇異性;均勻網格只能以受損的速率 h^(2/3) 收斂。適應性加密反覆把微小元素叢集於該角落,恢復了最佳速率,並以零頭的未知量達到同樣的精度。
在誤差所在之處加密——角落用小元素,他處用大元素。
誤差估計子是「估計」誤差,並不「保證」它。多數估計子只在未知常數倍內界定真誤差,因此「估計子低於容差」是一條啟發式的停止規則,而非嚴格的證明——除非你使用較罕見的有保證/平衡型估計子。