uPDE: A Python library for solving systems of nonlinear partial differential equations
uPDE is a user-centric Python library for solving systems of nonlinear, coupled partial differential equations, both steady and unsteady. Its central design principle is a physics-focused declarative API in which users construct a PDE term by term—adding diffusion, advection, sources, and fluxes individually—so that the code structure mirrors the governing equations directly. This encourages physical understanding and gives users explicit control over every term in their model, while delegating all numerical machinery—spatial discretization, time integration, and steady-state solving—to well-tested solvers mainly from scipy . The user describes the equation in a physics-focused manner: which terms are present, what the coefficients are, and what the boundary and initial conditions are. Everything else—assembling the RHS, flattening multi-field state vectors, choosing ghost-cell values at non-periodic boundaries—happens automatically. uPDE currently handles 1D and 2D problems, nonlinear field-dependent coefficients, Dirichlet, Neumann, and per-axis periodic boundary conditions, and tightly coupled multi-field systems. We expect it to be useful both as a research prototyping tool and as a teaching aid for courses on numerical methods, transport phenomena, and other subjects involving PDE-based modelling.
Authors
- Tony Saad (ORCID: https://orcid.org/0000-0001-7877-3183)
Institutions
- University of Utah (US)
Publication Details
- Journal
- SoftwareX
- Published
- 2026-05-11
- DOI
- https://doi.org/10.1016/j.softx.2026.102715
- Primary Topic
- Model Reduction and Neural Networks
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Directorate for Engineering