通量限制器(flux limiter)
守恆律的數值格式面臨一個殘酷的兩難。低階(迎風、Godunov)格式堅若磐石、無振盪,卻以數值耗散抹糊每一個尖銳特徵。高階格式在平滑區域銳利而準確,但在間斷附近會過衝與下衝,甩出虛假的波紋(吉布斯式振盪),甚至可能產生非物理的負密度。通量限制器正是兼取兩者之長的巧妙裝置:在解平滑處保有高精度,在解尖銳之處則恰恰展現穩健的低階行為。
其機制是一種由局部平滑度感測器控制的適應性混合。在每個格子面上,你量度那裡的解有多平滑,通常透過相鄰梯度之比 r(一側的斜率除以另一側的斜率)。限制器函數 phi(r) 接著決定配方:r 指示平滑、單調的區域時,phi 「開啟」高階修正以求精度;r 顯示陡峭梯度或局部極值(潛在的過衝)時,phi 平滑地把修正「調降」至安全的低階通量。混合後的通量是低階通量加上 phi(r) 乘以高階修正。常用的限制器——minmod(最具耗散、最安全)、van Leer、superbee(最銳利、耗散最少)、MC——是這個 phi 的不同選擇,以銳利度換取穩健。
理論的錨點是總變差不增(TVD)性質:好的限制器被設計成使格式的總變差(解所有上下起伏之和)在時間上永不增加,這正是禁止產生新振盪的條件——沒有新波紋、沒有過衝。TVD 格式給出物理上合理、保持單調性的震波捕捉。誠實的提醒:限制器是非線性的(這是不引入振盪而越過 Godunov 一階障的唯一辦法);它們會把真正的平滑極值削成一階(在峰值處有實質的精度損失);而嚴格的 TVD 框架本質上是一維的——沿格線的多維限制是一種實用的啟發法,而非定理。
對流一個由平滑隆起緊鄰尖銳階梯所組成的分布:用 minmod 限制器時,格式在隆起上以完整的二階精度運行,但當它逼近階梯時,限制器偵測到陡峭梯度而退回迎風,於是階梯保持單調、無過衝——這正是純高階格式所無法做到的。
平滑隆起用高階、尖銳階梯用低階——自動切換。
TVD 限制器可證明地抑制振盪,但它們也把平滑的極大與極小「削」成一階精度——天下沒有白吃的午餐。長距離傳輸後平滑脈衝被壓平的峰,是限制器在盡職,而非錯誤。