跳轉至

!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 行及之後 **

(第 2 行)NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
變數名稱 屬性 說明
NITER I 反覆次數(預設值: 100)
iterPREmax I Additive Schwarz 前處理的反覆次數(預設值: 1)
(建議值為 1;平行計算時 2 有時也有效)
NREST I Krylov 子空間數(預設值: 10)
(僅在求解方法選擇 GMRES 時有效)
NCOLOR_IN I 多色排序的目標顏色數(預設值: 10)
(僅在 OpenMP 執行緒數為 2 以上時有效)
RECYCLEPRE I 前處理器設定資訊的重複使用次數(預設值: 3)
(僅在非線性分析中有效)
(第 3 行)RESID, SIGMA_DIAG, SIGMA
變數名稱 屬性 說明
RESID R 截斷誤差(預設值: 1.0e-8)
SIGMA_DIAG R 計算前處理矩陣時施加於對角成分的倍率(預設值: 1.0)
(若 ILU 前處理發生除以零或發散,設定大於 1.0 的值有時可求解)
SIGMA R 未使用(預設值:0.0)

PRECOND=5 時(可省略)

若 PRECOND 指定其他值,第 4 行會被忽略。

(第 4 行)ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
變數名稱 屬性 說明
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

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

使用搭配 SSOR 前處理的 GMRES 法,將 Krylov 子空間數設為 40,多色排序的目標顏色數設為 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

使用搭配 ILU(0) 前處理的 CG 法,將計算前處理矩陣時施加於對角成分的倍率設為 1.1

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

將 CG 法的前處理設為使用 ML 的 AMG 法

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

將 CG 法的前處理設為使用 ML 的 AMG 法,粗網格求解器設為 MUMPS(適用於難以求解的問題)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

將 CG 法的前處理設為使用 ML 的 AMG 法,多重網格循環設為 W-cycle(適用於難以求解的問題)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

將 CG 法的前處理設為使用 ML 的 AMG 法,粗網格求解器設為 MUMPS,最大層級數設為 2(適用於非常難以求解的問題)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2