This repository contains code accompanying our paper "Learning Neural Operators on Riemannian Manifolds".
Dependencies:
- Python (tested on 3.8.11)
- PyTorch (tested on 1.8.0)
Additionally, we need an open-source Python package Lapy (https://github.com/Deep-MI/LaPy/tree/main) for differential geometry on triangle and tetrahedra meshes, which is used to calculate LBO basis. If you fail to install it, try to add the lapy
folder included in our source code into your path.
The datasets of Case1-Case3 can be found in datasets
folder. You can download the dataset(s) of Case4 and Case5 from here.
Case1-DarcyFlow.mat
├── Input: `c_field`(1200*2290)
└── Output: `u_field`(1200*2290)
---------------------------------------------
Case2-Turbulence.mat
├── Input: `Input`(400*2673)
└── Output: `Output`(400*2673)
---------------------------------------------
Case3-HeatTransfer.mat
├── Input: `input`(300*186)
└── Output: `output`(300*7199)
---------------------------------------------
Case4-Composites.mat
├── Input: `T_field`(1200*8232)
└── Output: `D_field`(1200*8232)
---------------------------------------------
Case5-BloodFlow.mat
├── Input: `BC_time`(500*121*6)
└── Output: `velocity_x`(500*1656*121),`velocity_y`,`velocity_z`
For all cases, you can directly run the codes by executing main.py
to quickly obtain the results. Note that each experiment is repeated five times, the same setup as in our paper. Each case also retains the setting of hyperparameters in the paper.
python main.py
Additionally, we provide the Calculate_LBO_basis.py
in datasets
folder to calculate the LBO basis for Case3, Case4 and Case5. The calculation of Case1 and Case2 are embedded in the corresponding main.py
.
Blood_flow_NORM.mp4
If you found this repository useful, please consider citing our paper:
@misc{chen2023learning,
title={Learning Neural Operators on Riemannian Manifolds},
author={Gengxiang Chen and Xu Liu and Qinglu Meng and Lu Chen and Changqing Liu and Yingguang Li},
year={2023},
eprint={2302.08166},
archivePrefix={arXiv},
}