Releases: mathLab/PINA
v0.1.0.post2403
Monthly version 0.1.0.post2403
v0.1
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
Monthly version 0.0.3.post2311
v0.0.3.post2310
Monthly version 0.0.3.post2310
v0.0.3.post2309
Monthly version 0.0.3.post2309
v0.0.3.post2308
Monthly version 0.0.3.post2308
Version 0.0.3 for JOSS publication
v0.0.3-joss version 0.0.3 for JOSS
v0.0.3
version 0.0.3
v0.0.2.post2307
Monthly version 0.0.2.post2307
v0.0.2.dev2
Version 0.0.2.dev2