# 空间梁—20 个二维流场：三通道双向耦合与验证边界

日期：2026-10-24。对象为 1000 m 教学悬索桥主跨、20 个等宽 50 m 条带。本次保留 LBM，不把求解器更名为 FVM。数值报告为同目录 `coupling-verification.json`；完成状态和实际测试时长均以报告为准。

## 已实现的计算链

1. 由空间有限元的同一时刻状态，提取每个条带的横移 y、竖移 u、绕桥轴扭角 θ，以及 vy、v、ω。反馈取与荷载插值功率共轭的加权平均；图表可另取几何中点。
2. 预测本批末端运动。worker 使用相同三次 Hermite 轨迹计算各流体步的位移和速度，使批内两者相容。
3. 在固定世界流体格网上移动、转动六边形箱梁轮廓。重新判定固体格点，重建实际斜面与格子连线的交点；新露出的流体点进行补值。
4. 动壁条件同时接收平移速度和转动速度。流体每片独立求出沿世界 +y 的阻力、沿 +z 的升力和绕当前形心 +x 的扭矩。
5. 沿桥长线性插值三分力，形函数积分成 FE 载荷；以批次端点力的平均值推进同一个空间梁。新结构状态进入下一批反馈。

因此横移、竖移和扭转都实际反向影响流体，不是只驱动三维显示。20 个独立流场通过结构共享运动，但没有桥轴方向的流体输运；这是二维条带流固耦合，不是全桥三维 CFD。

当前采用**显式分区耦合**，不在一个批次内反复迭代到流固残差收敛。流体使用预测端点，FE 使用计算得到的气动力更新端点；它们有相同的目标时间，数值状态却可以有差异。导出保留 FE 平均状态、FE 中点状态和实际流体边界状态；验证分别检查同步时间与端点差。

## 悬吊作用直接装配到空间 FEM

结构为 100 个空间梁单元、101 节点，每节点 `[ux,uy,uz,rx,ry,rz]` 六自由度。x=50、100、…、950 m，y=±16 m 设置 38 根等效竖向弹簧。

每根弹簧的增量伸长 `δ=uz+y·rx`，刚度 k=375000 N/m，直接向该节点 `(uz,rx)` 子块装配：

`k × [[1,y],[y,y²]]`。

偏心吊点同时提供竖向和扭转恢复力。独立弹簧是教学切线支承，不是恒定向上的画面力；也不能当作真实柔性主缆的完整替代。正式悬索体系应保留主缆/吊杆，或在成桥平衡态附近缩聚其刚度，而缩聚矩阵通常包含不同吊点之间的关联。本模型未解成桥找形、初张力与恒载平衡。

## 动边界的坐标与速度

截面中线六点先减去形心偏置 zc=0.0738814855 m。对参考轮廓点 `(r_y,r_z)`：

```text
Y = y + cosθ r_y − sinθ r_z
Z = u + sinθ r_y + cosθ r_z
VY = vy − ω (Z−u)
VZ = v  + ω (Y−y)
```

来流速度保持世界坐标值，不再减去截面速度；截面运动由壁面速度单独进入反弹条件。这避免旧随体坐标加速度源与新动壁条件重复计算。

扭矩始终绕当前移动形心 `(y,u)` 计算：`Mx=∑[(Y−y)Fz−(Z−u)Fy]`。流体已经使用形心坐标，主程序不能再加一次 `zc×drag`。

采用固定背景网格上的 Bouzidi 线性插值动壁反弹，交点距离来自实际多边形斜面，不把轮廓强行贴在半格位置。相对壁速进入动量交换测力。新露出的格点使用局部刚体壁速平衡分布加邻近流体的平均非平衡部分；失效时退回平衡分布，并保留计数。格点覆盖、释放、补值动量、质量变化和反弹通量分别记账，未用密度重归一化隐藏质量误差。

这些离散处理仍须验证。使用相对速度的测力公式不等于已经证明所有动边界误差都消失；反弹边界本身与格点类型转换也会影响结果。[Wen 等，2014](https://doi.org/10.1016/j.jcp.2014.02.018)给出相对速度动量交换；[Peng 等，2017](https://doi.org/10.1103/PhysRevE.95.013301)指出仅修改测力公式不能完整解决运动边界的伽利略不变性问题。

## 三通道空间传递与时间交换

20 条带中心为 x=25+50i m。升力和阻力单位为 N/m，扭矩单位为 N·m/m。各分量在中心之间线性插值，两端各 25 m 端值延伸。

对每个输入分量装配 `Gdi=∫Nd(x)Li(x)dx`。弯曲使用 Hermite 形函数，扭转使用线性形函数；积分在所有条带中心折点处分段。FE 载荷为 `F=Gq`；反馈为 `dBar_i=Giᵀd/50`，速度同理，满足：

`50 Σ(lift·vBar + drag·vyBar + moment·omegaBar) = QᵀqDot`。

这证明空间传递的虚功一致。它不证明整个显式时间交换守恒，也不证明动壁反弹和补值的总流体能量守恒。

验证同时记录：

- 模态输入功率与三通道条带功率之差；
- FE 外力功 `Σ Qmean·Δq`、结构能量与阻尼耗能；
- 流体各格子步累计的对结构边界功，乘条带宽度 50 m；
- 上述边界功与 FE 外力功的差，以及预测/解后端点差。

FE 每批恒定平均力的解析状态转移不消除分区滞后。边界功差用于评估耦合，不将其隐藏在“结构积分是精确的”这一说法中。

## 当前参数与数值代价

| 项目 | 本版值 |
|---|---|
| 实际独立求解器 | 20；4 worker 各 5 片 |
| 每片格子 | 384×144 |
| 格距、梁高分辨率 | 0.25 m；12 格 |
| 固定世界流体域 | 96 m×36 m |
| 流体方法 | D2Q9 BGK LBM，移动多边形反弹 |
| 参考风速 | 20 m/s |
| 格子参考速度、参考 Ma | 0.045；约 0.078 |
| Re_D | 默认 40；教学低 Re |
| 等效运动黏度 | 默认 1.5 m²/s |
| 格子时间步 | 0.0005625 s |
| 默认交换批长 | 8 步 = 0.0045 s |
| 步长敏感性对照 | 同一网格与来流，8 步对 4 步 |

全域同时加密了风嘴；没有宣称局部自适应加密。低 Re 模型会改变实桥空气流动机制，不能将当前力系数或运动结果外推为实桥颤振临界风速。

模型运行范围由 `metadata().limits` 提供：竖移 2.25 m、横移 5.535 m、扭角 0.25 rad，两向速度 4 m/s、角速度 0.3 rad/s，以及每格子步轮廓移动不超过 0.3 格。它们是程序保护范围，不是这些幅值内都已满足小变形或精度要求。局部密度、格子速度和距离流体域边缘的间距还会独立触发停止。

## 独立验收怎样做

`node verify-coupling.cjs` 使用实际 `flow-worker.js`，而非给 20 条带复制一个示范结果。它读取主程序当前 CONFIG 和规定阵风函数，记录核心文件哈希、实际步数、真实运行耗时及物理时长。

默认短时检查为 2048 个流体步（1.152 s），分别用 8/4 步交换。可通过 `--steps` 延长。流体启动标记为五个计算域对流时间，即 24 s；短时运行显然仍处于启动观察阶段，不能用于统计平均系数或长期稳定性的结论。

检查包括：

1. 20 个编号、20 份真实格子更新计数、流体/FE 时钟一致。
2. 从六点参考截面和实际边界姿态独立重建世界多边形，逐格核对全部 20 片的 solid mask；检查实际覆盖/释放格点。
3. 六个反馈状态抵达 worker 预测端点；预测端点与 FE 解后端点差另报。
4. 三分力与空间 FE 的功率映射、有限结构能量、阻尼耗能及界面功差。
5. 各通道的 8/4 步 RMS 差与最大绝对差，分别报告位移、扭角、力和矩。
6. 对明确标注的小幅非零 FE 初态，跑同样 20 个流场；分别切断横向、扭转反馈，检查真实计算力是否改变。
7. 分别切断位置或速度做接口机制消融。为了清楚隔离端点输入，这些消融使用一格子步交换；它们故意破坏运动学联系，不是可接受物理方案或精度对照。

非零初态测试的首横模态最大平动设为 0.3 m、首竖模态为 0.15 m、首扭转最大角约 0.005 rad，并给定小初速度。流体在相应初始姿态建立 mask，不从零姿态瞬移。它用于核对接口有无真正接通，不与默认风致响应混为一谈。

2026-10-24 已完成上述全 20 片核验，核心文件哈希在运行前后相同。8 步和 4 步两组均推进 2048 个流体步，每组实际完成 40960 次条带格子步；全部运行及反事实耗时 427.33 s，其中两组主对照分别耗时 181.63 s、194.54 s。这是本机本次测量，不代表实时性能。

| 量 | 8 对 4 步的 RMS 相对差 | 最大绝对差 |
|---|---:|---:|
| 竖向中点位移 | 4.302% | 0.07424 mm |
| 横向中点位移 | 3.542% | 6.823 mm |
| 中点扭角 | 0.740% | 2.619×10⁻⁶ rad |
| 升力 | 2.169% | 137.65 N/m |
| 阻力 | 0.105% | 66.51 N/m |
| 扭矩 | 1.299% | 1905.35 N·m/m |

以上为 0.0045–1.152 s 的共同采样窗口，每个量含 5120 个条带时刻样本。竖向和横向响应仍有约 4% 的交换步长敏感性，**尚未证明时间收敛**。

8 步组的全时段最大竖位移 1.496 mm、横移 0.2316 m、扭角 2.948×10⁻⁴ rad；最大局部 Ma 为 0.10956，密度范围 0.95800–1.04494。20 片独立多边形/逐格 mask 对照均为零差；仅抽取批次末步也已观察到 18 个格点释放、15 个覆盖，证明不是只改变壁速却固定轮廓。此处是批端抽样计数，不能冒充全部格子步的累计总数。

三通道 FE 功率差最大 8.15×10⁻¹⁰ W。8 步组 FE 外力功为 437704.40 J、最终结构能量 432683.92 J、阻尼耗能约 5020.47 J；每批结构能量账本残差最大 3.4×10⁻⁸ J。流体逐格累计边界功与 FE 外力功仍存在差值：8 步为 +13.64 J，4 步为 −639.69 J，且没有随本次减步单调趋零。因此**不声称整体流体—结构能量严格守恒**。

补充直接核对 1541 个固体格点的速度，平移加转动公式与 snapshot 中速度最大差 3.74×10⁻⁹ m/s（含 Float32 显示舍入）。非零初态下，断开横移反馈使升力 RMS 改变 15.63%，断开扭转反馈使其改变 88.87%；关闭位置或速度也分别改变真实流场载荷。这些变化证明接口确实影响求解，不是物理精度的误差估计。

报告的 `passed=true` 只表示所列同步、几何、反馈机制和有限状态检查通过；`timeConvergenceEstablished=false` 与 `gridConvergenceEstablished=false` 同时保留。不会将“画面会晃”或“没有报错”作为精度证据。

另外，流体作者的独立 `flow-verification.json` 对同域、同 1.08 s 启动段进行了梁高 8/12/16 格对照。12→16 格阻力均值差约 0.103%，但升力、扭矩均值非单调，相对差约 42%/44%。另以0.54—1.08 s的等时采样比较整个力时程，12→16格的升力、阻力、力矩相对L2差为7.52%、1.82%、5.87%（flow-grid-traces.json）。小均值的相对变化与完整时程误差需分开理解。故**尚未达到气动力网格独立**。短时启动平均值也不能代表统计稳态；当前模型适合解释求解链和方法，不据此给出工程气动参数。

## FVM 路线是否可行

可以。结构端仍可使用此类空间梁 FEM，流体端改为二维切片 Navier–Stokes FVM，通过 ALE 贴体动网格、重叠网格或固定网格浸入边界表达截面运动；交换位移/速度与力/矩，并检查参考轴、映射守恒和时间耦合残差。采用 FVM 不自动消除这些接口问题。

当前网页已采用固定背景 LBM 处理运动截面，因此不需要为了实现“截面真移动”而更换方法。若后续采用 FVM，可参考 [OpenFOAM 网格运动](https://doc.openfoam.com/2212/tools/processing/mesh-motion/)、[preCICE OpenFOAM 适配器](https://github.com/precice/openfoam-adapter/blob/develop/docs/README.md)和[守恒/一致数据映射](https://precice.org/configuration-mapping)。这些工具尚未部署在本网页，亦未在本次运行中使用。

其他一手方法依据：[Bouzidi、Firdaouss、Lallemand（2001）](https://doi.org/10.1063/1.1399290)提出反弹与空间插值结合的边界处理；[Lallemand、Luo（2003）](https://doi.org/10.1016/S0021-9991(02)00022-0)讨论移动固体边界。文献说明方法来源，不代替本代码的独立核验。
