Skip to content

[Ecosystem] PINAΒ #45

@dario-coscia

Description

@dario-coscia

Contact emails

[email protected], [email protected], [email protected], [email protected], [email protected]

Project summary

PINA is an open-source library designed to simplify and accelerate the development of Scientific Machine Learning solutions.

Project description

PINA is an open-source library designed to simplify and accelerate the development of Scientific Machine Learning (SciML) solutions. It provides a consistent and modular framework for building and experimenting with models such as Neural Networks, Physics-Informed Neural Networks (PINNs), Neural Operators and more. Designed with composable abstractions, PINA allows researchers to plug in, replace, or extend components effortlessly, making experimentation both fast and flexible. It scales seamlessly across devices, delivering performance close to hand-crafted implementations while remaining easy to use.

Are there any other projects in the PyTorch Ecosystem similar to yours? If, yes, what are they?

The closest package to ours is simulAI, which provides contributions to the SciML ecosystem, particularly with implementations of vanilla PINNs and DeepONet. Unlike simulAI, PINA is designed to be truly versatile, supporting a wide range of SciML tasks; from molecular property prediction to solving complex PDEs, for instance. It also goes beyond the basics, incorporating not only standard approaches but also many of their state-of-the-art variants that address limitations of the original methods. Finally, PINA is an active project, with continuous updates and regular maintenance to ensure researchers can rely on the latest tools and techniques.

Project repo URL

https://github.com/mathLab/PINA

Additional repos in scope of the application

No response

Project license

The MIT License (MIT)

GitHub handles of the project maintainer(s)

@GiovanniCanali, @dario-coscia, @ndem0, @AleDinve, @annaivagnes, @FilippoOlivo, @guglielmopadula, @fpichi

Is there a corporate or academic entity backing this project? If so, please provide the name and URL of the entity.

SISSA mathLab, Mathematics Area, SISSA (Scuola Internazionale Superiore di Studi Avanzati), Trieste, Italy. URL: https://mathlab.sissa.it/pina

Website URL

https://github.com/mathLab/PINA

Documentation

Our documentation is available at: https://mathlab.github.io/PINA/

We have a list of getting started tutorials: https://mathlab.github.io/PINA/_tutorial.html#getting-started-with-pina, but also more advanced tutorials.

How do you build and test the project today (continuous integration)? Please describe.

The repository includes various continuous integration pipelines through GitHub workflows. Below we highlight the main ones, while the full list is available here:

  • Automated Tests: We run static code analysis and documentation build tests.
  • Coverage: We verify code quality and monitor test coverage through automated checks.
  • Automated Releases: We publish a release on PyPI once per month, which also automatically updates the documentation.

Version of PyTorch

The repository works (and has been tested) with PyTorch versions β‰₯ 2.0, while maintaining backward compatibility with earlier versions. Continuous integration is performed using the latest stable release of PyTorch.

Components of PyTorch

We use different components of PyTorch across the repository:

  • torch.nn.Module (with optional buffers) in pina.model and pina.model.block for building state-of-the-art SciML architectures.
  • torch.autograd in our differential operators module (pina.operator).
  • torch.utils.data for the data loading pipeline.
  • Linear algebra routines and standard PyTorch operations throughout the codebase.

How long do you expect to maintain the project?

Indefinitely

Additional information

Our software has been accepted to the JOSS journal.
Link to the paper: https://joss.theoj.org/papers/10.21105/joss.05352

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions