跟进时代的CFD书籍
我从2019年开始写我这本书,从2019年开始,我写了5年。
这本书前3章特别简单,就是我的CFD算法编程课的预习内容。前三章就是给他们写的。所有参加我得CFD算法编程课的人都必须要预习。这部分内容特别简单。
后面的内容我就开始大干一场了。所有的内容都是CFD直接相关。我还专门讨论了CFD与流体力学的区别。不知道现在会不会有人把CFD当成流体力学。这俩的研究重点完全不一样。咱这本书,侧重CFD,不是流体力学。
最近我还增加了很多数据驱动CFD的东西。这个东西比较新。很多经典CFD课题组还没有转变过来。我希望大家可以关注关注。还是挺有意思。能做一些经典CFD看起来完全不能干的事情。比如3秒出结果。
特色
有特色的地方在于:全部手敲。可能有人问,写书手敲不是应该的么?为啥还变成特色了?因为很多人都是复制粘贴,导致整个行业都变差了。这就跟卖课一样,很多纯属割韭菜,导致整个行业变差。100%的文字全部手敲。90%的图都是我自己画的,一些图是sci里面的。
是我自己对CFD的理解,力求好理解。就比如里面OpenFOAM相关内容占了100多页,我都是自己从代码理解出来的。一些教材解释的思路比较奇葩也比较复杂。我的解释一般相对简单明了。
涵盖各类CFD的细节以及前沿。这本书是老铁驱动来写的。老铁对算法看不明白,我就解析一下,写进去。
下面是2024年8月14日更新的全书目录:
第一版前言
第二版前言
第一章 不只是N-S方程
第二章 方程标识
2.1 方程的各种写法 2.2 索引标识法 2.3 偏导标识法 2.4 运算符标识法 2.5 的不同写法
第三章 N-S控制方程
3.1 导论 3.2 泰勒公式 3.3 流动模型 3.3.1 有限控制体模型 3.3.2 无穷小微团模型 3.3.3 物质导数 3.4 连续性方程 3.4.1 微分形式 3.4.2 积分形式 3.4.3 通量与速度散度 3.4.4 拉格朗日观点 3.4.5 连续性方程小结 3.5 动量方程 3.5.1 受力分析 3.5.2 动量守恒 3.5.3 守恒/非守恒转化 3.5.4 封闭 3.5.5 积分观点 3.6 学习要求与思考
第四章 经典CFD
4.1 湍流 4.1.1 直接模拟DNS 4.1.2 大涡模拟LES 4.1.3 雷诺平均RANS 4.1.4 二维DNS/LES 4.1.5 RANS-LES混合模型、DES模型 4.2 多相流 4.2.1 微观模型 4.2.2 宏观模型 4.2.3 介尺度模型 4.2.4 多尺度模型的适用性 4.3 动理学方程与矩方法 4.3.1 速度分布函数 4.3.2 矩方程 4.3.3 欧拉方程、五矩方程、十矩方程 4.4 Von Neumann稳定性分析与截断误差 4.4.1 变量分离法 4.4.2 抛物线方程稳定性分析、无条件稳定 4.4.3 截断误差 4.5 双曲系统与高阶格式 4.5.1 黎曼问题、双曲系统、特征变量 4.5.2 积分形式与守恒方程 4.5.3 封闭与基架点 4.5.4 中心格式 4.5.5 Lax-Friedrichs格式 4.5.6 Kurganov-Tadmor格式 4.5.7 Roe格式 4.5.8 Godunov格式 4.6 化学反应、ODE求解器 4.6.1 复杂反应、基元反应、可逆反应 4.6.2 反应速率、质量作用定律 4.6.3 刚性方程组、一个反应实例 4.6.4 ODE求解器 4.7 大气边界层与大气稳定度 4.7.1 湍流动能自保持 4.7.2 地转风与科氏力 4.7.3 中性、稳定以及不稳定大气环境 4.7.4 下垫面 4.8 多孔介质模型 4.8.1 多孔介质平均技术 4.8.2 Darcy定律 4.8.3 Forschheimer-Darcy定律 4.8.4 一个错误 4.8.5 多相多孔介质、IMPES算法 4.8.6 Darcy-Brinkman-Stokes方程、固相连续介质模型 4.9 结构力学、可变形的固体 4.9.1 两相固液多孔介质模型 4.10 稀疏线性系统求解器 4.10.1 基本迭代求解器 4.10.2 多重网格求解器 4.11 CFD小问题 4.11.1 CFD中的能量方程 4.11.2 结构网格与非结构网格 4.11.3 为什么为体膨胀系数项? 4.11.4 二阶张量不变量:Invariants 4.11.5 什么是应力的Deviatoric与Hydrostatic部分? 4.11.6 湍流方程中的涡粘近似、,, 4.11.7 NS方程的角动量守恒 4.11.8 变量有界性 4.11.9 守恒与非守恒、守恒变量与原始变量 4.11.10 分离式求解器与耦合式求解器 4.11.11 方程奇异 4.11.12 显性离散、隐性离散 4.11.13 Jacobian矩阵 4.11.14 非牛顿流体 4.11.15 Stokes流动 4.11.16 算子分裂法 4.11.17 总温、驻点温度 4.11.18 Sutherland法则 4.11.19 波的传输与边界条件 4.11.20 计算气动声学 4.11.21 Partial Elimination算法 4.11.22 阻力、切向力、法向力、阻力系数
第五章 OpenFOAM模型速查
5.1 OpenFOAM中的非结构网格 5.1.1 polyMesh中的points 5.1.2 polyMesh中的faces 5.1.3 polyMesh中的owner、neighbour 5.1.4 虚拟的cells,体心,体积 5.1.5 line和edge 5.1.6 偏斜度 5.1.7 非结构网格TVD格式 5.2 OpenFOAM中的fvc显性离散 5.2.1 fvc::ddt显性时间项计算 5.2.2 fvc::div显性对流项离散 5.2.3 fvc::laplacian显性拉普拉斯项计算 5.2.4 fvc::snGrad显性面法向梯度项计算 5.2.5 fvc::grad显性梯度项计算 5.2.6 fvc操作符的单位 5.3 OpenFOAM中的fvm隐性离散 5.3.1 稀疏线性系统、 lduMatrix
,fvMatrix
等5.3.2 fvm::ddt隐性时间项离散 5.3.3 fvm::laplacian隐性拉普拉斯项离散 5.3.4 拉普拉斯项非正交修正 5.3.5 fvm::div隐性对流项离散 5.3.6 fvm操作符的单位 5.4 OpenFOAM中的fvMatrix稀疏线性系统 5.4.1 fvMatrix之Gauss-Seidel求解器 5.4.2 fvMatrix之PCG、PBiCG求解器 5.4.3 fvMatrix的H()、H1()函数 5.4.4 fvMatrix的操作符重载 5.4.5 fvMatrix的correction()函数 5.4.6 fvMatrix中的setValue()函数 5.4.7 fvMatrix的单位 5.4.8 稀疏线性系统带宽减小算法 5.5 OpenFOAM中的MULES 5.5.1 寻找最大值最小值 5.5.2 反扩散通量 5.5.3 可流入/流出的最大反扩散通量、反扩散通量限制器 5.5.4 标准FCT限制器 5.5.5 限制器迭代更新算法 5.6 OpenFOAM中的多重参考系 5.7 OpenFOAM中的多孔介质模型 5.8 OpenFOAM中的IATE模型 5.9 OpenFOAM中的常用代码 5.9.1 div(U) = div(phi)? 5.9.2 laplacian(φ) = div(grad(φ))? 5.9.3 fvm::ddt(alpha1) - fvc::ddt(alpha1)? 5.9.4 -fvc::flux(-phir,..) = fvc::flux(phir,..)? 5.9.5 pEqn.flux()函数与fluxRequired关键词 5.9.6 fvc::div(phiHbyA)函数 5.9.7 fvc::reconstruct()函数 5.9.8 fvc::smooth()函数 5.9.9 setReference()函数 5.9.10 bound()函数 5.9.11 adjustPhi()函数 5.9.12 CourantNo三维库朗数 5.9.13 deltaCoeffs()函数 5.9.14 R、sigma、prime2Mean、以及雷诺应力相关量 5.9.15 OpenFOAM中的ODE求解器 5.10 OpenFOAM中的曳力模型 5.11 OpenFOAM中的状态方程 5.12 OpenFOAM中的边界条件 5.12.1 边界条件计算方法 5.12.2 OpenFOAM边界条件速查 5.13 OpenFOAM中的湍流模型 5.13.1 RANS湍流模型 5.13.2 LES湍流模型 5.13.3 RANS-LES混合模型 5.14 OpenFOAM中的壁面函数 5.14.1 物理理解 5.14.2 模型本质 5.14.3 CFD的实施 5.14.4 计算流程
第六章 数据驱动CFD
6.1 监督学习 6.2 流场重组、超分辨率、扩散模型 6.3 数据驱动加速求解 6.4 数据驱动湍流模型 6.5 数据驱动多相计算流体力学 6.6 循环神经网络与瞬态流场预测 6.7 正向逆向PINN、隐藏流体力学 6.8 PyTorch与libtorch 6.9 数据驱动CFD侧重点
附录 A 洞见偏微分方程
A.1 稳态扩散方程 A.2 非均一源项 A.3 扩散系数的影响 A.4 全局守恒与边界条件限定 A.5 OpenFOAM离散的矩阵系数