Metadata-Version: 2.4
Name: scimba
Version: 1.3.0
Summary: This library implements some common tools for scientific machine learning
Author-email: Emmanuel Franck <emmanuel.franck@inria.fr>, Rémi Imbach <remi.imbach@inria.fr>, Victor Michel-Dansac <victor.michel-dansac@inria.fr>
Maintainer-email: Matthieu Boileau <matthieu.boileau@math.unistra.fr>, Rémi Imbach <remi.imbach@inria.fr>
License: MIT
Project-URL: Homepage, https://www.scimba.org
Project-URL: Documentation, https://www.scimba.org
Project-URL: Repository, https://gitlab.com/scimba/scimba.git
Project-URL: Issues, https://gitlab.com/scimba/scimba/-/issues
Project-URL: Changelog, https://gitlab.com/scimba/scimba/-/blob/main/CHANGELOG.md
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: torch>=2.9
Requires-Dist: scipy
Requires-Dist: tqdm
Dynamic: license-file

# ScimBa

[![pipeline status](https://gitlab.com/scimba/scimba/badges/main/pipeline.svg)](https://gitlab.com/scimba/scimba/-/commits/main)
[![coverage report](https://gitlab.com/scimba/scimba/badges/main/coverage.svg)](https://scimba.gitlab.io/scimba/coverage)
[![Latest Release](https://gitlab.com/scimba/scimba/-/badges/release.svg)](https://gitlab.com/scimba/scimba/-/releases)
[![Doc](https://img.shields.io/badge/doc-sphinx-blue)](https://scimba.gitlab.io/scimba/)

Scimba is a Python library that implements varying Scientific Machine Learning (SciML)
methods for PDE problems, as well as tools for hybrid numerical methods.

The current version of the code solves parametric PDEs using various nonlinear
approximation spaces such as neural networks, low-rank approximations, and nonlinear
kernel methods.
These methods:

- can handle complex geometries generated via level-set techniques and mappings, including sub-volumetric and surface domains;
- support function projections as well as elliptic, time-dependent, and kinetic parametric PDEs;
- are compatible with both space–time algorithms (PINN, Deep Ritz) and time-sequential ones (discrete PINNs, neural Galerkin and neural semi-Lagrangian schemes).

To achieve this, the code provides several optimization strategies, including:

- Adam, L-BFGS, SS-BFGS and SS-Broyden;
- natural gradient methods (for neural network-based models);
- hybrid least-squares approaches.

The current version of Scimba relies on a PyTorch backend.

A JAX version is under development and is released as an experimental module under `scimba_jax`.
There is no warranty concerning the compatibility of the current release of `scimba_jax` with future versions. The given test coverage does not concern `scimba_jax`.

**Documentation:** [https://www.scimba.org/](https://www.scimba.org/)

**Code repository:** [https://gitlab.com/scimba/scimba/](https://gitlab.com/scimba/scimba/)
