!SOLVER¶
求解器控制
必要的控制資料。
參數¶
METHOD = 求解方法 (CG、BiCGSTAB、GMRES、GPBiCG、CR、DIRECT、DIRECTmkl、MUMPS)
DIRECT : 接觸分析以外的直接法(僅循序處理)(目前無法使用)
DIRECTmkl : 使用 Intel MKL 的直接法
MUMPS : 使用 MUMPS 的直接法
選擇直接法時,資料行會被忽略。
3 自由度用反覆法可使用 OpenMP 執行緒平行
PRECOND = 反覆法的前處理方法 (1、2、3、5、10、11、12)
1, 2 : (Block) SSOR(僅 3 自由度問題使用多色排序)
3 : (Block) Diagonal Scaling
5 : 使用多重網格前處理套件 ML 的 AMG
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
10、11、12 僅可用於 3 自由度問題
使用 OpenMP 執行緒平行時,建議使用 SSOR、Diagonal Scaling 或 ML
ITERLOG = 是否輸出反覆法求解器的收斂歷程 (YES/NO)(預設值: NO)
TIMELOG = 是否輸出求解器計算時間 (YES/NO/VERBOSE)(預設值: NO)
USEJAD = 是否使用向量機用排序 (YES/NO)(預設值: NO)
僅在 3 自由度問題使用反覆法時有效
SCALING = 是否進行使矩陣對角成分為 1 的縮放 (YES/NO)(預設值: NO)
僅在 3 自由度問題使用反覆法時有效
DUMPTYPE = 矩陣傾印格式 (NONE、MM、CSR、BSR)(主要用於除錯)
NONE : 不傾印(預設值)
MM : Matrix Market 格式
CSR : Compressed Sparse Row(CSR)格式
BSR : Blocked CSR 格式
DUMPEXIT = 矩陣傾印後立即結束程式 (YES/NO)(預設值: NO)
MPCMETHOD = 多點約束條件的處理方法 (1、2、3)
1: 懲罰法(使用直接法時的預設值)
2: MPC-CG 法(不建議使用)
3: 顯式自由度消去法(使用反覆法時的預設值)
ESTCOND = 條件數估算頻率(試驗性)
每到指定的反覆間隔以及反覆結束時估算條件數
指定為 0 時不進行估算
METHOD2 = 第二求解方法 (BiCGSTAB、GMRES、GPBiCG)(試驗性)
僅在 METHOD 指定 CG 時有效
CG 法發散時,自動切換至第二方法繼續求解
其他參數與資料行使用相同資訊
CONTACT_ELIM = 指定接觸分析是否進行自由度消去 (0,1)
0: 僅在使用反覆法時進行自由度消去(預設值)
1: 始終進行自由度消去(包括使用直接法時)
** 第 2 行及之後 **
| 變數名稱 | 屬性 | 說明 |
|---|---|---|
| NITER | I | 反覆次數(預設值: 100) |
| iterPREmax | I | Additive Schwarz 前處理的反覆次數(預設值: 1) (建議值為 1;平行計算時 2 有時也有效) |
| NREST | I | Krylov 子空間數(預設值: 10) (僅在求解方法選擇 GMRES 時有效) |
| NCOLOR_IN | I | 多色排序的目標顏色數(預設值: 10) (僅在 OpenMP 執行緒數為 2 以上時有效) |
| RECYCLEPRE | I | 前處理器設定資訊的重複使用次數(預設值: 3) (僅在非線性分析中有效) |
| 變數名稱 | 屬性 | 說明 |
|---|---|---|
| RESID | R | 截斷誤差(預設值: 1.0e-8) |
| SIGMA_DIAG | R | 計算前處理矩陣時施加於對角成分的倍率(預設值: 1.0) (若 ILU 前處理發生除以零或發散,設定大於 1.0 的值有時可求解) |
| SIGMA | R | 未使用(預設值:0.0) |
PRECOND=5 時(可省略)¶
若 PRECOND 指定其他值,第 4 行會被忽略。
| 變數名稱 | 屬性 | 說明 |
|---|---|---|
| ML_CoarseSolver | I | ML 的粗網格求解器(1: 以平滑器代替、2: KLU(循序直接法)、3: MUMPS(平行直接法))(預設值: 1) (建議值:難以求解的問題使用 3 或 2,一般問題使用 1) |
| ML_Smoother | I | ML 平滑器(1: Chebyshev、2: SymBlockGaussSeidel、3: Jacobi)(預設值: 1) (建議值為 1) |
| ML_MGCycle | I | ML 多重網格循環(1: V-cycle、2: W-cycle、3: Full-V-cycle)(預設值: 1) (建議值:難以求解的問題使用 2,一般問題使用 1) |
| ML_MaxLevels | I | ML 最大層級數(預設值: 10) (特別難以求解的問題,將粗網格求解器設為直接法並使用 2(記憶體不足時使用 3);一般問題建議使用 10) |
| ML_CoarseningScheme | I | ML 粗化方案(1: UncoupledMIS、2: METIS、4: Zoltan、5: DD)(預設值: 1) (建議值為 1 或 5) |
| ML_NumSweep | I | ML 平滑器的掃掠次數(Chebyshev 時為多項式次數)(預設值: 2) (建議值:Chebyshev 使用 2,SymBlockGaussSeidel 使用 1) |
使用範例¶
使用搭配 SSOR 前處理的 CG 法,將最大反覆次數設為 10000,截斷誤差設為 1.0e-8
使用搭配 SSOR 前處理的 GMRES 法,將 Krylov 子空間數設為 40,多色排序的目標顏色數設為 100
使用搭配 ILU(0) 前處理的 CG 法,將計算前處理矩陣時施加於對角成分的倍率設為 1.1
將 CG 法的前處理設為使用 ML 的 AMG 法
將 CG 法的前處理設為使用 ML 的 AMG 法,粗網格求解器設為 MUMPS(適用於難以求解的問題)
將 CG 法的前處理設為使用 ML 的 AMG 法,多重網格循環設為 W-cycle(適用於難以求解的問題)
將 CG 法的前處理設為使用 ML 的 AMG 法,粗網格求解器設為 MUMPS,最大層級數設為 2(適用於非常難以求解的問題)