流体力学¶
examples/fluid/ 目录下包含一组完整的不可压缩流动算例,从带收敛性分析的人工构造 Stokes 问题,到耦合动量与能量的瑞利-贝纳德对流。它们全部基于 Taylor-Hood P2-P1 混合装配:二次速度场与线性压力场在同一个 MixedElementAssembler 上声明,因此该速度-压力对满足 inf-sup(LBB)稳定性条件,且弱形式 即 全部离散化——无需 SUPG/PSPG 稳定化,也无需调节 tau 参数。
该系列算例共享同一套实现框架(请先阅读 Taylor-Hood Stokes,其余均为物理模型与边界条件的变体):
声明
Field(trial="u", test="v", order=2, components=d)与Field(trial="p", test="q", order=1),在forward中编写标量被积函数;定常问题采用 Picard 迭代对对流项进行线性化(滞后速度作为已知数据代入),非定常问题则添加后向 Euler 质量项以及
forward_vector载荷;边界条件通过
assembler.layout掩码以及未作改动的Condenser施加。
在生成的二阶网格上,速度节点与网格点重合;对于线性 gmsh/MeshGen 网格(圆柱、障碍物等),二次空间通过 拓扑方式 构造——无需在二阶下进行重新网格化。具体机制参见 混合装配。
人工构造 Stokes 解 + 收敛性分析——混合装配教程。
Re=100 的定常 NS 方程,Picard 迭代——以单个维度通用的弱形式实现二维与三维算例。
非定常 DFG 基准算例:后向 Euler、gmsh 网格上的拓扑 P2、通过混合载荷向量计算涡量。
Re=150 的稳态通道流,绕六个圆形障碍物,网格通过 MeshGen 的 CSG 构造。
三场 Boussinesq 系统——速度、压力与温度统一纳入一个块矩阵。
具有精确解的衰减涡——收敛性研究的范例。