1. 总体认知
CAE中的非线性方程组求解主要依赖牛顿法(及牛顿法的变体),步骤如下
以线搜索方法为例,流程如下:
2. 方法分类
适用范围 | 大类 | 小类 | 描述 |
牛顿法 | |||
雅可比矩阵难获取 | 拟牛顿法 | Broyden(Secant method)、BFGS | 采用一个近似的Jacobian矩阵 |
非精确牛顿法(非线性Krylov方法) | Nonlinear Richardson, conjugate gradient, GMRES, and Anderson Mixing | 适用于大规模场景 | |
雅可比矩阵难获取 | JFNK | JFNK | Jacobian matrix free Krylov子空间法 |
同伦法(CONTINUATION/HOMOTOPY) |
将上面的牛顿类算法打开来看,又能看到里面的分类
层次1:
线搜索(先计算方向、再计算步长)、信赖域(在信赖域半径内,计算方向)
层次2:
步长计算:fullstep、backtrack、polynomial/quadratic、MoreThuente
方向计算:Newton、Steepest Descent、NonlinearCG、Broyden(拟牛顿)、Tensor、Modified-Newton、Quasi-Newton(拟牛顿)
参考:NOX: NOX Class Overview
SNES: Nonlinear Solvers — PETSc 3.21.3 documentation