本目录的新算例与旧随体坐标 LBM 数据无关。这里先在实际变形三角网格上求解二维不可压缩 Navier–Stokes 方程,再保存网格、速度、压力、气动力和结构响应供网页回放。浏览器切换的是已计算工况,不是实时 CFD 求解。
实际工况结果、独立检查以及时间步敏感性见 ALE 动网格计算核验。
圆柱直径 D=1,参考圆心为 (0,0),固定外边界矩形为 x∈[−5,15]、y∈[−5,5]。圆柱壁由 48 段多边形近似。主网格含 1024 个顶点、1930 个三角形;速度采用二次 P2、压力采用一次 P1 的 Taylor–Hood 元,共 7956 个速度自由度和 1024 个压力自由度。
所有工况采用同一套无量纲基准:D=1、Uref=1、ρ=1,时间单位为 D/Uref。黏度 ν=.01,因此 U=.7、1、1.4 分别对应 Re=70、100、140;固有频率 fn=.16 对三个风速均不变。改变 U 既改变雷诺数,也改变约化风速。质量比定义 m*=m/(ρπD²/4)=10,因此方程中的质量 m=7.8539816;阻尼比 ζ=.01,刚度 k=m(2πfn)²,黏性阻尼系数 c=2ζm(2πfn)。
参考域上解一次 Laplace 方程 ∇²h=0,圆柱边界 h=1,全部外边界 h=0。实际计算网格严格使用
x=X,y=Y+h(X,Y) y_body。
故圆柱壁整体平移,内域三角形真实变形,全部外边界节点坐标保持不变。每步检查三角形有向面积比,拒绝倒置网格。网页使用导出的同一组 h 和 y_body 重建真实节点,未另外制造示意权重。
实验室坐标流速满足
∂u/∂t|X + ((u−w)·∇)u − ∇·[ν(∇u+∇uᵀ)] + ∇p = 0,∇·u=0,
w=(0,h Δy_body/Δt)。
每一个时间步均在新节点坐标上重建有限元空间,重新装配质量、黏性、对流、压力和散度算子。速度与压力在一个鞍点系统内求解,时间用隐式 Euler、非线性项用前一时刻速度的 Oseen 线性化;没有把固定圆柱流场重新映射后冒充 ALE。使用非保守 ALE 差分 M_new(u_new−u_old)/Δt,避免错误的质量矩阵差分引入伪源。check_constant_field.py 用同一套矩阵和完整线性系统验证任意网格形变下常数速度场的保持。
当前全部工况一致使用四阶三角形积分。质量、黏性及散度项满足积分阶数要求,但 P2 Oseen 对流项最高为五次多项式,因此该项有一阶欠积分。pilot 场上将同一对流作用量改用五阶积分重装配,差异约为其 L2 范数的 0.022%;这只是一个场的局部算子检查,不是总体误差界。后续定量研究应统一使用至少五阶积分并重做网格、时间步敏感性。此次未将积分阶数改变混入时间步对照。
网格边界条件和流体边界条件分别为:
- 全部外边界的网格位移、速度为零。
- 入口、上边界、下边界的流体速度为 (U,0)。
- 出口为流体自然零牵引边界;压力基准由该开口边界确定。
- 圆柱边界满足无滑移 u=(0,v_body),其中 v_body=Δy_body/Δt,与实际网格运动一致。
启动速度场包含一次性 0.002U 量级局部横向小扰动,以打破完全对称初始状态;后续无处方升力、无持续正弦驱动、无规定结构位移。
在每条实际圆柱边上对二次速度梯度和一次压力进行高斯积分。流体外法线 n_f 指入圆柱,流体对圆柱作用力为
F=−∮σ n_f ds,σ=−pI+ν(∇u+∇uᵀ)。
横向气动力反馈 m ÿ+c ẏ+k y=Fy。当前实现采用显式分区耦合:结构隐式 Euler 步使用上一时刻已算得的真实气动力,更新 y 与 v 后求解该实际变形网格上的流体。m*=10 用来减轻不可压流显式耦合的附加质量不稳定性,但不消除时间离散误差。固定圆柱对照完全禁止结构位移,仍求解同一套流体方程。
NPZ 保存参考节点、三角形、h、边界节点、逐帧 P2 全部速度自由度、顶点速度、P1 压力、网格速度、结构状态及完整气动力时程。后续验证版本另直接保存实际节点帧与 P2 单元连接。网页涡量是实际 P2 速度梯度得到单元值后的面积加权顶点投影,只影响可视化。
有限矩形宽度为 10D、圆柱多边形近似、有限网格、有限记录窗口及时间步都会影响频率与幅值。二维 Re≤140 的层流教学计算不能替代高雷诺数桥梁截面的风洞或工程 CFD。弱散度和代数残差接近机器精度仅证明离散方程求解充分,不能证明连续解误差同样小。主步长 Δt=.05,同初值 Δt=.025 近频工况也已计算至 t=120;相同末40时间窗位移半幅相差约2.01%,升力 RMS 相差约35.27%,因此不能宣称总体时间收敛。尤其隐式 Euler 的数值阻尼不能被误认为设置的物理阻尼比。完整比较见 ALE 动网格计算核验。
来源与实现参考:
- scikit-fem 官方 Taylor–Hood Stokes 示例
频率估计使用末 40 时间单位的去均值、Hann 窗 FFT,原始有效分辨率约为 Δf=1/T=.025。零填充仅插值谱峰,不增加真实频率分辨率;记录的五位小数是数据格式,不是测量精度,不能仅凭谱峰接近便宣称已经验证锁频。
运行依赖:Python、NumPy、SciPy、scikit-fem 12.0.2、meshpy 2026.1.1。入口 solve_ale.py,打包 pack_ale.py,独立审核位于 qa 目录。