NeuralSolver is an open-source library for deep learning researchers, especially for neural PDE solvers.
🚩News (2025.03) We release the NeuralSolver as a simple and neat code base for benchmarking neural PDE solvers, which is extended from our previous GitHub repository Transolver.
This library currently supports the following benchmarks:
- Six Standard Benchmarks from [FNO] and [geo-FNO]
- PDEBench [NeurIPS 2022 Track Datasets and Benchmarks] for benchmarking autoregressive tasks
- ShapeNet-Car from [TOG 2018] for benchmarking industrial design tasks
Figure 1. Examples of supported PDE-solving tasks.
Here is the list of supported neural PDE solvers:
- Transolver - Transolver: A Fast Transformer Solver for PDEs on General Geometries [ICML 2024] [Code]
- ONO - Improved Operator Learning by Orthogonal Attention [ICML 2024] [Code]
- Factformer - Scalable Transformer for PDE Surrogate Modeling [NeurIPS 2023] [Code]
- U-NO - U-NO: U-shaped Neural Operators [TMLR 2023] [Code]
- LSM - Solving High-Dimensional PDEs with Latent Spectral Models [ICML 2023] [Code]
- GNOT - GNOT: A General Neural Operator Transformer for Operator Learning [ICML 2023] [Code]
- F-FNO - Factorized Fourier Neural Operators [ICLR 2023] [Code]
- U-FNO - An enhanced Fourier neural operator-based deep-learning model for multiphase flow [Advances in Water Resources 2022] [Code]
- Galerkin Transformer - Choose a Transformer: Fourier or Galerkin [NeurIPS 2021] [Code]
- MWT - Multiwavelet-based Operator Learning for Differential Equations [NeurIPS 2021] [Code]
- FNO - Fourier Neural Operator for Parametric Partial Differential Equations [ICLR 2021] [Code]
- Transformer - Attention Is All You Need [NeurIPS 2017] [Code]
Some vision backbones can be good baselines for tasks in structured geometries:
- Swin Transformer - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows [ICCV 2021] [Code]
- U-Net - U-Net: Convolutional Networks for Biomedical Image Segmentation [MICCAI 2015] [Code]
Some classical geometric deep models are also included for design tasks:
- Graph-UNet - Graph U-Nets [ICML 2019] [Code]
- GraphSAGE - Inductive Representation Learning on Large Graphs [NeurIPS 2017] [Code]
- PointNet - PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation [CVPR 2017] [Code]
- Install Python 3.8. For convenience, execute the following command.
pip install -r requirements.txt
- Prepare Data
- Train and evaluate model. We provide the experiment scripts for all benchmarks under the folder
./scripts/
. You can reproduce the experiment results as the following examples:
bash ./scripts/StandardBench/airfoil/Transolver.sh
- Develop your own model.
- Add the model file to the folder
./models
. You can follow the./models/Transolver.py
. - Include the newly added model in the
model_dict
of./models/model_factory.py
. - Create the corresponding scripts under the folder
./scripts
, where you can set hyperparameters following the provided scripts of other models.
If you find this repo useful, please cite our paper.
@inproceedings{wu2024Transolver,
title={Transolver: A Fast Transformer Solver for PDEs on General Geometries},
author={Haixu Wu and Huakun Luo and Haowen Wang and Jianmin Wang and Mingsheng Long},
booktitle={International Conference on Machine Learning},
year={2024}
}
If you have any questions or want to use the code, please contact our team or describe it in Issues.
Current maintenance team:
- Haixu Wu (Ph.D. student, wuhx23@mails.tsinghua.edu.cn)
- Yuanxu Sun (Undergraduate, sunyuanx22@mails.tsinghua.edu.cn)
- Hang Zhou (Master student, zhou-h23@mails.tsinghua.edu.cn)
- Yuezhou Ma (Ph.D. student, mayz24@mails.tsinghua.edu.cn)
We appreciate the following GitHub repos a lot for their valuable code base or datasets:
https://github.com/thuml/Transolver
https://github.com/thuml/Latent-Spectral-Models