!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 : (块)对角缩放
5 : 使用多重网格预处理包 ML 的 AMG
10 : 块 ILU(0)
11 : 块 ILU(1)
12 : 块 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(适用于非常难以求解的问题)