跳转至

Physics-Informed Coarsening for Multigrid Graph Neural Surrogates

会议: ICML 2026
arXiv: 2605.31013
代码: 项目主页
领域: 科学计算 / 图神经 PDE 代理 / 固体力学
关键词: 多重网格 GNN, 物理残差, 固体力学代理, 网格粗化, 长时滚动

一句话总结

本文为固体力学有限元仿真训练了一个 Encoder-Processor-Decoder 多重网格 GNN 代理模型,核心创新是把"粗化(downsampling)时选哪些节点"从几何启发式(FPS)/学习注意力换成"按动量守恒方程的离散残差打分再 TopK",从而把粗层算力倾斜到应力集中、接触界面、大变形等动力学关键区域,在 DeformingPlate 上把 rollout RMSE 从 SOTA 的 \(11.46\times 10^{-3}\) 降到 \(6.5\times 10^{-3}\)(提升约 43%)。

研究背景与动机

领域现状:用神经网络替代 FEM 做 PDE 仿真已经在流体(Navier-Stokes、湍流、翼型)上跑出了几个数量级的加速,主流架构是 MeshGraphNet 系的 Encode-Process-Decode 图神经网络,配合多重网格/U-Net 风的分层消息传递(MultiScale MeshGraphNets、BSMS-GNN、Multi-Scale GNN、HCMT、UNISOMA)来缓解深层 GNN 的过平滑、提升长程信息传播。

现有痛点:(i)固体力学被严重低估——它和流体不一样,存在大变形、塑性、接触、应力集中这些强非线性局部现象,主流 benchmark(基本全是流体)测不出来;(ii)多重网格架构里"粗化时选哪些节点保留"这个核心设计普遍用 farthest point sampling(FPS)这类纯几何启发式,或者用学习到的 attention 分数——前者完全不看物理,会均匀铺满整个 domain,把算力浪费在没什么物理活动的安静区域;后者训练时容易跑偏。

核心矛盾:粗层节点数有限(本文固定 50%),如果按几何均匀分布,应力集中和接触界面这些"动力学关键但空间上局部"的区域分到的粗层算力就不够,长时 rollout 时这些区域的误差最先发散,反过来污染整个解。

本文目标:(i)设计一个粗化准则,让粗层节点优先落在"物理上重要"的区域;(ii)这个准则要在 quasi-static 超弹、瞬态非线性弹性、含接触的弹塑性这几种 regime 都能用;(iii)配套发布固体力学 benchmark 弥补缺口。

切入角度:作者借了经典 FEM 里"residual-based adaptive mesh refinement"的老想法——FEM 自适应加密就是按 PDE 残差大的地方加密网格。把这个思路平移到 GNN 多重网格:粗化时按动量守恒方程的离散残差打分。

核心 idea:用"动量守恒方程的离散残差范数"作为节点重要性得分,TopK 选出残差最大的节点构成粗图,让多重网格层级自然向应力集中区/接触界面/大变形区倾斜。

方法详解

整体框架

要解决的问题是:固体力学仿真里应力集中、接触界面、大变形都是空间上局部、动力学上关键的区域,但多重网格 GNN 在粗化时若按几何启发式(FPS)均匀铺节点,这些区域分到的粗层算力不够,长时 rollout 会先在这里发散。本文的做法是把"粗层保留哪些节点"从几何准则改成物理准则——给每个节点算一个动量守恒方程的离散残差范数作为重要性得分,再 TopK 选出残差最大的节点构成粗图。整体主干仍是 MeshGraphNet 系的 Encoder–Processor–Decoder:Encoder 用逐点 MLP 把节点特征升到隐维度 \(h\),Decoder 把隐特征映回 \(\mathbb{R}^3\),Processor 在隐空间交替做细网格消息传递、物理引导下采样、KNN 上采样融合,形成 U-Net 式的分层调度,所有创新都压在下采样块内部。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["网格状态 u^t(输入)"] --> B["Encoder:逐点 MLP 升维到隐空间"]
    B --> C["细层 GraphNet 消息传递"]
    C --> D["物理残差打分<br/>借主 Decoder 临时解码,算动量守恒残差范数 s_i"]
    D --> E["TopK 选点 + KNN 重网格化<br/>取残差最大 50% 节点、欧氏 KNN 重连边成粗图"]
    E --> F["粗层 GraphNet 传播 → KNN 上采样融合回细层"]
    F --> G["细层 GraphNet 精修 → Decoder 解码回 3 维位移场"]
    G --> H["残差式时间推进<br/>u(t+1)=u(t)+Φ"]
    H -->|自回归 rollout| A

关键设计

1. 基于动量守恒残差的节点物理打分:把"选谁进粗层"从几何准则换成物理准则

针对的痛点是 FPS 之类几何启发式完全不看物理、把算力均匀浪费在安静区域。本文借经典 FEM 里 residual-based adaptive mesh refinement 的直觉——残差大的地方就是物理上"算不准/动得猛"的地方——给每个节点算一个标量得分 \(s_i^t\),刻画该节点附近预测物理场对动量守恒方程的违背程度,作为节点重要性的 a posteriori 指标。具体地,下采样块先借用主 Decoder \(\hat{\bm{u}}^t=\phi_{\mathrm{dec}}(\tilde{\mathcal{G}})\) 把当前隐图临时解码到物理空间(这一步只为打分、不参与最终预测),用预测场算应力 \(\hat{\bm{\sigma}}^t\);瞬态情形下残差为 \(\bm{r}_i^t=\rho_i\ddot{\hat{\bm{u}}}_i^t-(\nabla_h\cdot\hat{\bm{\sigma}}^t)_i-\rho_i\mathbf{b}_i^t\),准静态情形丢掉惯性项变成平衡残差 \(\bm{r}_i^t=-(\nabla_h\cdot\hat{\bm{\sigma}}^t)_i-\rho_i\mathbf{b}_i^t\),散度 \(\nabla_h\cdot\) 用固定的 mesh-based 离散算子重构,得分取 \(s_i^t=\|\bm{r}_i^t\|_2\),每个时刻自回归重算一次。

这套准则等价于让多重网格层级自动捕捉应力集中、接触界面、边界过渡这些几何上稀疏但物理上关键的区域,而且是无监督信号、不需要额外标签。一个值得注意的工程选择是复用主 Decoder 来算物理量、而不是独立训一个 scoring decoder——消融显示独立 decoder 反而掉点,说明共享 decoder 强迫主分支同时支持"预测下一步"和"算残差",反而促进物理自洽。

2. TopK 物理引导节点选择 + KNN 重网格化:把得分转成粗图,且不被原始拓扑拖累

针对的问题是有了得分还得决定怎么选节点、怎么连边,而残差大的节点很可能恰好被原始边断开造成拓扑碎片化。节点选择上,本文对比了确定性 TopK \(\mathcal{I}=\mathrm{TopK}(\bm{s}^t,n_s)\)(保留得分最高的 \(n_s\) 个)和按 \(p_i=s_i/\sum_j s_j\) 做 categorical 采样的概率式选择;边集构建上对比了继承细网格的诱导子图 \(\mathcal{E}_c=\{(i,j)\in\mathcal{E}\mid i,j\in\mathcal{V}_c\}\) 和在被选节点上用欧氏 KNN 重新拉一张图(remeshing)。最佳组合是 TopK + remeshing:TopK 比概率采样把 rollout RMSE 从 \(13.1\times 10^{-3}\) 降到 \(6.5\times 10^{-3}\),因为 50% 这种高粗化率下随机性引入的方差损害大于探索收益。

KNN 重网格化的意义在于绕开"残差大的节点被原始边断开"的碎片化,对长程信息传播至关重要——这点和 BSMS(拓扑 bi-stride 池化)形成鲜明对比:BSMS 一定要保连通性,但本文发现纯按物理选节点再重连边反而更好,提示在多重网格 GNN 里"语义相关性"可能比"拓扑保真度"更重要。

3. Encoder-Processor-Decoder 主干 + KNN 上采样融合:把粗层全局信息送回细层而不丢局部精度

针对的是单尺度 GNN 受限于消息传递的 \(k\)-hop 半径、捕捉不到全局耦合,但只用粗层又会丢失局部应力梯度。粗层经过若干 GraphNet 块得到 \(\tilde{\mathcal{G}}_c^{n_s\times h}\) 后,用 \(k\)-NN(物理空间欧氏距离意义下)把每个细节点的特征插值成它最近 \(k\) 个粗节点特征的加权和,再与细层原始特征融合,最后过若干细层 GraphNet 块做局部精修。时间推进采用残差式 \(\bm{u}^{t+1}=\bm{u}^t+\Phi_\theta(\bm{u}^t,\mathcal{G})\),对应经典数值积分格式,对长时 rollout 稳定性帮助很大。

这套 Encoder-Processor-Decoder + 残差时间步本身是 MeshGraphNet 沿用下来的成熟设计,本文的新颖度全压在 Processor 内部的物理引导粗化上——证明只换粗化策略、不改主干就能打过 7 个强 baseline。

损失函数 / 训练策略

直接监督下一步状态预测,逐节点 MSE 损失。AdamW 优化器,所有 baseline 训 30 个 epoch(约 \(10^6\) 步)、同一 protocol,每个配置跑 3-5 个 seed 取均值;所有多重网格模型固定粗化比例为 50%(粗图节点数 = 细图的一半),controlling for capacity,把变量隔离到"粗化策略"本身。NVIDIA A100。

实验关键数据

主实验:DeformingPlate 上对比 7 个 SOTA

方法 Rollout RMSE (\(\times 10^{-3}\)) ↓ 1-step RMSE (\(\times 10^{-3}\)) ↓ #Params ↓
MeshGraphNets 12.75 0.10 2.8M
BSMS-GNN 16.60 0.15 2.1M
Transolver++ 29.80 1.00 722K
Transformer GNN 24.97 1.20 3.5M
Multi-Scale GNN 15.7 0.10 3.1M
HCMT 12.97 0.14 2.53M
UNISOMA 11.46 0.16 2.85M
Ours (Physics-informed Multigrid) 6.50 0.095 2.9M

Rollout 误差直接对半砍(从 UNISOMA 的 11.46 → 6.50,提升约 43%),1-step 误差也是全场最低;参数量持平,没有靠加参数取胜。

消融实验:多重网格架构下不同采样策略对比

采样策略 Rollout RMSE (\(\times 10^{-3}\)) ↓ 1-step RMSE (\(\times 10^{-5}\)) ↓
BSMS(拓扑 bi-stride) 16.60 15
FPS(无 remeshing) 15.0 10.31
Attention-based 8.1 17.10
FPS(带 remeshing) 8.0 9.74
Physics-informed + 概率采样 13.1 11.32
Physics-informed + TopK(Ours) 6.5 9.57

跨数据集泛化(Table 4,与 MGN/FPS 对比):BeamSimple 上 Rollout \(1.44\times 10^{-1}\)(vs MGN 1.72, FPS 1.56);SpindleUpsetting 上 1-step \(11.24\times 10^{-3}\)(vs MGN 11.92, FPS 11.66),rollout 略输 FPS(2.96 vs 2.60),说明残差式打分在塑性+接触的极端 regime 里没有压倒性优势但仍 competitive。粗层宽度消融(Table 5):\(h_c=128\) vs \(h_c=256\),加宽反而掉点(6.59→15.72×10⁻³),说明粗层 capacity 已经够,瓶颈在选谁、不在多大。

关键发现

  • 粗化策略 > 架构容量:同样主干下,把 FPS 换成 physics-informed TopK 就把 rollout 误差从 8.0 降到 6.5;而 MeshGraphNet 在没有多重网格的情况下达到 12.75,说明"分层"和"选谁"两件事是叠加增益。
  • TopK 显著胜过概率采样(13.1 → 6.5):在 50% 这种高粗化率下,随机性引入的方差损害大于探索的收益。
  • 决策器复用很重要:用独立 decoder 算物理打分会掉点,共享 decoder 强迫表征同时支持"预测下一步"和"算残差",反而促进物理自洽。
  • 打分应该包含边界/接触节点:消融显示"all nodes scoring"稳胜"only normal nodes",因为反作用力和约束节点本身就携带很强的物理信号。
  • 加粗层宽度无效\(h_c=256\) 比 128 反而更差,提示在 mesh-based 模型上盲目加 capacity 不如改采样准则。

亮点与洞察

  • 把经典 FEM 的 residual-based adaptive refinement 平移到 GNN 多重网格的粗化:这个 analogy 既给了方法可解释性("残差大的地方=物理活动剧烈"),也直接复用了几十年的数值分析直觉。在"用 ML 替代数值方法"的浪潮里这种"借经典数值方法的设计哲学回来指导 ML 架构"的范式特别值得关注。
  • 得分函数零额外参数:物理残差完全由主 Decoder 输出 + 固定离散散度算子算出,不引入新的可学习模块,却带来巨大的归纳偏置。
  • Decoder 共享是一个有用的 trick:让同一个 decoder 同时承担"最终输出"和"中间打分"两个任务,自然地把"物理一致性"作为辅助正则注入主分支——这个 idea 可以迁移到任何需要"中间监督信号"但又不想增加参数的场景。
  • TopK + KNN 重网格化的组合:放弃保连通性、用 KNN 重新连边,反而比保连通性好,提示在多重网格 GNN 里"拓扑保真度"可能没"语义相关性"重要。

局限与展望

  • 作者承认:残差打分对"复杂材料、扭曲网格、富接触场景"非常 nontrivial——需要离散散度重构和访问有物理意义的场,本质上"把经典数值方法的零件搬了一部分回来",不再是纯 ML black-box。
  • 在 SpindleUpsetting(重塑性+接触)的 rollout 上反而输给纯 FPS,说明在极端非线性 regime 残差信号本身可能噪声很大;这暴露了"用主 Decoder 解码物理量"的脆弱性——如果主预测不准,残差也不准,可能引发恶性循环。
  • 只在 50% 这一个固定粗化率下评测,没看不同压缩率下的曲线;多层级嵌套(粗-更粗-超粗)也没有研究。
  • 改进方向:把残差打分与梯度向量场结合(不只看模长还看方向);自适应粗化率(动力学剧烈时多保点);和 PINN 损失结合,让残差既用来打分也用来正则化预测。

相关工作与启发

  • vs MeshGraphNets:本文的 Encoder-Processor-Decoder 主干和残差时间步直接继承自 MGN,但加了多重网格层级和物理引导粗化;rollout 从 12.75 → 6.50,纯结构性改进。
  • vs BSMS-GNN(拓扑 bi-stride 池化):BSMS 用图拓扑做 bi-stride 池化保连通性,本文用物理残差 TopK + KNN 重连边,结果上 BSMS 16.60 → Ours 6.50,证明"语义相关性"压倒"拓扑保真度"。
  • vs FPS-based 多重网格(Multi-Scale GNN/Garnier 2024):纯几何均匀覆盖 vs 物理引导聚焦,在固体力学这种"局部应力集中决定全局动力学"的场景下,物理引导明显占优。
  • vs UNISOMA:UNISOMA 用固定数量的 slice token 做注意力压缩,在尖锐接触/应力集中处会丢失局部细节;本文显式按残差选节点,恰好补上了这个短板。
  • vs PINN:PINN 把残差当 loss 监督预测,本文把残差当架构信号引导粗化——同一信号、两种用法,可以组合。