METRO: Metric-Enhanced Token Routing Operator
Organizations: Department of Computer Science ETH Zürich Zürich, Switzerland · Swiss Data Science Center ETH Zürich Zürich, Switzerland
Abstract
State-of-the-art neural operators scale to complex meshes via slice-and-process architectures, yet many rely on linear compatibility scores for latent tokenization. Under common feature normalization, such scores are equivalent to isotropic Euclidean clustering, while without normalization they induce unbounded linear decision regions. In both cases, they lack slice-specific anisotropic locality, which can lead to redundant and entangled latent slices. To address this, we propose Metric-Enhanced Token Routing Operator (METRO), a geometry-aware routing mechanism that replaces linear projection with a learnable Mahalanobis metric. By enabling each latent slice to learn a local anisotropic tensor, METRO shapes receptive fields into exponentially localized, oriented ellipsoids that naturally align with flow features like boundary layers and wakes. As a drop-in replacement, METRO yields consistent improvements across both Transformer and Mamba backbones. Empirically, our method achieves substantial performance gains on irregular domains, outperforming baselines on both standard PDE benchmarks and complex industrial design tasks. Finally, METRO exhibits enhanced robustness in out-of-distribution regimes across varying Reynolds numbers and geometric configurations.
Figures & tables
| Model | OOD Reynolds | OOD Angles | ||
|---|---|---|---|---|
| Simple MLP | 0.6205 | 0.9578 | 0.4128 | 0.9572 |
| GraphSAGE ( Hamilton et al., 2017 ) | 0.4333 | 0.9707 | 0.2538 | 0.9894 |
| PointNet ( Qi et al., 2017 ) | 0.3836 | 0.9806 | 0.4425 | 0.9784 |
| Graph U-Net ( Gao and Ji, 2019 ) | 0.4664 | 0.9645 | 0.3756 | 0.9816 |
| MeshGraphNet ( Pfaff et al., 2021 ) | 1.7718 | 0.7631 | 0.6525 | 0.8927 |
| Model Variant | AirfRANS | AirCraft (Relative Error ) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Volume | Surf | |||||||||
| M-Transolver (Full) | 0.0014 | 0.0061 | 0.0528 | 0.9991 | 0.0692 | 0.0353 | 0.0060 | 0.0919 | 0.0899 | 0.0389 |
| w/o Anisotropy | 0.0023 | 0.0066 | 0.0752 | 0.9988 | 0.0702 | 0.0358 | 0.0071 | 0.0987 | 0.0984 | 0.0402 |
| w/o Quadratic Term | 0.0018 | 0.0090 | 0.0780 | 0.9989 | 0.0718 | 0.0363 | 0.0073 | 0.1024 | 0.0984 | 0.0411 |
| w/o All Components | 0.0049 | 0.0105 | 0.1159 | 0.9974 | 0.0791 | 0.0386 | 0.0093 | 0.1125 | 0.0997 | 0.0448 |
| Transolver (Ref.) | 0.0037 | 0.0142 | 0.1030 | 0.9978 | 0.0748 | 0.0379 | 0.0091 | 0.1107 | 0.1016 | 0.0439 |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | ShapeNet-Car | |||
|---|---|---|---|---|
| Volume | Surf | |||
| GraphSAGE ( Hamilton et al., 2017 ) | 0.0461 | 0.1050 | 0.0270 | 0.9695 |
| PointNet ( Qi et al., 2017 ) | 0.0494 | 0.1104 | 0.0298 | 0.9583 |
| Graph U-Net ( Gao and Ji, 2019 ) | 0.0471 | 0.1102 | 0.0226 | 0.9725 |
| MeshGraphNet ( Pfaff et al., 2021 ) | 0.0354 | 0.0781 | 0.0168 | 0.9840 |
| GNO ( Li et al., 2020 ) | 0.0383 | 0.0815 | 0.0172 | 0.9834 |
| Operator | Point Cloud | Regular Grid | Structured Mesh | ||||
| Elasticity | Navier-Stokes | Darcy | Plasticity | Airfoil | Pipe | ||
| Classic | U-Net ( Ronneberger et al., 2015 ) | 0.0235 | 0.1982 | 0.0080 | 0.0051 | 0.0079 | 0.0065 |
| ResNet ( He et al., 2016 ) | 0.0262 | 0.2753 | 0.0587 | 0.0233 | 0.0391 | 0.0120 | |
| Swin ( Liu et al., 2021 ) | 0.0283 | 0.2248 | 0.0397 | 0.0170 | 0.0270 | 0.0109 | |
| DeepONet ( Lu et al., 2021 ) | 0.0965 | 0.2972 | 0.0588 | 0.0135 | 0.0385 | 0.0097 | |
| Frequency | WMT ( Gupta et al., 2021 ) | 0.0359 | 0.1541 | 0.0082 | 0.0076 | 0.0075 | 0.0077 |
| Geometry | Benchmarks | #Dim | #Mesh | #Input | #Output | #Dataset |
|---|---|---|---|---|---|---|
| Point Cloud | Elasticity | 2D | 972 | Structure | Inner Stress | (1000, 200) |
| Structured Mesh | Plasticity | 2D+Time | 3,131 | External Force | Mesh Displacement | (900, 80) |
| Airfoil | 2D | 11,271 | Structure | Mach Number | (1000, 200) | |
| Pipe | 2D | 16,641 | Structure | Fluid Velocity | (1000, 200) | |
| Regular Grid | Navier-Stokes | 2D+Time | 4,096 | Past Velocity | Future Velocity | (1000, 200) |
| Darcy | 2D | 7,225 | Porous Medium | Fluid Pressure | (1000, 200) |
| Training Configuration | Model Configuration | |||||||||
| Benchmarks | Loss | Epochs | Init LR | Optimizer | Batch | Scheduler | Layers | Heads | Channels | Slices |
| Elasticity | Relative L2 | 500 | AdamW | 1 | CosineAnnealing | 8 | 8 | 128 | 64 | |
| Plasticity | Relative L2 | 500 | AdamW | 4 | OneCycle | 8 | 8 | 128 | 64 | |
| Airfoil | Relative L2 | 500 | AdamW | 4 | OneCycle | 8 | 8 | 128 | 64 | |
| Pipe | Relative L2 | 500 | AdamW | 4 | OneCycle | 8 | 8 | 128 | 64 | |
| Navier-Stokes | Relative L2 | 500 | AdamW | 2 | OneCycle | 8 | 8 | 256 | 32 | |
| OOD Reynolds | OOD Angles | |||
|---|---|---|---|---|
| Dataset | Range | Samples | Range | Samples |
| Training Set | 500 | 800 | ||
| Test Set | 500 | 200 | ||
| Precision Structure | Airfoil | Darcy |
|---|---|---|
| Diagonal (Standard) | 0.0045 | 0.0045 |
| Diagonal + Rank-1 Update | 0.0047 | 0.0045 |
| Diagonal + Rank-2 Update | 0.0048 | 0.0046 |
| Ablations | Transolver L2RE | M-Transolver L2RE | |||
|---|---|---|---|---|---|
| Number of Slices | Elasticity | Darcy | Elasticity | Darcy | |
| Number of Slices | 1 | 0.0148 | 0.0386 | 0.0221 | 0.0379 |
| 8 | 0.0071 | 0.0096 | 0.0052 | 0.0054 | |
| 16 | 0.0067 | 0.0067 | 0.0048 | 0.0048 | |
| 32 | 0.0067 | 0.0063 | 0.0049 | 0.0047 | |
| 64 | 0.0064 | 0.0059 | 0.0044 | 0.0045 | |
| Tier (by Eccentricity) | Mean Ecc. | Mean Alignment | Count |
|---|---|---|---|
| Top 10% Most Aniso. | 0.9330 | 0.8000 | 636 |
| Top 25% Most Aniso. | 0.8952 | 0.7567 | 1591 |
| Top 50% Most Aniso. | 0.8454 | 0.7265 | 3182 |
| Bottom 10% (Least) | 0.4347 | 0.6613 | 636 |
| Point Cloud | Structured Mesh | Reg. Grid | Unstructured Mesh | |||||
| Model | Elasticity | Plasticity | Airfoil | Pipe | Navier-Stokes | Darcy | ShapeNet-Car | AirfRANS |
| Best Baseline | ||||||||
| (LaMO) | (LaMO) | (LaMO) | (Transolver++) | (Transolver++) | (Transolver++) | (Transolver) | (LaMO) | |
| Ours | ||||||||
| (M-Transolver) | (M-LaMO) | (M-LaMO) | (M-Transolver) | (M-Transolver) | (M-Transolver) | (M-Transolver) | (M-LaMO) | |