Transolver (Transformer-based Solver)¶
Transolver is a transformer solver for PDEs designed to handle general geometries with efficient global mixing.
Reference Paper: Wu et al., ICML 2024.
@inproceedings{wu2024transolver,
title={Transolver: a fast transformer solver for PDEs on general geometries},
author={Wu, Haixu and Luo, Huakun and Wang, Haowen and Wang, Jianmin and Long, Mingsheng},
booktitle={Proceedings of the 41st International Conference on Machine Learning},
pages={53681--53705},
year={2024}
}
RealPDEBench interface¶
In the benchmark, Transolver is configured to produce predictions that match the dataset target window:
- Input:
xwith shape[B, T_in, H, W, C_in] - Output: predictions with shape
[B, T_out, H, W, C_out]
Implementation notes (RealPDEBench)¶
- The implementation tokenizes the spatiotemporal grid and applies physics-inspired attention blocks.
- In practice, this baseline is configured for dataset-specific grid sizes (
H,W,D) and output feature dimension (out_dim) via YAML configs. - The model returns per-element squared error in
train_loss(); the benchmark training loop averages it.
Transolver specific YAML config¶
This baseline is enabled by model_name: "transolver" in the training YAML.
Note
The shipped config filename uses a legacy name: trainsolver.yaml (but it sets model_name: "transolver").
Config files¶
- Cylinder:
realpdebench/configs/cylinder/trainsolver.yaml - Controlled Cylinder:
realpdebench/configs/controlled_cylinder/trainsolver.yaml - FSI:
realpdebench/configs/fsi/trainsolver.yaml - Foil:
realpdebench/configs/foil/trainsolver.yaml - Combustion:
realpdebench/configs/combustion/trainsolver.yaml
Model-specific keys¶
These keys are consumed by realpdebench.model.load_model.load_model() and are passed into the Transolver library model constructor.
space_dim(int): Spatial dimension used by the solver (e.g.,3for \((t,x,y)\) or similar structured meshes).n_layers(int): Number of transformer layers.n_hidden(int): Hidden dimension of transformer tokens.n_head(int): Number of attention heads.H(int): Grid size parameter (dataset/model specific).W(int): Grid size parameter (dataset/model specific).D(int): Grid/time tokenization parameter used by the model (dataset/model specific).fun_dim(int): Additional function-feature dimension (kept as configured in YAML).out_dim(int): Output feature dimension expected by the model head.ref(int): Resolution/refinement hyperparameter used by the Transolver implementation.dropout(float): Dropout probability inside transformer blocks.act(str): Activation function name (e.g.,"gelu").mlp_ratio(float): MLP expansion ratio inside transformer blocks.slice_num(int): Number of slices/partitions used by the Transolver implementation.
Note
Some shipped trainsolver.yaml configs contain test_interval, but the current python -m realpdebench.train loop does not read it.