diff --git a/README.md b/README.md index be7a139..ca92662 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,167 @@ -# PINA -# Physic Informed Neural networks for Advance modeling + + + + + + + + + + + + + + + + + + + + + + + + + + + +**PINA**: Physics-Informed Neural networks for Advance modeling + +## Table of contents +* [Description](#description) +* [Dependencies and installation](#dependencies-and-installation) + * [Installing via PIP](#installing-via-pip) + * [Installing from source](#installing-from-source) + + +* [Examples and Tutorials](#examples-and-tutorials) + +* [How to cite](#how-to-cite) + * [References](#references) + +* [Authors and contributors](#authors-and-contributors) +* [How to contribute](#how-to-contribute) + * [Submitting a patch](#submitting-a-patch) +* [License](#license) + +## Description +**PINA** is a Python package providing an easy interface to deal with +*physics-informed neural networks* (PINN) for the approximation of (differential, +nonlinear, ...) functions. Based on Pytorch, PINA offers a simple and intuitive +way to formalize a specific problem and solve it using PINN. + + +## Dependencies and installation +**PINA** requires requires `numpy`, `scipy`, `matplotlib`, `future`, `torch`, `sphinx` (for the documentation) and `pytest` (for local test). The code is tested for Python 3, while compatibility of Python 2 is not guaranteed anymore. It can be installed using `pip` or directly from the source code. + +### Installing via PIP +Mac and Linux users can install pre-built binary packages using pip. +To install the package just type: +```bash +> pip install git+https://github.com/mathLab/PINA.git +``` +To uninstall the package: +```bash +> pip uninstall pina +``` + +### Installing from source +The official distribution is on GitHub, and you can clone the repository using +```bash +> git clone https://github.com/mathLab/PINA +``` + +To install the package just type: +```bash +> pip install -e . +``` + + + + + + + + + + + + + + + + + + + + + + +## Examples and Tutorials +The directory `Examples` contains some examples showing Poisson and Burgers problems solved in the PINN context. + +### References +To implement the package we follow these works: + +* Raissi, Maziar, Paris Perdikaris, and George E. Karniadakis. + *Physics-informed neural networks: A deep learning framework for solving + forward and inverse problems involving nonlinear partial differential + equations.* Journal of Computational Physics 378 (2019): 686-707. + + +## Authors and contributors +**PINA** is currently developed and mantained at [SISSA mathLab](http://mathlab.sissa.it/) by +* [Nicola Demo](mailto:demo.nicola@gmail.com) +* [Maria Strazzullo](mailto:mstrazzu@gmail.com) + + +under the supervision of [Prof. Gianluigi Rozza](mailto:gianluigi.rozza@sissa.it). + +Contact us by email for further information or questions about **PyDMD**, or suggest pull requests. Contributions improving either the code or the documentation are welcome! + + +## How to contribute +We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow. + +### Submitting a patch + + 1. It's generally best to start by opening a new issue describing the bug or + feature you're intending to fix. Even if you think it's relatively minor, + it's helpful to know what people are working on. Mention in the initial + issue that you are planning to work on that bug or feature so that it can + be assigned to you. + + 2. Follow the normal process of [forking][] the project, and setup a new + branch to work in. It's important that each group of changes be done in + separate branches in order to ensure that a pull request only includes the + commits related to that bug or feature. + + 3. To ensure properly formatted code, please make sure to use 4 + spaces to indent the code. The easy way is to run on your bash the provided + script: ./code_formatter.sh. You should also run [pylint][] over your code. + It's not strictly necessary that your code be completely "lint-free", + but this will help you find common style issues. + + 4. Any significant changes should almost always be accompanied by tests. The + project already has good test coverage, so look at some of the existing + tests if you're unsure how to go about it. We're using [coveralls][] that + is an invaluable tools for seeing which parts of your code aren't being + exercised by your tests. + + 5. Do your best to have [well-formed commit messages][] for each change. + This provides consistency throughout the project, and ensures that commit + messages are able to be formatted properly by various git tools. + + 6. Finally, push the commits to your fork and submit a [pull request][]. Please, + remember to rebase properly in order to maintain a clean, linear git history. + +[forking]: https://help.github.com/articles/fork-a-repo +[pylint]: https://www.pylint.org/ +[coveralls]: https://coveralls.io +[well-formed commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html +[pull request]: https://help.github.com/articles/creating-a-pull-request + + +## License + +See the [LICENSE](LICENSE.rst) file for license rights and limitations (MIT).