Gaurav Gupta, Xiongye Xiao, and Paul Bogdan
Multiwavelet-based Operator Learning for Differential Equations
In NeurIPS 2021. arXiv:2109.13459
The code package is developed using Python 3.8 and Pytorch 1.8 with cuda 11.0. For running the experiments first install the required packages using 'requirements.txt'
Generate the data using the scripts provided in the 'Data' directory. The scripts use Matlab 2018+. A sample generated dataset for KdV is uploaded at KdV data.
For the experiments on Burgers, Darcy, and Navier Stokes, the code package uses the datasets as provided in the following repository by the Authors Zongyi Li et al.
Choose the required model from the models
(1-d, 2-d, 2-d time-varying) and pass-in the required polynomial: 'legendre' or 'chebyshev'. Next, choose the desired value of multiwavelets 'k'.
As an example, a complete pipeline is shown for the kDV equation in the attached kDV.ipynb
notebook.
The pre-trained models for Navier Stokes equation is provided using the following link:
A visual of time-evolution of the estimated outputs of the pre-trained models is available Here.
To test the model, first download the models to the 'ptmodels' directory. Next, For N=1000, T = 50, \nu = 1e-3
python test_NS_MWT_N_1000.py
For N = 10000, T = 30, \nu = 1e-4
python test_NS_MWT_N_10000.py
Note: The NS experiments were done using Pytorch 1.7 cuda 11.0
If you use this code, or our work, please cite:
@misc{gupta2021multiwavelet,
title={Multiwavelet-based Operator Learning for Differential Equations},
author={Gaurav Gupta and Xiongye Xiao and Paul Bogdan},
year={2021},
eprint={2109.13459},
archivePrefix={arXiv},
primaryClass={cs.LG}
}