Documentation
jNO (jax Neural Operators) is a JAX-native library for training neural operators, physics-informed networks, and PDE foundation models. Everything — the PDE residual, the supervised loss, the FEM weak form, the sensitivity diagnostic — is written in one symbolic tracing language and compiled into one optimisation pipeline.
Get started
-
Pip, Pixi, or Docker — under 30 seconds. GPU support is on by default.
-
A 2-D Poisson problem with random diffusion, trained end-to-end. Teaches the full pipeline.
-
~50 worked examples across elliptic, parabolic, hyperbolic, coupled, inverse, integral, stochastic, FEM, and Bayesian problems.
-
Auto-generated reference for
jno.core,jno.domain,jno.nn,jno.np, andjno.fn.
Capability matrix
What works today, what is experimental, what is not yet supported.
Each status badge links to the tutorial (or, where no dedicated tutorial exists, the closest reference page) that demonstrates the capability.
| Capability | Status | Notes |
|---|---|---|
| Forward PINNs (residual minimisation) | ✅ stable | Hard or soft BC enforcement |
| Operator learning (DeepONet, FNO, U-Net, PROSE via foundax) | ✅ stable | PDE-residual or data-driven; FieldView adds FD physics on grid outputs |
| Inverse problems (parameter recovery, surrogate inversion) | ✅ stable | See Inverse Problems |
| FEM / Variational PINNs | ✅ stable | Nodal TRI3 / TRI6 / QUAD4 weak-form assembly; experimental Raviart–Thomas / Nédélec edge elements (H(div)/H(curl), 2-D) — see known limitations |
| Adaptive resampling (RAD, RARD, CR3, R3, pinnfluence) | ✅ stable | See Adaptive Resampling |
| Stochastic PDEs and noise nodes (gaussian / uniform / laplace) | ✅ stable | Fokker–Planck, stochastic forcing |
| Bayesian PINNs (NUTS, HMC, MALA, SGLD, SGHMC, VI) | ✅ stable | 14 worked tutorials — see Bayesian Sampling |
| Parameter-efficient fine-tuning (LoRA, DoRA, rsLoRA, PiSSA, VeRA, LoKr, OFT, IA3) | ✅ stable | Chain .lora(...) on any wrapped model |
| Training explainability (gradient conflict, NTK, Hessian, loss landscape, input sensitivity, residual stats) | ✅ stable | See Explainability |
| Foundation-model integration (foundax MLPs, transformers, DeepONet, FNO, PROSE) | ✅ stable | Wrap any Equinox module via jno.nn.wrap(...) |
| Hybrid data + model parallelism | ✅ stable | core(mesh=(batch, model)) |
| W&B logging + Orbax checkpointing | ✅ stable | |
| IREE / MLIR compiled inference for deployment | ✅ stable | |
| Hyperparameter / architecture search | 🟡 beta | Grid + Nevergrad |
| Multi-physics coupling | 🟡 beta | HyCo Poisson tutorial; broader patterns developing |
Common terminology
A few jNO-specific terms appear throughout the docs. See the Concepts page for full definitions:
- Trace / tracing system — the unified symbolic graph that holds domain points, network calls, residuals, and losses.
- Placeholder — any symbolic node in that graph (a Variable, a network call, an operator).
- Constraint — a single optimisable expression passed to
jno.core([…]). Typicallypde.mse, but can be any scalar. - Model controls — fine-grained per-parameter knobs (freeze, LoRA, initialisation, dtype) configured on a wrapped network.
- Mesh — overloaded: a spatial mesh for the PDE domain and a
device mesh
(batch, model)for parallelism.
Tutorials
Roughly fifty worked examples, ordered from simplest to most involved. Start at 01 if you are new; jump into 05 (inverse), 08 (FEM), or 10 (Bayesian) if you have a specific goal.
| Group | Topic |
|---|---|
| 01 Basics | 1-D Laplace, Poisson, Biharmonic |
| 02 Elliptic | Anisotropic / variable-coefficient Poisson, Helmholtz, mixed BC |
| 03 Parabolic | Heat 1-D/2-D, Reaction-Diffusion, Allen–Cahn |
| 04 Hyperbolic | Advection–Diffusion, Burgers, Telegraph, Wave |
| 05 Coupled & Inverse | Coupled systems, parameter recovery, surrogate inversion, HyCo |
| 06 Integration | Boundary flux, divergence theorem, Fredholm, integro-differential |
| 07 Stochastic | Fokker–Planck, stochastic forcing |
| 08 FEM & Variational PINNs | Poisson 2-D, Allen–Cahn, Robin BC, Helmholtz 3-D |
| 09 W&B logging | Reproducible training runs with Weights & Biases |
| 10 Bayesian PINNs | NUTS / HMC chains, VI, inverse problems, BNN regression, warm-start initialisations (Pathfinder, Laplace, SVGD) |
The full nav is in the left sidebar; the source scripts live under
docs/tutorial_examples/.
Cite jNO
Citing helps us justify continued development. See the
Cite this repository button on
GitHub (reads CITATION.cff)
or copy the BibTeX entry from the README.