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