GFNO
Model Overview
GFNO (Group Equivariant Fourier Neural Operator) is a Fourier neural operator augmented with group-equivariant structure for learning physical systems with geometric symmetries. This model predicts Navier–Stokes time series on a two-dimensional regular grid. By default, it uses the C4 rotation group and the first 10 time steps to predict the subsequent 10.
Paper: Group Equivariant Fourier Neural Operators for Partial Differential Equations
https://openreview.net/forum?id=kgAOY5x4fi
Model Description
GFNO adds group-equivariant weight sharing to the spectral convolutions of a Fourier Neural Operator, producing consistent responses under rotations or reflections and making more effective use of geometric symmetries in Navier–Stokes flow fields. The model supports the C4 rotation group and D4 dihedral group and performs multistep flow prediction autoregressively.
Use Cases
| Use Case | Description |
|---|---|
| Flow-field time-series prediction | Predict future Navier–Stokes states from historical vorticity fields |
| Geometric-equivariance research | Compare a standard FNO with C4- and D4-equivariant operators |
| CFD surrogate modeling | Learn mappings from historical to future physical fields on regular grids |
| Pipeline validation | Validate model training, inference, and result visualization with a small-scale configuration |
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 for training and inference.
- A CPU can be used for small-scale pipeline validation, but full training will be slow.
- DCU users must install DTK and a PyTorch environment compatible with the target cluster.
Download the Model Package
modelscope download --model OneScience/GFNO --local_dir ./GFNO
cd GFNO
Set Up the Runtime Environment
DCU Environment
# Activate DTK and Conda first
conda create -n onescience311 python=3.11 -y
conda activate onescience311
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
pip install onescience[cfd-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
Training Data
The model uses the standard Navier–Stokes dataset NavierStokes_V1e-5_N1200_T20.mat, in which the data variable u has shape [1200, 64, 64, 20]. Download the data with the following command and verify that the data path in conf/config.yaml is configured correctly:
modelscope download --dataset OneScience/cfd_benchmark data/ns/NavierStokes_V1e-5_N1200_T20.mat --local_dir ./data
Training
python scripts/train.py
The default weights are saved to weight/gfno_navier_stokes.pt.
Model Weights
This repository provides weights trained on the standard Navier–Stokes dataset in the weight/ directory.
Inference, Evaluation, and Visualization
After training, run:
python scripts/inference.py
The script loads weight/gfno_navier_stokes.pt by default. Predicted tensors and visualizations are saved to the result/ directory. Training and inference parameters can be modified in conf/config.yaml.
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
- Romero, D. W., Bekkers, E. J., Tomczak, J. M., and Hoogendoorn, M. Group Equivariant Fourier Neural Operators for Partial Differential Equations.
- Li, Z. et al. Fourier Neural Operator for Parametric Partial Differential Equations. arXiv:2010.08895, 2020.
- This model package is released under the Apache-2.0 license and retains attribution to the original paper and data sources.