This is the official implementation of the CFRF method proposed in the following paper.
Cong Fu, Jacob Helwig, Shuiwang Ji "Semi-Supervised Learning for High-Fidelity Fluid Flow Reconstruction", Learning on Graphs Conference (LoG) 2023
To create a CFRF
conda
environment, run:
source setup.sh
- We use three PDEs: 2D Incompressible Navier-Stokes Equation, 2D Shallow Water Equation, and 2D Diffusion-Reaction Equation.
- 2D Incompressible Navier-Stokes Equation data is generated using the script provided in FNO Github.
- The Shallow Water and Diffusion-Reaction equations data are generated using scripts provided in PDEBench.
- We put all the generated data in google drive for downloading.
Download the data from the google drive and unzip all the datasets in the data
folder under the CFRF
folder.
The training process contains two stages: 1. supervised training for the proposal network 2. unsupervised training for the refinement network. We use the Navier-Stokes equation as an example, the training on the other two datasets are similar.
- Train CFRF on Navier-Stokes data:
First, we train the proposal network:
cd scripts
bash train_proposal_iCFD.sh
After training the proposal network, a folder will be created containing the trained model, evaluation results, and arguments. The name of the folder is <time stamp> + <suffix>
, where suffix is defined in the bash file.
Then, we can train the refinement network:
cd scripts
bash train_refinement_iCFD.sh
Note that in the train_refinement_iCFD.sh
, you need to replace "path to the root folder of the trained model"
with the folder just created when training the proposal network,
@inproceedings{fu2023semi,
title={Semi-Supervised Learning for High-Fidelity Fluid Flow Reconstruction},
author={Fu, Cong and Helwig, Jacob and Ji, Shuiwang},
booktitle={The Second Learning on Graphs Conference},
year={2023}
}
This work was supported in part by National Science Foundation grant IIS-2006861.