Beno
[ICLR24] A boundary-embedded neural operator that incorporates complex boundary shape and inhomogeneous boundary values
Install / Use
/learn @AI4Science-WestlakeU/BenoREADME
BENO: Boundary-embedded Neural Operators for Elliptic PDEs (ICLR 2024)
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:
<a href="url"><img src="https://github.com/AI4Science-WestlakeU/beno/blob/main/assets/motivation.png" align="center" width="700" ></a>
The whole architecture of our BENO:
<a href="url"><img src="https://github.com/AI4Science-WestlakeU/beno/blob/main/assets/arch.png" align="center" width="700" ></a>
Installation
-
First clone the directory.
-
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}
}
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
