fix doc/readme/joss (#146)

* fix doc/readme/joss with API scheme

---------

Co-authored-by: Dario Coscia <dariocoscia@cli-10-110-11-236.WIFIeduroamSTUD.units.it>
This commit is contained in:
Dario Coscia
2023-07-04 11:52:10 +02:00
committed by GitHub
parent 6763be0d31
commit 3187bce6ca
7 changed files with 28 additions and 5 deletions

View File

@@ -42,7 +42,14 @@
* [License](#license) * [License](#license)
## Description ## 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. **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. The approximated solution of a differential equation can be implemented using PINA in a few lines of code thanks to the intuitive and user-friendly interface.
<p align="center">
<a href="http://mathlab.github.io/PINA/" target="_blank" >
<img alt="PINA interface for solving problems." src="readme/API_color.png" width="400" />
</a>
</p>
#### Physics-informed neural network #### Physics-informed neural network
PINN is a novel approach that involves neural networks to solve supervised learning tasks while respecting any given law of physics described by general nonlinear differential equations. Proposed in *"Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations"*, such framework aims to solve problems in a continuous and nonlinear settings. PINN is a novel approach that involves neural networks to solve supervised learning tasks while respecting any given law of physics described by general nonlinear differential equations. Proposed in *"Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations"*, such framework aims to solve problems in a continuous and nonlinear settings.

View File

@@ -1,10 +1,27 @@
Welcome to PINA's documentation! Welcome to PINA's documentation!
=================================================== ===================================================
.. figure:: index_files/pina_logo.png
:align: center
:width: 150
|
PINA is a Python package providing an easy interface to deal with PINA is a Python package providing an easy interface to deal with
physics-informed neural networks (PINN) for the approximation of (differential, physics-informed neural networks (PINN) for the approximation of (differential,
nonlinear, ...) functions. Based on Pytorch, PINA offers a simple and intuitive nonlinear, ...) functions. Based on Pytorch, PINA offers a simple and intuitive
way to formalize a specific problem and solve it using PINN. way to formalize a specific problem and solve it using PINN. The approximated
solution of a differential equation can be implemented using PINA in a few lines
of code thanks to the intuitive and user-friendly interface.
.. figure:: index_files/API_color.png
:alt: PINA application program interface
:align: center
:width: 500
|
Physics-informed neural network Physics-informed neural network
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

View File

@@ -62,12 +62,11 @@ Among all these frameworks, PINA wants to emerge for its easiness of usage, allo
Built over PyTorch --- in order to inherit the \verb+autograd+ module and all the other features already implemented --- PINA provides indeed documented API to explain usage and capabilities of the different classes. We have built several abstract interfaces not only for better structure of the source code but especially to give the final user an easy entry point to implement their own extensions, like new loss functions, new training procedures, and so on. This aspect, together with the capability to use all the PyTorch models, makes it possible to incorporate almost any existing architecture into the PINA framework. Built over PyTorch --- in order to inherit the \verb+autograd+ module and all the other features already implemented --- PINA provides indeed documented API to explain usage and capabilities of the different classes. We have built several abstract interfaces not only for better structure of the source code but especially to give the final user an easy entry point to implement their own extensions, like new loss functions, new training procedures, and so on. This aspect, together with the capability to use all the PyTorch models, makes it possible to incorporate almost any existing architecture into the PINA framework.
We have decided to build it on top of PyTorch in order to exploit the \verb+autograd+ module, as well as all the other features implemented in this framework. The final outcome is then a library with incremental complexity, capable of being used by the new users to perform the first investigation using PINNs, but also as a core framework to actively develop new features to improve the discussed methodology. We have decided to build it on top of PyTorch in order to exploit the \verb+autograd+ module, as well as all the other features implemented in this framework. The final outcome is then a library with incremental complexity, capable of being used by the new users to perform the first investigation using PINNs, but also as a core framework to actively develop new features to improve the discussed methodology.
The high-level structure of the package is illustrated in Figure \ref{API_visual}; the approximated solution of a differential equation can be implemented using PINA in a few lines of code thanks to the intuitive and user-friendly interface. The high-level structure of the package is depicted in our [API](https://github.com/mathLab/PINA/tree/master/readme/API_color.png); the approximated solution of a differential equation can be implemented using PINA in a few lines of code thanks to the intuitive and user-friendly interface.
Besides the user-friendly interface, PINA also offers several examples and tutorials, aiming to guide new users toward an easy exploration of the software features. The online documentation is released at \url{https://mathlab.github.io/PINA/}, while the robustness of the package is continuously monitored by unit tests. Besides the user-friendly interface, PINA also offers several examples and tutorials, aiming to guide new users toward an easy exploration of the software features. The online documentation is released at \url{https://mathlab.github.io/PINA/}, while the robustness of the package is continuously monitored by unit tests.
The API visualization in Figure \ref{API_visual} shows that a complete workflow in PINA is characterized by 3 main steps: the problem formulation, the model definition, i.e. the structure of the neural network used, and the training, eventually followed by the data visualization. PINA workflow is characterized by 3 main steps: the problem formulation, the model definition, i.e. the structure of the neural network used, and the training, eventually followed by the data visualization.
![High-level structure of the library.\label{API_visual}](API_color.png){ width=70% }
## Problem definition in PINA ## Problem definition in PINA
The first step is the formalization of the problem. The first step is the formalization of the problem.

BIN
readme/API_color.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB