Views
No views yet
Novel contribution: A drop-in cross-attention input head for FNO/Geometric-DeepONet that treats the variable-coefficient field as keys and values rather than a concatenated channel. Benchmarked on shifted log-Gaussian Darcy flow.
a(x) ──[1x1 conv]──► width channels ──[FNO blocks]──► projection ──► u(x)a(x) ──[kv_embed]──► KV
│
├──► cross-attn ◄── Q = query_proj(coordinate_grid [-1,1]²)
│
└──► bypass = coeff_bypass(a) ──┐
▼
attended + bypass ──[FNO blocks]──► projection ──► u(x)-∇·(a(x)∇u) = 1 with zero Dirichlet BCsexp(-L²|k|²/2)| Parameter | Full | Small (CPU) |
|---|---|---|
| Resolution | 64×64 | 32×32 |
| Train samples | 1000 | 200 |
| Width | 64 | 32 |
| Depth | 4 | 3 |
| Modes | 12 | 8 |
| Epochs | 500 | 300 |
| Batch size | 16 | 8 |
| LR | 1e-3 | 1e-3 |
| LR schedule | StepLR /100 | StepLR /100 |
| Loss | Relative L2 | Relative L2 |
1python train_small_v2.py
2# Output: results_small.json, best_*.pt1python train_full.py
2# Output: results.json, best_*.pt1python analyze_results.py results_small.json
2# Output: comparison.png, degradation.png| File | Description |
|---|---|
train_full.py | Full experiment with scipy sparse solver |
train_small_v2.py | CPU-friendly, numpy dense solver, no scipy |
analyze_results.py | Results tables + bar charts |
RESEARCH_SUMMARY.md | Literature review and design rationale |
REPORT.md | Full research report |