Skip to content

[ICLR24] A boundary-embedded neural operator that incorporates complex boundary shape and inhomogeneous boundary values

License

Notifications You must be signed in to change notification settings

AI4Science-WestlakeU/beno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BENO: Boundary-embedded Neural Operators for Elliptic PDEs (ICLR 2024)

Paper | arXiv | Tweet

Haixin Wang*, Jiaxin Li*, Anubhav Dwivedi, Kentaro Hara, Tailin Wu

We introduce a boundary-embedded neural operator that incorporates complex boundary shape and inhomogeneous boundary values shown below into the solving of Elliptic PDEs:

The whole architecture of our BENO:

Installation

  1. First clone the directory.

  2. Install dependencies.

First, create a new environment using conda (with python >= 3.7). Then install pytorch, torch-geometric and other dependencies as follows

Install pytorch (replace "cu113" with appropriate cuda version. For example, cuda11.1 will use "cu111"):

pip install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113 -f https://download.pytorch.org/whl/torch_stable.html

Install torch-geometric. Run the following command:

pip install torch-scatter==2.0.9 -f https://data.pyg.org/whl/torch-1.10.2+cu113.html
pip install torch-sparse==0.6.12 -f https://data.pyg.org/whl/torch-1.10.2+cu113.html
pip install torch-geometric==1.7.2
pip install torch-cluster==1.5.9 -f https://data.pyg.org/whl/torch-1.10.2+cu113.html
pip install loguru

Dataset

The sample dataset files 10 4-Corners examples are under "data/". And the full dataset files can be downloaded via this link. To run experiments on specific boundary types, download the files in the link into the "data/" folder in the local repo. BC_Nxx_xc_all.npy/RHS_Nxx_xc_all.npy/SOL_Nxx_xc_all.npy represents boundary information/forcing term/solution of the specific resolution and shapes.

Training

Below we provide example commands for training BENO.

An example 4-Corners dataset training command is:

python train.py --dataset_type=32x32 --epochs 1000

Analysis

To analyze the results, use the following commands:

python analysis.py 

Related Projects:

  • CinDM (ICLR 2024 spotlight): We introduce a method that uses compositional generative models to design boundaries and initial states significantly more complex than the ones seen in training for physical simulations.

  • LAMP (ICLR 2023 spotlight): first fully DL-based surrogate model that jointly optimizes spatial resolutions to reduce computational cost and learns the evolution model, learned via reinforcement learning.

Citation

If you find our work and/or our code useful, please cite us via:

@inproceedings{wang2024beno,
title={{BENO}: Boundary-embedded Neural Operators for Elliptic {PDE}s},
author={Wang, Haixin and Jiaxin, LI and Dwivedi, Anubhav and Hara, Kentaro and Wu, Tailin},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=ZZTkLDRmkg}
}

About

[ICLR24] A boundary-embedded neural operator that incorporates complex boundary shape and inhomogeneous boundary values

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages