CelerisLab/tests/Cylinder_benchmark_targets_for_solver_validation.md
2026-05-12 19:08:49 +08:00

10 KiB
Raw Blame History

Cylinder benchmark targets for solver validation

Undermind

当前阶段不再追求一次覆盖全部圆柱文献,而是先把工作集压缩到两个最有诊断价值的 case一个固定圆柱文献硬对标一个旋转圆柱内部回归。这样做的目的是先回答两个更基础的问题求解器在当前边界能力下是否可靠以及 curved_boundary 这条代码路径是否自洽。

结合当前代码能力,最合适的固定圆柱主 benchmark 是 [Sah04] 的 2D 受限通道圆柱。该 family 与你现有的 parabolic 入口和上下 no-slip wall 最一致,且 [Sah04] 明确给出了 \\beta=0.3\ 下的临界 Reynolds 数和 \Re=100\ 时的 Strouhal 数。[Sah04] 旋转圆柱则先不做开放来流文献硬对标,因为南北 free-stream 与更匹配的外边界 family 尚未实现;当前最合理的做法,是沿用同一受限通道几何做内部旋转回归,并把 [Kan99b] 作为下一阶段开放来流 benchmark 的目标参考。[Kan99b]

在 [Sah04] 的表格中,\\beta=0.30\ 的第一临界 Reynolds 数和临界 Strouhal 已经给出;下面展示的表格就是当前最适合锁定的文献锚点。上图中的拖曳曲线则说明了为什么 \\beta=0.30, Re=100\ 是一个好用的周期态检查点。[Sah04]

当前锁定的两个 case

ID 角色 family 是否做文献硬评分 主要回答的问题
A1 固定圆柱主 benchmark [Sah04] confined cylinder 现在的 solver 在当前边界能力下能否对标稳定周期 shedding
B1 旋转圆柱内部回归 internal rotating confined cylinder curved_boundary 中 moving wall 项MEA 力torque符号约定是否自洽

A1 固定圆柱主 benchmark

A1 固定采用 [Sah04] 的受限通道 family并且只选一个最实用的工作点

  • 阻塞比 \\beta = D/H = 0.30\
  • Reynolds 数 \Re = 100\
  • 入口为 fully developed parabolic inflow \u=(1-x_2^2,0)\
  • 上下边界为 no-slip wall
  • 圆柱表面为 no-slip curved wall
  • 出口先用当前最稳的 neq_extrap,再用 zero_gradient 做敏感性对比
  • 运行模式统一为 double_buffer + LES off

选择这个点有四个原因。

  • 它和你当前代码能力最匹配 [Sah04]
  • 它已经越过一阶 Hopf 临界点,能同时检查 \C_d\、\C_l\ 和 \St\
  • \\beta=0.30\ 的壁效应足够明显,能放大曲壁与受力统计误差
  • 文献中给出了明确的 \Re_{crit}\ 和 \St\,比只靠图上读趋势更稳 [Sah04]

A1 的文献定义

项目 设定 说明
family sah04_confined 固定圆柱受限通道
Reynolds 数定义 \Re = U_{max} D / \nu\ 用最大入口速度归一化 [Sah04]
阻塞比定义 \\beta = D/H\ \H\ 是通道高度 [Sah04]
入口 parabolic \u=(1-x_2^2,0)\ [Sah04]
上下边界 no-slip wall 与当前代码能力一致
圆柱边界 no-slip curved wall 当前主排错对象
出口 neq_extrap 文献是二阶导数型出口,你的实现只能近似
上游长度 40D [Sah04]
下游长度 40D [Sah04]

A1 的具体网格方案

你提到圆柱直径至少要 20 个格点,这个判断是对的。对 \\beta=0.30\ 来说,若希望阻塞比在格点上精确,最方便的直径应取 3 的倍数。这样 \H=D/\beta\ 才是整数。基于这个原则,当前推荐如下。

方案 直径 D 半径 r 流体高度 H 当前代码中的 NY 流体长度 Lx 当前代码中的 NX 圆心
A1 base 24 12.0 80 82 1920 1922 \(960.5, 40.5)\
A1 confirm 30 15.0 100 102 2400 2402 \(1200.5, 50.5)\

这里的换算采用你当前代码的 wall 约定:

  • 流体带高度取 NY - 2
  • 上下边界各占一层边界行
  • 因此 NY = H + 2
  • 同理,若左右边界节点各占一列,则 NX = Lx + 2

推荐先用 D=24 做主排错,因为它已经超过 20 格点,同时保持 \\beta=0.30\ 精确。若 A1 结果基本合理,再用 D=30 做一次确认,判断误差是边界主导还是分辨率主导。

A1 的对标物理量

A1 不要求所有量都同等对待。当前建议分成三级。

优先级 物理量 对标方式 备注
P1 \St\ 点目标 [Sah04] 明确给出 \St=0.2115\ for \\beta=0.30, Re=100\
P1 \Re_{crit}\ 点目标 [Sah04] 给出 \Re_{crit}\approx 94.4\ for \\beta=0.30\
P2 平均阻力 \\overline{C_d}\ 带宽目标 图上可读约 1.8 到 2.0,当前先作为 band target
P3 升力振幅或 RMS 内部比较 文献未在该 case 明确列表,当前先记录,不做硬阈值
P3 质量漂移 诊断量 当前不纳入文献分数,但必须长期记录

这意味着A1 现在最硬的文献锚点其实是 \Re_{crit}\ 和 \St\,不是 \C_l\ 振幅。平均阻力可以作为第二层目标,但更适合作为带宽检查,而不是一个小数点后三位的硬分数。

A1 的通过标准

通过标准 解释
\St\ 相对误差 3 percent 内 这是当前最重要的周期态 benchmark
\Re_{crit}\ 相对误差 5 percent 内 用于确认整体 shedding 触发位置
\\overline{C_d}\ 落在 1.8 到 2.0 带内 当前只做 band target
质量漂移 单位 shedding 周期内接近零趋势 不要求绝对零,但不能持续单调失控

B1 旋转圆柱内部回归

B1 不拿来和 [Kan99b] 做硬评分,因为 [Kan99b] 用的是开放来流 O-grid 外场与 convective outlet[Kan99b] 而你当前还没有相同 family。B1 的意义不是“验证旋转圆柱文献是否复现”,而是“验证 moving wall 代码路径是否自洽”。

B1 直接继承 A1 的几何和网格,只改变圆柱壁面速度。这样做能最大限度隔离变量。

B1 的统一定义

项目 设定
family internal_rotating_confined
几何 与 A1 完全相同
参考速度 暂统一用 \U_{max}\
自旋比 \\alpha = \Omega D / (2U_{max})\
入口和上下边界 与 A1 完全相同
文献硬评分 不做

B1 的具体工作点

子工况 自旋比 \\alpha\ 用途
B1-0 0.0 必须退化回 A1 固定圆柱
B1+ +0.5 检查正转时的 moving wall 与受力响应
B1- -0.5 检查反转时 lift 和 torque 是否反号

只要 B1+ 和 B1- 不是镜像关系,就先不要扩大到更高 \\alpha\ 扫描。

B1 的目标物理量

优先级 目标
P1 \\overline{C_l}\ 符号 正反转必须反号
P1 torque 符号 正反转必须反号
P1 B1-0 与 A1 的一致性 \\alpha=0\ 必须退化成固定圆柱结果
P2 \\overline{C_d}\ 随 \\alpha\ 的变化 作为趋势检查
P2 质量漂移变化 看 moving wall 是否显著放大 leakage

是否纳入 MRT

你提到 MRT 可以直接纳入我同意。MRT 不会改变 benchmark family本身不会让设置更混乱。当前更合理的做法不是把 MRT 排除,而是把它放在同一 case 的第三个运行层级中。

顺序 collision 角色
1 SRT 最简单可解释基线
2 TRT 最直接的边界敏感性对比
3 MRT 观察多松弛是否改变 force 和 leakage

但解释顺序仍应保持不变:若 SRT 已经明显错,先不要拿 MRT 的较好结果掩盖基础边界问题。

推荐的首轮运行序列

顺序 run 目的
1 A1 base + SRT + neq_extrap 建立固定圆柱主 benchmark
2 A1 base + TRT + neq_extrap 检查曲壁与碰撞敏感性
3 A1 base + MRT + neq_extrap 记录 collision family 差异
4 A1 base + SRT + zero_gradient 判断 outlet 对 \St\ 与 force 的影响
5 A1 confirm + TRT + neq_extrap 做一次分辨率确认
6 B1-0 + TRT 检查是否退化回 A1
7 B1+ + TRT 检查正转
8 B1- + TRT 检查反转
9 B1+ + MRT 看 moving wall 下 MRT 是否改变趋势

当前阶段的判读重点

  • 若 A1 的 \St\ 比 \\overline{C_d}\ 更先失真,先查 outlet 和曲壁时序。
  • 若 A1 的 \\overline{C_d}\ 偏差更明显,先查 MEA 力定义、系数归一化和 q 分布。
  • 若 B1 正反转不反号,优先查 6 w_i (c_i\cdot u_w) 的符号和 torque 杠杆臂。
  • 若 B1-0 不能退化回 A1说明 rotating 路径在 \\alpha=0\ 时仍残留额外改动。

结论

当前最合理的工作集就是 A1 和 B1。A1 负责文献硬对标,且具体锁定在 [Sah04] 的 \\beta=0.30, Re=100\;网格优先用 D=24,再用 D=30 做确认。[Sah04] B1 负责 rotating path 的内部回归,优先看正反转镜像关系与 torque 符号,而不是先追开放来流文献值。[Kan99b] 这样可以在最少的 case 上同时推进“求解器可靠性”和“代码缺陷排查”两条线。


References

Sah04
Kan99b