FREEDOM251

Freedom251 › Physics Simulation Software

py-pde

Free plan LinuxMacSelf-hostedWindows

Visit py-pde Alternatives Pricing

py-pde's own site

What py-pde is

py-pde is a free, open-source Python package for simulating partial differential equations with finite differences. It uses the method of lines on fixed grids and is aimed at researchers and students studying PDE behavior and boundary conditions. The package handles nonlinear and stochastic differential equations in the Itô representation, plus scalar, vector, and rank-2 tensor fields. Supported geometries include Cartesian, polar symmetric, spherical symmetric, and cylindrical symmetric grids. Boundary conditions include Dirichlet, Neumann, Robin, periodic, and anti-periodic forms. Solvers include Euler, Runge-Kutta, backward Euler, and wrappers for scipy.integrate.solve_ivp(). Computation can use numba, jax, or torch backends. Optional packages add storage, tabular data, visualization, and MPI-based parallel processing. Installation is available through pip or conda-forge, with an Arch package listed. Linux, Windows, and macOS are supported. The project targets simple fixed discretizations; time-independent and integro-differential systems are not fully supported.

Who it suits

py-pde suits researchers and students exploring PDE behavior, numerical methods, and boundary conditions in Python. It fits projects using supported simple geometries and fixed grids.

What it does well

  • Supports nonlinear PDEs
  • Multiple grid geometries
  • Flexible boundary conditions
  • Several solver approaches
  • Optional MPI parallel processing

What to know first

  • Limited to simple fixed geometries
  • Time-independent systems not fully supported
  • Integro-differential systems not fully supported
  • Arbitrary expressions use exec()

Plans

PlanBilled and limitsPrice
py-pdeOpen-source Python package; install with pip or condaFree

As py-pde.readthedocs.io lists them, read 12 Oct 2026. The maker's own page has the final word.

Verdict

py-pde offers a broad finite-difference toolkit with multiple fields, geometries, solvers, and computational backends. Its documented scope is narrower for unsupported equation types and requires caution when arbitrary expressions could contain malicious input.

Facts from py-pde's own pages

Audience
The package is aimed at researchers and students investigating PDE behavior and boundary conditions. · py-pde.readthedocs.io, 12 Oct 2026
Backends
Core computations can use numba, jax, or torch backends, with compiled backends potentially requiring startup compilation. · py-pde.readthedocs.io, 12 Oct 2026
Boundary conditions
Differential operators support flexible boundary conditions, including Dirichlet, Neumann, Robin, periodic, and anti-periodic conditions. · py-pde.readthedocs.io, 12 Oct 2026
Features
It supports nonlinear PDEs, complex boundary conditions, and collections of scalar, vector, or tensor fields. · py-pde.readthedocs.io, 4 Oct 2026
Fields and equations
It supports scalar, vector, and rank-2 tensor fields, and PDEs can be expressed with the PDE class or implemented by subclassing PDEBase. · py-pde.readthedocs.io, 12 Oct 2026
Geometries
Supported grids include Cartesian, polar symmetric, spherical symmetric, and cylindrical symmetric grids. · py-pde.readthedocs.io, 4 Oct 2026
Installation
The package can be installed with pip or conda-forge, and the project also lists an Arch Linux package. · github.com, 4 Oct 2026
Integrations
Documented optional packages include JAX, PyTorch, MPI, napari, pandas, h5py, ipywidgets, and py-modelrunner. · py-pde.readthedocs.io, 12 Oct 2026
Intended users
The project says it is aimed at researchers and students exploring PDE behavior and boundary conditions. · py-pde.readthedocs.io, 4 Oct 2026
License
The repository identifies the project as MIT licensed. · github.com, 4 Oct 2026
Limitations
The package is intended for simple geometries with fixed discretization, and time-independent and integro-differential systems are not fully supported. · py-pde.readthedocs.io, 4 Oct 2026
Limits
The package is suited to simple geometries with fixed discretization and does not fully support time-independent systems or integro-differential equations. · py-pde.readthedocs.io, 12 Oct 2026
Numerical method
It uses the method of lines with finite-difference approximations on fixed grids. · py-pde.readthedocs.io, 12 Oct 2026
Parallel processing
The package supports MPI-based parallel simulations using its ExplicitMPISolver and an installed MPI implementation. · py-pde.readthedocs.io, 12 Oct 2026
Platforms
The package is developed for Python 3.12, tested through Python 3.14, and documented for Linux, Windows, and macOS. · py-pde.readthedocs.io, 12 Oct 2026
Platform support
The documentation says py-pde has been tested on Linux, Windows, and macOS with Python versions up to 3.14. · py-pde.readthedocs.io, 4 Oct 2026
Publication
The documentation asks users to cite David Zwicker’s 2020 Journal of Open Source Software paper about py-pde. · py-pde.readthedocs.io, 12 Oct 2026
Purpose
py-pde provides methods and classes for simulating partial differential equations and stochastic differential equations. · py-pde.readthedocs.io, 12 Oct 2026
Results and visualization
Trackers can report progress, plot simulation states, detect steady states, and store intermediate states in memory or files. · py-pde.readthedocs.io, 12 Oct 2026
Security
The documentation warns that interpreting arbitrary expressions uses exec() and should not be used where malicious input may occur. · py-pde.readthedocs.io, 4 Oct 2026
Security note
The documentation warns that arbitrary expressions are interpreted using exec() and advises against using them where malicious input could occur. · py-pde.readthedocs.io, 12 Oct 2026
Solvers
Available solver approaches include Euler, Runge-Kutta, backward Euler, and wrappers for scipy.integrate.solve_ivp(). · py-pde.readthedocs.io, 12 Oct 2026
Stochastic equations
The framework also supports stochastic differential equations in the Itô representation. · py-pde.readthedocs.io, 4 Oct 2026
Support
The repository points users to GitHub Discussions for more information. · github.com, 4 Oct 2026

Where py-pde stands on Freedom251

Look at these too