# PINNx: Physics-Informed Neural Networks for Scientific Machine Learning in JAX
<p align="center">
<img alt="Header image of pinnx." src="https://github.com/chaobrain/pinnx/blob/main/docs/_static/pinnx.png" width=50%>
</p>
[![Build Status](https://github.com/chaobrain/pinnx/actions/workflows/build.yml/badge.svg)](https://github.com/chaobrain/pinnx/actions/workflows/build.yml)
[![Documentation Status](https://readthedocs.org/projects/pinnx/badge/?version=latest)](https://pinnx.readthedocs.io/en/latest/?badge=latest)
[![PyPI Version](https://badge.fury.io/py/pinnx.svg)](https://badge.fury.io/py/pinnx)
[![License](https://img.shields.io/github/license/chaobrain/pinnx)](https://github.com/chaobrain/pinnx/blob/master/LICENSE)
``PINNx`` is a library for scientific machine learning and physics-informed learning.
It is rewritten according to [DeepXDE](https://github.com/lululxvi/deepxde) but is enhanced by our
[Brain Dynamics Programming (BDP) ecosystem](https://ecosystem-for-brain-dynamics.readthedocs.io/).
For example, it leverages
- [brainstate](https://brainstate.readthedocs.io/) for just-in-time compilation,
- [brainunit](https://brainunit.readthedocs.io/) for dimensional analysis,
- [braintools](https://braintools.readthedocs.io/) for checkpointing, loss functions, and other utilities.
## Algorithms
``PINNx`` implements the following algorithms, but with the flexibility and efficiency of JAX:
- solving different PINN problems
- solving forward/inverse ordinary/partial differential equations (ODEs/PDEs) [[SIAM Rev.](https://doi.org/10.1137/19M1274067)]
- solving forward/inverse integro-differential equations (IDEs) [[SIAM Rev.](https://doi.org/10.1137/19M1274067)]
- fPINN: solving forward/inverse fractional PDEs (fPDEs) [[SIAM J. Sci. Comput.](https://doi.org/10.1137/18M1229845)]
- NN-arbitrary polynomial chaos (NN-aPC): solving forward/inverse stochastic PDEs (sPDEs) [[J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2019.07.048)]
- PINN with hard constraints (hPINN): solving inverse design/topology optimization [[SIAM J. Sci. Comput.](https://doi.org/10.1137/21M1397908)]
- improving PINN accuracy
- residual-based adaptive
sampling [[SIAM Rev.](https://doi.org/10.1137/19M1274067), [Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2022.115671)]
- gradient-enhanced PINN (gPINN) [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2022.114823)]
- PINN with multi-scale Fourier features [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2021.113938)]
- (physics-informed) deep operator network (DeepONet)
- DeepONet: learning operators [[Nat. Mach. Intell.](https://doi.org/10.1038/s42256-021-00302-5)]
- DeepONet extensions, e.g., POD-DeepONet [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2022.114778)]
- MIONet: learning multiple-input operators [[SIAM J. Sci. Comput.](https://doi.org/10.1137/22M1477751)]
- Fourier-DeepONet [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2023.116300)],
Fourier-MIONet [[arXiv](https://arxiv.org/abs/2303.04778)]
- physics-informed DeepONet [[Sci. Adv.](https://doi.org/10.1126/sciadv.abi8605)]
- multifidelity DeepONet [[Phys. Rev. Research](https://doi.org/10.1103/PhysRevResearch.4.023210)]
- DeepM&Mnet: solving multiphysics and multiscale problems [[J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2021.110296), [J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2021.110698)]
- Reliable extrapolation [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2023.116064)]
- multifidelity neural network (MFNN)
- learning from multifidelity data [[J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2019.109020), [PNAS](https://doi.org/10.1073/pnas.1922210117)]
## Installation
- Install the stable version with `pip`:
``` sh
pip install pinnx --upgrade
```
## Documentation
The official documentation is hosted on Read the Docs: [https://pinnx.readthedocs.io/](https://pinnx.readthedocs.io/)
## See also the BDP ecosystem
We are building the Brain Dynamics Programming ecosystem: https://ecosystem-for-brain-dynamics.readthedocs.io/
Raw data
{
"_id": null,
"home_page": "https://github.com/chaobrain/pinnx",
"name": "pinnx",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "computational neuroscience, brain-inspired computation, brain dynamics programming",
"author": "PINNx Developers",
"author_email": "PINNx Developers <chao.brain@qq.com>",
"download_url": null,
"platform": null,
"description": "# PINNx: Physics-Informed Neural Networks for Scientific Machine Learning in JAX\r\n\r\n\r\n<p align=\"center\">\r\n \t<img alt=\"Header image of pinnx.\" src=\"https://github.com/chaobrain/pinnx/blob/main/docs/_static/pinnx.png\" width=50%>\r\n</p> \r\n\r\n\r\n[![Build Status](https://github.com/chaobrain/pinnx/actions/workflows/build.yml/badge.svg)](https://github.com/chaobrain/pinnx/actions/workflows/build.yml)\r\n[![Documentation Status](https://readthedocs.org/projects/pinnx/badge/?version=latest)](https://pinnx.readthedocs.io/en/latest/?badge=latest)\r\n[![PyPI Version](https://badge.fury.io/py/pinnx.svg)](https://badge.fury.io/py/pinnx)\r\n[![License](https://img.shields.io/github/license/chaobrain/pinnx)](https://github.com/chaobrain/pinnx/blob/master/LICENSE)\r\n\r\n``PINNx`` is a library for scientific machine learning and physics-informed learning. \r\nIt is rewritten according to [DeepXDE](https://github.com/lululxvi/deepxde) but is enhanced by our \r\n[Brain Dynamics Programming (BDP) ecosystem](https://ecosystem-for-brain-dynamics.readthedocs.io/). \r\nFor example, it leverages \r\n\r\n- [brainstate](https://brainstate.readthedocs.io/) for just-in-time compilation,\r\n- [brainunit](https://brainunit.readthedocs.io/) for dimensional analysis, \r\n- [braintools](https://braintools.readthedocs.io/) for checkpointing, loss functions, and other utilities.\r\n\r\n\r\n## Algorithms\r\n\r\n\r\n``PINNx`` implements the following algorithms, but with the flexibility and efficiency of JAX:\r\n\r\n- solving different PINN problems\r\n - solving forward/inverse ordinary/partial differential equations (ODEs/PDEs) [[SIAM Rev.](https://doi.org/10.1137/19M1274067)]\r\n - solving forward/inverse integro-differential equations (IDEs) [[SIAM Rev.](https://doi.org/10.1137/19M1274067)]\r\n - fPINN: solving forward/inverse fractional PDEs (fPDEs) [[SIAM J. Sci. Comput.](https://doi.org/10.1137/18M1229845)]\r\n - NN-arbitrary polynomial chaos (NN-aPC): solving forward/inverse stochastic PDEs (sPDEs) [[J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2019.07.048)]\r\n - PINN with hard constraints (hPINN): solving inverse design/topology optimization [[SIAM J. Sci. Comput.](https://doi.org/10.1137/21M1397908)]\r\n- improving PINN accuracy\r\n - residual-based adaptive\r\n sampling [[SIAM Rev.](https://doi.org/10.1137/19M1274067), [Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2022.115671)]\r\n - gradient-enhanced PINN (gPINN) [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2022.114823)]\r\n - PINN with multi-scale Fourier features [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2021.113938)]\r\n- (physics-informed) deep operator network (DeepONet)\r\n - DeepONet: learning operators [[Nat. Mach. Intell.](https://doi.org/10.1038/s42256-021-00302-5)]\r\n - DeepONet extensions, e.g., POD-DeepONet [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2022.114778)]\r\n - MIONet: learning multiple-input operators [[SIAM J. Sci. Comput.](https://doi.org/10.1137/22M1477751)]\r\n - Fourier-DeepONet [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2023.116300)],\r\n Fourier-MIONet [[arXiv](https://arxiv.org/abs/2303.04778)]\r\n - physics-informed DeepONet [[Sci. Adv.](https://doi.org/10.1126/sciadv.abi8605)]\r\n - multifidelity DeepONet [[Phys. Rev. Research](https://doi.org/10.1103/PhysRevResearch.4.023210)]\r\n - DeepM&Mnet: solving multiphysics and multiscale problems [[J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2021.110296), [J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2021.110698)]\r\n - Reliable extrapolation [[Comput. Methods Appl. Mech. Eng.](https://doi.org/10.1016/j.cma.2023.116064)]\r\n- multifidelity neural network (MFNN)\r\n - learning from multifidelity data [[J. Comput. Phys.](https://doi.org/10.1016/j.jcp.2019.109020), [PNAS](https://doi.org/10.1073/pnas.1922210117)]\r\n\r\n## Installation\r\n\r\n- Install the stable version with `pip`:\r\n\r\n``` sh\r\npip install pinnx --upgrade\r\n```\r\n\r\n\r\n## Documentation\r\n\r\nThe official documentation is hosted on Read the Docs: [https://pinnx.readthedocs.io/](https://pinnx.readthedocs.io/)\r\n\r\n\r\n## See also the BDP ecosystem\r\n\r\nWe are building the Brain Dynamics Programming ecosystem: https://ecosystem-for-brain-dynamics.readthedocs.io/\r\n\r\n",
"bugtrack_url": null,
"license": "Apache-2.0 license",
"summary": "Physics-informed.",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://github.com/chaobrain/pinnx",
"homepage": "http://github.com/chaobrain/pinnx",
"repository": "http://github.com/chaobrain/pinnx"
},
"split_keywords": [
"computational neuroscience",
" brain-inspired computation",
" brain dynamics programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "640539df231c8a418151f430d630e49f82937ed905a103d3d1d2c64ecb39ec00",
"md5": "a941fb61266234c8fe52bad74b400ce2",
"sha256": "8679a859ac6de17b29723bb96090900bf273ab651833ac13cd9037f3520ead23"
},
"downloads": -1,
"filename": "pinnx-0.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a941fb61266234c8fe52bad74b400ce2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.9",
"size": 124399,
"upload_time": "2024-12-03T12:59:08",
"upload_time_iso_8601": "2024-12-03T12:59:08.385287Z",
"url": "https://files.pythonhosted.org/packages/64/05/39df231c8a418151f430d630e49f82937ed905a103d3d1d2c64ecb39ec00/pinnx-0.0.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-03 12:59:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "chaobrain",
"github_project": "pinnx",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "matplotlib",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "scikit-learn",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "brainstate",
"specs": []
},
{
"name": "brainunit",
"specs": [
[
">=",
"0.0.3"
]
]
},
{
"name": "braintools",
"specs": []
},
{
"name": "optax",
"specs": []
}
],
"lcname": "pinnx"
}