language:
- en
tags:
- OneScience
- fluid dynamics
- large-scale fluid dynamics benchmark
frameworks: PyTorch
CFDBench
Model Overview
CFDBench is a large-scale benchmark developed by researchers at Tsinghua University to evaluate machine-learning methods for computational fluid dynamics. It focuses on model generalization across different boundary conditions, fluid properties, and geometric configurations.
Paper: CFDBench: A Large-Scale Benchmark for Machine Learning Methods in Fluid Dynamics
Model Description
CFDBench is built from several representative computational fluid dynamics datasets spanning diverse boundary conditions, fluid properties, and geometries. It evaluates both flow-field prediction performance and the generalization capabilities of machine-learning methods.
Use Cases
| Use Case | Description |
|---|---|
| CFD surrogate benchmarking | Compare the flow-field prediction capabilities of neural operators and other deep-learning models using consistent data splits and metrics |
| Autoregressive flow evolution | Predict subsequent two-dimensional velocity fields step by step from the current grid-based field and assess error accumulation over multiple steps |
| Non-autoregressive field queries | Predict velocity directly at target locations from operating parameters and spatiotemporal coordinates, enabling evaluation over long time horizons |
Supported Models
| Type | root.model.name |
Training Entry Point |
|---|---|---|
| Non-autoregressive | ffn |
python scripts/train.py |
| Non-autoregressive | deeponet |
python scripts/train.py |
| Autoregressive | auto_ffn |
python scripts/train_auto.py |
| Autoregressive | auto_deeponet |
python scripts/train_auto.py |
| Autoregressive | auto_edeeponet |
python scripts/train_auto.py |
| Autoregressive | auto_deeponet_cnn |
python scripts/train_auto.py |
| Autoregressive | resnet |
python scripts/train_auto.py |
| Autoregressive | unet |
python scripts/train_auto.py |
| Autoregressive | fno |
python scripts/train_auto.py |
Usage
1. OneCode
Use the online OneCode environment for an intelligent, one-click AI for Science (AI4S) programming experience:
Launch OneCode for one-click AI4S programming
2. Manual Setup
Hardware Requirements
- A GPU or DCU is recommended.
- A CPU can be used for import checks and small-scale pipeline validation, but full training and inference will be slow.
- DCU users must install DTK in advance. DTK 25.04.2 or later, or the OneScience-recommended version for the target cluster, is recommended.
Download the Model Package
modelscope download --model OneScience/CFDBench --local_dir ./CFDBench
cd CFDBench
Set Up the Runtime Environment
DCU Environment
# Activate DTK and Conda first
conda create -n onescience311 python=3.11 -y
conda activate onescience311
# Installation with uv is also supported
pip install onescience[cfd-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
GPU Environment
# Activate Conda first
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
# Installation with uv is also supported
pip install onescience[cfd-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
Training Data
The OneScience community provides the cfdbench dataset for training. Download it with the command below and verify that the data path in config/config.yaml is configured correctly:
modelscope download --dataset OneScience/cfdbench --local_dir ./data
Training
Autoregressive Training
The default configuration sets root.model.name: fno, so use the autoregressive training entry point:
python scripts/train_auto.py
To select another autoregressive model, edit conf/config.yaml:
root:
model:
name: "auto_ffn"
Non-autoregressive Training
python scripts/train.py --model deeponet
Model Weights
This repository will provide pretrained CFDBench model weights in the weights/ directory. The weights will be uploaded soon.
Inference and Visualization
The inference script automatically selects the task type from the current model name and reads the following path by default:
./weight/<model.name>.pt
Default FNO inference and visualization:
python scripts/inference.py
python scripts/result.py
Non-autoregressive models can likewise be selected through a command-line argument:
python scripts/inference.py --model ffn
python scripts/result.py --model ffn
Official OneScience Resources
| Platform | OneScience Repository | Skills Repository |
|---|---|---|
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
Citations and License
- Original CFDBench paper: CFDBench: A Large-Scale Benchmark for Machine Learning Methods in Fluid Dynamics
- Original CFDBench code repository: https://github.com/luo-yining/CFDBench
- This repository retains source attribution and has been adapted for automated execution through OneScience and ModelScope. Before public redistribution, verify the applicable licensing requirements of the upstream project.