希望深入理解CFD代码实现的仿真工程师、从事CFD算法开发的科研人员、需要自主开发求解器的研究生与研究人员。
掌握CFD求解器的代码实现架构与核心模块。
能够用Python/C++编写二维不可压缩/可压缩流求解器。
理解网格处理、矩阵组装、迭代求解的编程实现细节。
编程环境配置:开发工具链的选择(VS Code + Python/C++);数值计算库(NumPy、Eigen、PETSc)的安装与配置;可视化工具(Matplotlib、ParaView)的集成。
网格数据结构的编程实现:网格的顶点、边、面、体的数据结构;结构化网格的数组存储;非结构化网格的邻接关系存储(点-点、点-面连接);网格文件的读写(CGNS、VTK格式)。
有限体积法的代码实现:控制体的循环遍历;面通量的计算;梯度重构(格林-高斯、最小二乘法);限制器函数的编程。
扩散方程的求解器编写:一维/二维热传导方程的离散;系数矩阵的组装(稀疏矩阵存储);边界条件的代码实现(Dirichlet/Neumann);迭代求解器的调用。
对流扩散方程求解器:对流项的离散格式(一阶迎风、QUICK、TVD);数值通量的计算;对流占优问题的稳定性处理;与解析解的对比验证。
不可压缩NS方程求解器:SIMPLE算法的编程实现;动量方程与压力修正方程的交替求解;压力方程的系数矩阵组装;松弛因子的代码实现。
可压缩NS方程求解器:密度基求解器的架构;通量分裂方法(Roe、AUSM)的编程;限制器与高阶重构;时间推进(Runge-Kutta)的实现。
湍流模型的编程实现:零方程模型(Baldwin-Lomax)的代码;一方程模型(SA)的离散与求解;两方程模型(k-epsilon)的刚性问题处理。
并行计算的编程基础:区域分解方法;MPI通信的基本模式;共享内存并行(OpenMP)的简单应用;并行效率的评估。
求解器的调试与验证:常见编程错误(内存泄漏、索引错误);数值发散的原因与调试;单元测试的编写;与商用软件/基准解的对比验证。
后处理模块开发:VTK格式的输出编写;流场数据的插值与切片;涡量/Q准则的计算代码;自定义云图/矢量图的生成。
综合实战项目:完整编写二维顶盖驱动方腔流(Lid-driven Cavity)求解器,包含网格生成、SIMPLE算法实现、结果后处理与验证。