有限元素法與有限體積法

h 細化與 p 細化(h- and p-refinement)

你的有限元素解不夠精確——該如何改進?有兩個完全不同的旋鈕。你可以用「更多、更小」的元素(把網格切得更細),或者保持相同的元素但在每個元素上用「更高次」的多項式(更豐富的形狀函數)。前者稱為 h 細化(h 是元素尺寸的符號),後者稱為 p 細化(p 是多項式次數)。在兩者之間選擇、或將它們結合,是有限元素法中核心的工藝決策之一。

「h 細化」縮小 h:把每個元素分割成更小的元素,增加節點。對一個用 p 次元素的光滑解,能量誤差以 O(h^p) 下降,所以在線性元素(p=1)上把 h 減半大致把誤差變成四分之一。「p 細化」在保持網格不變下提高多項式次數 p:線性帽變成二次,再變三次。值得注意的事實是,在真解「光滑」(解析)之處,p 細化以「指數」速度收斂——誤差如 O(c^{-p}),某個 c > 1——遠遠勝過任何代數型的 h 速率。但這種速度很脆弱:在尖角奇異性或尖銳層附近,p 細化停滯,而 h 細化(在出問題之處密集放置極小元素)勝出。「hp 細化」結合兩者:在光滑區域用高 p、在奇異性附近用小 h,即使對有尖角奇異性的問題也能達到指數收斂。

誠實的工程要點是「自適應」:你很少能事先知道解在哪裡困難。所以現代程式先在粗網格上求解一次,用後驗誤差估計子標出哪些元素承載最多誤差,再只細化那些元素——並依局部解看起來是否光滑,逐元素選擇 h 或 p。這個自動、由誤差驅動的迴圈把自由度恰恰集中在能換來回報之處,而非到處均勻細化(那會在平緩區域浪費力氣)。難處在於:p 細化需要一套階層式的高階基函數與良態的高次元素,而 hp 自適應的記帳(懸吊節點、可變次數)實作起來確實錯綜複雜。

對光滑解 sin(pi x),在固定的粗網格上從 p=1 到 p=2 到 p=3,每步把誤差砍掉數個數量級——指數型的 p 收斂。對解有尖角奇異性的 L 形區域,單純提高 p 幾乎沒幫助;只有在尖角密集放置小元素(h 細化)才能恢復良好的速率,而 hp 表現最佳。

p 細化對光滑解是指數型的;h 細化拯救尖角;hp 兩者兼得。

提高多項式次數 p 只在解光滑之處快速收斂——在奇異性處,p 細化停滯,你必須改為細化 h。到處均勻細化是浪費;讓後驗誤差估計子來決定該把力氣花在哪裡。

又称
mesh refinementhp-adaptivityh-versionp-versionhp-FEM網格細化自適應細化