spinn-bgk
Separable Physics-Informed Neural Networks for Solving the BGK Model of the Boltzmann Equation
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.4%) to scientific vocabulary
Keywords
Repository
Separable Physics-Informed Neural Networks for Solving the BGK Model of the Boltzmann Equation
Basic Info
- Host: GitHub
- Owner: jaeminoh
- Language: Python
- Default Branch: main
- Homepage: https://epubs.siam.org/doi/full/10.1137/24M1668809
- Size: 39.1 MB
Statistics
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
SPINN-BGK: Separable PINNs for the Boltzmann-BGK Model
Abstract
In this study, we present a new approach based on Separable Physics-Informed Neural Networks (SPINNs), specifically designed to efficiently solve the BGK model. While the mesh-free nature of Physics-Informed Neural Networks (PINNs) offers significant advantages for handling high-dimensional partial differential equations (PDEs), applying quadrature rules for accurate integral evaluation in the BGK operator can compromise these benefits and increase computational costs. To address this issue, we leverage the canonical polyadic decomposition structure of SPINNs and the linear nature of moment calculation to significantly reduce the computational expense associated with quadrature rules. However, the multi-scale nature of the particle density function poses challenges for precisely approximating macroscopic moments using neural networks. To overcome this, we introduce SPINN-BGK, a specialized variant of SPINNs that fuses SPINNs with Gaussian functions and utilizes a relative loss approach. This modification enables SPINNs to decay as rapidly as Maxwellian distributions, enhancing the accuracy of macroscopic moment approximations. The relative loss design ensures that both large and small-scale features are effectively captured by the SPINNs. The effectiveness of our approach is validated through six numerical experiments, including a complex 3D Riemann problem. These experiments demonstrate the potential of our method to efficiently and accurately tackle intricate challenges in computational physics, offering significant improvements in computational efficiency and solution accuracy.
Visualization
1D3V
Kn=0.01
https://github.com/user-attachments/assets/48dcfe42-be6a-41a2-990e-24bd956eb8d0
Kn=1
https://github.com/user-attachments/assets/c56ac8d8-98a6-4b68-8dd5-d663af1d2051
2D3V
Kn=0.01
https://github.com/user-attachments/assets/d9bf2abd-2150-4854-ac7a-8fb2ceaa2c9e
Kn=1
https://github.com/user-attachments/assets/9622bb81-675f-4e25-bed3-0b5067725887
3D3V
Kn=0.01
Kn=1
How to run
Dependency
- Python version: 3.12
- Install JAX
- Install additional dependencies: run
pip install -r requirements.txt
Change the arguments, if necessary.
Training
Run python smooth_3d.py --Kn=0.01 --rank=256 for the (3+3+1) smooth problem.
Error tables
(3+3+1) dimensional problems: run python error_3d.py --problem="smooth" --Kn=1.0
Citation
If you find this repository useful in your research, please consider citing us!
bibtex
@article{oh2025separable,
title={Separable physics-informed neural networks for solving the {BGK} model of the {B}oltzmann equation},
author={Oh, Jaemin and Cho, Seung Yeon and Yun, Seok-Bae and Park, Eunbyung and Hong, Youngjoon},
journal={SIAM Journal on Scientific Computing},
volume={47},
number={2},
pages={C451--C474},
year={2025},
publisher={SIAM}
}
Owner
- Name: Jaemin Oh
- Login: jaeminoh
- Kind: user
- Website: jaeminoh@kaist.ac.kr
- Repositories: 2
- Profile: https://github.com/jaeminoh
Math PhD students @ KAIST.
GitHub Events
Total
- Watch event: 5
- Push event: 4
- Create event: 2
Last Year
- Watch event: 5
- Push event: 4
- Create event: 2
Dependencies
- PyYAML ==6.0.1
- Pygments ==2.18.0
- absl-py ==2.1.0
- cfgv ==3.4.0
- contextlib2 ==21.6.0
- contourpy ==1.2.1
- cycler ==0.12.1
- distlib ==0.3.8
- equinox ==0.11.4
- et-xmlfile ==1.1.0
- etils ==1.8.0
- filelock ==3.14.0
- fire ==0.6.0
- fonttools ==4.51.0
- fsspec ==2024.3.1
- identify ==2.5.36
- importlib_resources ==6.4.0
- kiwisolver ==1.4.5
- markdown-it-py ==3.0.0
- matplotlib ==3.8.4
- mdurl ==0.1.2
- mkposters ==0.0.4
- ml-dtypes ==0.4.0
- msgpack ==1.0.8
- nest-asyncio ==1.6.0
- nodeenv ==1.8.0
- numpy ==1.26.4
- openpyxl ==3.1.2
- optax ==0.2.2
- packaging ==24.0
- pandas ==2.2.2
- pillow ==10.3.0
- platformdirs ==4.2.1
- pre-commit ==3.7.0
- protobuf ==5.26.1
- pyparsing ==3.1.2
- python-dateutil ==2.9.0.post0
- pytz ==2024.1
- rich ==13.7.1
- scipy ==1.13.0
- setuptools ==68.2.2
- six ==1.16.0
- tensorstore ==0.1.59
- termcolor ==2.4.0
- toolz ==0.12.1
- tqdm ==4.66.4
- typeguard ==2.13.3
- typing_extensions ==4.11.0
- tzdata ==2024.1
- uv ==0.3.3
- virtualenv ==20.26.1
- wheel ==0.41.2
- zipp ==3.18.1