Skip to content

Releases: mathLab/PINA

v0.1.0.post2403

01 Mar 02:41
Compare
Choose a tag to compare
Monthly version 0.1.0.post2403

v0.1

17 Nov 15:14
Compare
Choose a tag to compare

PINA v0.1 Release Notes

Highlights

​We're thrilled to announce the launch of PINA v0.1, a groundbreaking release that introduces powerful capabilities for solving differential equations using the Physics Informed Neural Network paradigm and Operator learning. In this version, we've expanded the package's functionality and compatibility by integrating it seamlessly with the Pytorch Lightining framework as its backend.

By leveraging PyTorch Lightning, we aim to empower professional AI researchers and machine learning engineers with access to cutting-edge training strategies offered by this library. This integration enhances the potential for advanced methodologies while utilizing PINA's differential equation-solving prowess.

Furthermore, in this 0.1 release, we're introducing a comprehensive set of updates across the PINA libraries. These enhancements are detailed in the New Features and Updates section, providing a deeper insight into the advancements and improvements incorporated into this version.
​​

New Features and Updates

PINA v0.1 core: Solver, Model, Trainer

We introduce the Solver concept. A solver is a Python object which defines the optimization strategy for the model. All solvers in PINA inherits from the standard SolverInterface class, which is a wrapper of lightning.pytorch.LightningModule. We have implemented different solvers such as PINN, GAROM, SupervisedSolver and more to come. All solvers are custumazible by either chaining initialization parameters or by changing the solver methods.

We introduce the concept of Models. A models is represented as a standard torch.nn.Module. The user can use built in models DeepOnet, FNO, MIONet, FeedForward, ResidualFeedForward and so on, or create its own torch model and pass it to a solver. For building the model we also provide various layers in pina.model.layers, see the documentation for the available ones. By combining models and solvers, the user can easily test various state of the art methodologies. For example, using the SupervisedSolver and FNO one can solve a Neural Operator problem by Fourier Neural Operator (see tutorials); or using DeepONet and PINN one can solve a Neural Operator or PINN problem by Physics Informed DeepONet.

Finally we introduce the Trainer, which wraps the lightning.pytorch.Trainer class. In the Trainer class the user must pass a SolverInter- face object in addition to all the available arguments of lightning.pytorch.Trainer. This strategy allows the user maximal training flexibility by exploiting fully Pytorch Lightining capabilities, e.g. low precision training, gradient accumulation, multiple GPU training, and different hardware training. Dataloading is handled inside of PINA directly!

PINA v0.1 Problem

The differential problem is expressed as a class, inheriting from the type of problem one wants to solve, as in the previous versions. As today with PINA it is possible to solve: Spatial, Temporal, Parametric PDEs and ODEs, Optimal Control and Inverse problems.
We introduce the class Equation and SystemEquation wrapping python equations (more on the tutorials).

PINA v0.1 Location, Loss Functions and Callbacks

New loss functions (LpLoss, LpRelativeLoss, ...) and a standard interface (LossInterface) for loss functions. More in the official documentation.

We built new Location objects to sample from different multidimensional geometries (triangles, circles, elliples). Furthemore, now the user can combine Location objects by using set operations (Union, Difference, ...).

With the Pytorch Lightining compatibility also Callbacks can be used during the training for easy extensions without the need to touch the underlying code. The Callbacks allow you to add arbitrary self-contained programs to your training. At specific points during the flow of execution (hooks), the Callback interface allows you to design programs that encapsulate a full set of functionality. We provide examples in the tutorials. A set of callbacks for metric tracking, adaptive point refinment and optimizer routines are available in pina.callbacks.
​​

Documentation


We're excited to unveil our revamped documentation, meticulously crafted to provide users with a comprehensive understanding of our package. It includes HTML tutorials for hands-on learning, a detailed API reference, citing references, contribution guidelines, and licensing information.

Our tutorials in HTML format offer a user-friendly learning experience, guiding users through the package's functionalities. The API reference provides detailed insights into methods and operations. Additionally, citing references acknowledge foundational work, while contribution guidelines encourage community involvement. Clear licensing information ensures transparent usage guidelines.

New Contributors

We thank all the new contributors!

v0.0.3.post2311

01 Nov 02:38
Compare
Choose a tag to compare
Monthly version 0.0.3.post2311

v0.0.3.post2310

01 Oct 02:41
Compare
Choose a tag to compare
Monthly version 0.0.3.post2310

v0.0.3.post2309

01 Sep 02:39
Compare
Choose a tag to compare
Monthly version 0.0.3.post2309

v0.0.3.post2308

01 Aug 02:51
Compare
Choose a tag to compare
Monthly version 0.0.3.post2308

Version 0.0.3 for JOSS publication

19 Jul 11:56
8176d15
Compare
Choose a tag to compare
v0.0.3-joss

version 0.0.3 for JOSS

v0.0.3

04 Jul 11:39
9cbd1bd
Compare
Choose a tag to compare
version 0.0.3

v0.0.2.post2307

01 Jul 03:20
Compare
Choose a tag to compare
Monthly version 0.0.2.post2307

v0.0.2.dev2

02 Jun 09:09
67fb7fe
Compare
Choose a tag to compare
Version 0.0.2.dev2