Skip to content
Gains Summary
Main Navigation 首页 / Home
C++ 编程 / C++ Programming
系统与高性能 / Systems & Performance
Web 开发 / Web Development
人工智能 / Artificial Intelligence
工业软件 / Industrial Software
其他内容 / Other Topics
C++ 编程 / C++系统与性能 / SystemsWeb 开发 / Web人工智能 / AI工业软件 / Industrial

外观

Sidebar Navigation

← 工业软件 / Industrial Software

船舶 CAE / Marine CAE

1. 船舶 CAE 全景:从 MarineFlow 与 SAM 认识流体、结构和数值求解 / Marine CAE with MarineFlow, SAM, Fluid Mechanics, and Structural Analysis

2. MarineFlow 与 SAM 的应用场景:工程问题如何选择软件 / Choosing MarineFlow or SAM for Engineering Scenarios

3. CAE 通用工作流:从工程问题到可信结论 / A General CAE Workflow from Engineering Questions to Credible Conclusions

4. 船舶流体物理:黏性、湍流、兴波、旋涡与空化 / Marine Fluid Physics with Viscosity, Turbulence, Waves, Vortices, and Cavitation

5. CFD 控制方程:质量、动量、压力耦合与离散系统 / CFD Governing Equations, Pressure-Velocity Coupling, and Discretization

6. MarineFlow 使用路线:从船体模型到流场和水动力结果 / A MarineFlow Workflow from Hull Geometry to Hydrodynamic Results

7. 船舶结构物理:载荷、应力、变形、振动与失稳 / Marine Structural Physics with Loads, Stress, Vibration, and Buckling

8. 有限元方法:结构怎样从连续物体变成 Ku=f / The Finite Element Method from Continuous Structures to Ku Equals f

9. SAM 使用路线:从结构建模到 Job、求解和后处理 / A SAM Workflow from Structural Modeling to Jobs and Post-Processing

10. 结构分析类型:静力、模态、动力、屈曲与非线性分别求什么 / Structural Analysis Types from Statics and Modes to Buckling and Nonlinearity

11. 流固耦合:MarineFlow 的压力怎样成为 SAM 的结构载荷 / Fluid-Structure Interaction from MarineFlow Pressure to SAM Loads

12. 工业求解中的方程与矩阵:看懂 CFD 和 FEA 的计算核心 / Equations and Matrices at the Core of CFD and FEA Solvers

13. 非并行优化:在增加核心之前先减少计算量 / Reducing Computation Before Adding Parallel Hardware

14. 并行加速场景详解:什么方程、矩阵和步骤适合什么方法 / Mapping Equations, Matrices, and Solver Stages to Parallel Methods

15. CPU、GPU 与 MPI:工业求解器怎样组合多层并行 / Combining CPU, GPU, and MPI Parallelism in Industrial Solvers

16. 仿真可信度:怎样避免得到“彩色但错误”的结果 / Simulation Verification and Validation for Credible Results

17. 综合案例:用 MarineFlow 与 SAM 串起船舶流体、结构和并行计算 / Integrated MarineFlow and SAM Cases Across Fluids, Structures, and Parallel Computing

本页目录

工业求解中的方程与矩阵:看懂 CFD 和 FEA 的计算核心 / Equations and Matrices at the Core of CFD and FEA Solvers ​

📅 创建时间:2026-07-20 🏷️ 标签:#稀疏矩阵 #线性方程 #特征值 #非线性系统 📚 前置知识:[[10-fluid-structure-interaction]]


1. 为什么要先看矩阵性质 ​

同样写成 Ax=b,矩阵可能对称或非对称、正定或不定、稀疏或稠密。矩阵性质决定能否使用某种算法,也决定并行效率。

text
物理模型 → 离散方法 → 矩阵结构 → 求解算法 → 硬件映射
1

不能先决定“用 GPU”,再倒推应该使用什么算法。


2. 线性方程组 ​

text
Ax = b
1

在 SAM 中,A 可能是刚度矩阵;在 MarineFlow 中,可能是压力、速度或湍流变量的离散矩阵。

典型计算操作:

  • 稀疏矩阵向量乘 y=Ax
  • 向量点积
  • 向量线性组合
  • 三角方程求解
  • 矩阵分解
  • 预条件器应用

3. 稀疏矩阵存储 ​

CSR ​

保存:

  • 非零值数组
  • 列索引数组
  • 每行起始位置

适合通用稀疏矩阵、逐行遍历和 SpMV,是 CPU/GPU 稀疏计算常用格式。

CSC ​

按列组织,某些直接分解和列操作更方便。

BSR ​

按小块存储。结构有限元每个节点包含多个自由度时,矩阵天然具有块结构,BSR 可以减少索引开销并提高局部数据复用。

ELL/SELL ​

把每行非零项填充到接近统一长度,适合 GPU 规则访问,但行长度差异大时会浪费空间。


4. 对称性 ​

线性弹性结构刚度矩阵通常对称:

text
K = Kᵀ
1

对称矩阵只需存储一半,并可使用专门算法。

CFD 对流离散、摩擦接触、非保守载荷和某些多物理耦合通常产生非对称矩阵。


5. 正定、半正定与不定 ​

对称正定 SPD ​

对任意非零向量:

text
xᵀAx > 0
1

约束充分的线性弹性刚度矩阵通常 SPD,可使用 Cholesky 和 CG。

半正定 ​

未约束结构存在刚体模态,刚度矩阵可能半正定并出现零特征值。

不定矩阵 ​

拉格朗日乘子、鞍点问题、屈曲和某些耦合系统会产生正负特征值并存的矩阵,需要更一般算法。


6. 条件数 ​

text
κ(A) = ||A|| · ||A⁻¹||
1

条件数大意味着小误差可能被放大,迭代收敛通常较慢。

造成病态的原因:

  • 网格尺寸差异过大
  • 材料刚度相差巨大
  • 过强惩罚参数
  • 单元质量差
  • 几乎重复的约束
  • CFD 网格高度非正交

预条件器的目标可以理解为把原系统变成条件更好的等价系统。


7. CFD 中的矩阵 ​

压力泊松型方程 ​

通常接近椭圆问题,稀疏、邻域耦合,常适合多重网格。

速度和标量输运 ​

对流项使矩阵可能非对称。上风格式更稳定,但会增加数值扩散。

湍流和相分数 ​

同样是输运型系统,但系数非线性强,可能需要限制器和更强稳定化。

CFD 通常不会组装一个包含所有变量的巨大单体矩阵,而是分步求解压力、速度、湍流和相分数。


8. FEA 中的矩阵 ​

静力 ​

text
Ku=f
1

模态 ​

text
Kφ=λMφ
1

屈曲 ​

text
Kφ=-λKgφ
1

隐式动力 ​

时间离散后形成有效刚度:

text
Keff = K + a0M + a1C
1

非线性 ​

每轮 Newton 迭代形成切线矩阵:

text
Kt Δu = R
1

9. 特征值问题 ​

特征值问题不直接求全部矩阵元素对应的所有特征值。大型模型通常只求低阶若干模态。

常见计算核:

  • 稀疏矩阵向量乘
  • 解移位线性系统
  • 向量正交化
  • Rayleigh 商

当模态数量增加时,正交化可能从次要成本变成瓶颈。


10. 显式动力为什么不解大矩阵 ​

若质量矩阵集中为对角矩阵:

text
a = M⁻¹(fext-fint)
1

每个自由度可以直接更新,不需全局矩阵分解。这使显式动力具有很好的并行性。

代价是稳定时间步非常小:

text
Δtcrit ≈ 最小单元特征长度 / 材料波速
1

11. 矩阵性质与算法速查 ​

系统性质常用方法
稠密小矩阵LU、QR、SVD
稀疏 SPDCholesky、CG、AMG
稀疏对称不定LDLᵀ、MINRES
稀疏非对称LU、GMRES、BiCGSTAB
多右端项分解复用、Block Krylov
广义特征值Lanczos、Arnoldi、LOBPCG
局部显式更新SIMD、GPU Kernel

下一篇:[[12-serial-and-algorithmic-acceleration]]

最后更新于:

Pager
上一篇11. 流固耦合:MarineFlow 的压力怎样成为 SAM 的结构载荷 / Fluid-Structure Interaction from MarineFlow Pressure to SAM Loads
下一篇13. 非并行优化:在增加核心之前先减少计算量 / Reducing Computation Before Adding Parallel Hardware

持续记录,持续成长

Copyright © Tidenflow