10 KiB
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