跳轉至

求解器與前處理

FrontISTR 的線性求解器可選擇直接法或反覆法;反覆法會搭配前處理器來求解線性方程式。MPC 處理方式與接觸自由度消去則是輔助選項,用於決定含有多點約束或接觸約束的線性系統要以何種形式處理。

功能概觀

求解器與前處理由以下選項構成。首先在線性求解器中選擇反覆法或直接法,只有選擇反覆法時才搭配前處理器。

類別 主要選項 作用
反覆法 CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN 以較高的記憶體效率求解大型稀疏矩陣。
反覆法用前處理器 SSOR、對角縮放、BILU、AMG、SAINV、RIF 改善反覆法的收斂性。直接法不使用。
直接法 MUMPS, MKL 透過分解穩健地求解線性方程式。
MPC 處理方式 懲罰法、MPC-CG 法、顯式自由度消去法 將多點約束反映到線性系統中。
接觸自由度消去 自動、始終啟用 切換 SLAGRANGE 接觸所新增接觸自由度的處理方式。
輔助功能 條件數估算、矩陣傾印、記錄輸出 輔助除錯、收斂性確認與效能評估。

平行執行時,可結合以區域分割為基礎的 MPI 平行與 OpenMP 執行緒平行。反覆法是大型平行分析的標準選項;直接法則用於已連結相應程式庫且需要更穩健求解的環境。

求解器與前處理器的選擇方式

首先決定使用反覆法或直接法;若選擇反覆法,再接著選擇前處理器。

判斷軸 建議考量
問題規模 中小型問題使用直接法較穩定且容易處理。大型問題則反覆法的記憶體效率較佳。
矩陣對稱性 對稱正定問題可考慮 CG。非對稱問題可考慮 BiCGSTABGMRESGPBiCG 等。
平行環境 MPI 平行時結合反覆法與區域分割。OpenMP 平行下的前處理可考慮支援多色法的 SSOR。
前處理器(選擇反覆法時) 先嘗試預設的 SSOR,再考慮 AMG。收斂良好時 SSOR 計算較輕量;複雜的大型問題則適合 AMG 前處理。
接觸與 MPC 含接觸分析或多點約束的分析中,MPC 處理方式與接觸自由度消去的選擇會影響收斂性與穩健性。
外部程式庫 MUMPSMKL、AMG 可在連結相應程式庫的建置中使用。

一般分析中,收斂判定值、最大反覆次數、前處理器的對角修正係數等維持預設值通常即可正常運作。僅在收斂緩慢或發散時,才依序重新檢視反覆法、前處理器、MPC 處理方式與接觸自由度消去。參數值與格式請參閱關鍵字參考的 !SOLVER

反覆法

反覆法針對大型稀疏矩陣,透過反覆執行矩陣向量乘積與前處理來更新解。FrontISTR 可選擇以下反覆法。

反覆法 適用指標 備註
CG 對稱正定問題 結構分析與熱傳導分析的標準候選方法。
BiCGSTAB 非對稱問題 接觸或耦合造成強烈非對稱性時的候選方法。
GMRES 非對稱問題 指定 Krylov 子空間大小後使用。
GPBiCG 非對稱問題 作為 BiCGSTAB 系列的改良方法使用。
GMRESR 非對稱問題、進階用途 以巢狀方式使用 GMRES 的選項。
GMRESREN 非對稱問題、進階用途 GMRESR 系列的遞迴版本。

CG 的前提是矩陣為對稱正定。若摩擦接觸、非對稱約束處理、耦合效應等造成強烈非對稱性,可考慮 BiCGSTABGMRESGPBiCG 等。GMRES 增大 Krylov 子空間大小有時能改善收斂性,但記憶體使用量也會增加。

指定 METHOD2 後,當 CG 發散或失效時可切換至替代反覆法。此功能是以 CG 為主要求解器時的備援機制,其餘設定值與資料行沿用主要求解器的設定。

前處理

前處理是為改善反覆法收斂性而轉換係數矩陣的處理,只在選擇反覆法時套用。直接法不使用前處理。即使使用相同反覆法,不同前處理器也可能大幅改變收斂所需的反覆次數與計算時間。

前處理器 特徵 適用指標
SSOR 標準前處理器。支援多色排序。 優先嘗試的候選方法。廣泛用於結構分析。
對角縮放 使用對角成分的輕量前處理器。 希望降低計算成本時。
BILU 以區塊為單位的不完全 LU 分解。 SSOR 難以收斂之問題的候選方法。
AMG 使用 Trilinos-ML 的代數多重網格法。 大型問題或由階層性誤差成分主導之問題的候選方法。
SAINV Sparse Approximate Inverse。 接觸問題或分散式記憶體環境中的特殊前處理候選方法。
RIF Robust Incomplete Factorization。 不完全分解系列的另一候選方法。

SSOR 是標準選項,OpenMP 平行時使用多色排序版本。對角縮放較輕量,但改善收斂的效果依問題而異。BILU 實作為以區塊為單位的不完全 LU 分解,也支援一般 DOF 的矩陣。BILU 系列在反覆法發散時,有自動增加對角修正係數 SIGMA_DIAG 並重試的路徑;值的指定方式請參閱關鍵字參考。

AMG 使用 Trilinos-ML,因此建置時必須啟用 ML。可指定平滑器、多重網格循環、粗化方法等,詳細值請參閱關鍵字參考。若在含接觸問題或 MPC 的平行分析中使用 SAINV,區域分割時的重疊深度有時會影響收斂性。

直接法

直接法透過分解係數矩陣來求解線性方程式。由於不依賴反覆次數,因此較為穩健,在含接觸分析或約束條件的分析中可作為穩定選項。另一方面,問題規模增大時,記憶體使用量也會增加。

直接法 平行環境 用途
MUMPS MPI 平行 在分散式記憶體環境中以直接法求解稀疏矩陣。
MKL Intel MKL / OpenMP Intel MKL 的直接法。內部使用 Intel PARDISO。多個 MPI 程序時使用 Cluster MKL 路徑。DIRECTmklMKL 的別名。

直接法可用於對稱與非對稱矩陣。MUMPSMKL 必須在建置時連結相應程式庫。沒有這些程式庫的環境無法使用,因此所需相依程式庫與 CMake 選項請參閱建置指南。

FrontISTR 也有不使用外部程式庫的內建直接法路徑,但一般分析選擇直接法時,通常應優先考慮 MUMPSMKL

直接法不套用前處理。即使在 !SOLVER 指定前處理器,直接法路徑也不會參照該設定。

MPC 處理方式

MPC 處理方式是將由多點約束連接的自由度反映到線性方程式中的方法。即使輸入中的約束式相同,不同處理方式也會改變係數矩陣的性質與收斂性。

MPC 處理方式 定位 預設用途
懲罰法 對約束式加入較大的剛性,以近似滿足約束。 直接法的預設值。
MPC-CG 法 在反覆法內處理含約束之矩陣向量乘積的舊式方法。 不建議使用。
顯式自由度消去法 消去受約束自由度,求解縮減後的線性系統。 反覆法的預設值。

直接法預設使用懲罰法,反覆法預設使用顯式自由度消去法。MPC-CG 法是為相容性保留的舊式選項;一般新分析應使用顯式自由度消去法或所選直接法的預設處理。

MPC 處理方式可透過 !SOLVERMPCMETHOD 明確指定。各值的意義與格式請參閱關鍵字參考。

接觸自由度消去

接觸自由度消去是在將線性系統交給線性求解器前,先縮減 SLAGRANGE 接觸新增的接觸自由度。消去接觸自由度有時可改善反覆法所處理線性系統的性質。

預設的自動模式下,使用反覆法時會進行接觸自由度消去,使用直接法時則不進行。直接法提供直接處理含接觸自由度之擴展系統的路徑。

明確指定 CONTACT_ELIM 後,即使使用直接法也可進行接觸自由度消去。輸入端對接觸類型、接觸配對、接觸演算法的選擇,請參閱接觸與嵌入頁面。

輔助功能

可利用條件數估算、矩陣傾印與記錄輸出來調查求解器的收斂性與效能。一般分析不需要這些功能,主要在除錯或效能評估時啟用。

功能 用途 備註
條件數估算 CGGMRES 中輸出條件數指標。 可在啟用 LAPACK 的建置中使用。
矩陣傾印 將交給求解器的矩陣與右側向量儲存至檔案。 支援 Matrix Market、CSR、BSR 格式。
DUMPEXIT 矩陣傾印後結束分析。 僅取出矩陣供外部驗證時使用。
ITERLOG 輸出反覆法的收斂歷程。 用於確認殘差變化。
TIMELOG 輸出求解器計算時間。 VERBOSE 會輸出更詳細的明細。
STEPLOG 輸出步驟資訊。 用於確認分析程序。

矩陣傾印是用外部工具確認分析所組裝係數矩陣的功能。啟用 DUMPEXIT 後,會在儲存矩陣與右側向量時結束分析。條件數估算是可用於 CGGMRES 的試驗性功能,用於診斷收斂性。

相關項目