Scientific Machine Learning for PDEs: composing classical and nonlinear approaches
Scimba is a Python library implementing Scientific Machine Learning (SciML) methods for PDE problems. It has PyTorch and JAX backends.
Scimba is a library for hybrid numerical methods
It includes classical methods, like finite elements, finite volumes or discontinuous Galerkin, as well as nonlinear ones, like PINNs or neural operators. Scimba's end goal is to provide tools for hybrid numerical methods, compositing classical and nonlinear ones. The end goal is to help high-dimensional simulations achieve greater efficiency and accuracy by combining the best of both worlds.
Nonlinear approximation
PINNs
Physics-informed networks trained directly on the PDE residual.
Advanced optimizers
Adam, L-BFGS, SS-BFGS, SS-Broyden and natural-gradient methods for neural models.
Neural operators
Operator-learning architectures for parametric solution maps.
Linear approximation
DG / FEM
Discontinuous Galerkin and finite element spaces for classical, mesh-based discretizations.
Kernel methods
RBF and kernel-based approximation spaces.
ROMs
Reduced-order models built from snapshots of the solution manifold.
PIC / Lagrangian methods
Particle-in-cell and Lagrangian schemes for kinetic and transport problems.
Hybrid methods
Hybrid approximation spaces
Combine network-based and classical linear spaces within the same least-squares training loop.
Hybrid PIC
Particle-in-cell schemes augmented with neural approximation.
Hybrid ROMs
Reduced-order models enriched with nonlinear manifold corrections.
Pick either PyTorch or JAX
Both backends are documented, you may find more information on the Code page.
Scimba Jax
A JAX-based rewrite of Scimba, with a fast autodiff and vmapped classical solvers.
Discover Scimba Jax →Scimba Torch
The original PyTorch backend, without new developments, but fully tested and stable.
Discover Scimba Torch →See Scimba in action!
A few of the example notebooks shipped with the library.