SurveyofPDEPackages
Survey of the packages of the Julia ecosystem for solving partial differential equations
Install / Use
/learn @JuliaPDE/SurveyofPDEPackagesREADME
Survey of PDE Packages
State of the ecosystem as of: 03/17/2026
This is a brief list of packages relevant when solving partial differential equations with Julia. The information is mostly gleaned from repositories of packages or from published reports or articles. If
- you think something was missed,
- you’d like to amend or complement the information, or
- you wish your software not to be included,
file an issue, or even better, make it a PR.
For some projects the actual software is not available (or it is not clear how to get it). In that case the document would at least include a link to the paper or other source of information.
Table of contents
- General PDE approximation methods
- Transform methods
- Finite difference methods
- Finite element methods
- Finite volume methods
- Spectral element methods
- Boundary element, Boundary integral methods
- Mesh free methods and particle methods
- Virtual element methods
- Multi-method packages
- Non-classical methods
- Solvers, sparse and hierarchical matrix libraries
- Geometry and topology
- Mesh and Grid Generation
- Postprocessing, visualization
- HPC, Parallel processing
- Optimization
- Miscellanea
<a name="general"></a>General PDE approximation methods
ApproxFun.jl
ApproxFun is a package for approximating functions. It is in a similar vein to the Matlab package Chebfun and the Mathematica package RHPackage. Active and high quality project.
DiffEqDocs
DifferentialEquations.jl: Efficient Differential Equation Solving in Julia. This is a suite for numerically solving differential equations written in Julia and available for use in Julia, Python, and R. The purpose of this package is to supply efficient Julia implementations of solvers for various differential equations. Equations within the realm of this package include:
- Discrete equations (function maps, discrete stochastic (Gillespie/Markov) simulations)
- Ordinary differential equations (ODEs)
- Split and Partitioned ODEs (Symplectic integrators, IMEX Methods)
- Stochastic ordinary differential equations (SODEs or SDEs)
- Stochastic differential-algebraic equations (SDAEs)
- Random differential equations (RODEs or RDEs)
- Differential algebraic equations (DAEs)
- Delay differential equations (DDEs)
- Neutral, retarded, and algebraic delay differential equations (NDDEs, RDDEs, and DDAEs)
- Stochastic delay differential equations (SDDEs)
- Experimental support for stochastic neutral, retarded, and algebraic delay differential equations (SNDDEs, SRDDEs, and SDDAEs)
- Mixed discrete and continuous equations (Hybrid Equations, Jump Diffusions)
- (Stochastic) partial differential equations ((S)PDEs) (with both finite difference and finite element methods)
<a name="tm"></a>Transform methods
julia-pde-benchmark
Benchmarking a simple PDE integration algorithm in Julia and other languages. Fourier approach.
DFTK.jl
The density-functional toolkit is a library of Julia routines for experimentation with plane-wave-based density-functional theory (DFT): it is an engine to solve nonlinear eigenvector equations discretized in a Fourier basis, applied to the Kohn-Sham equations of electronic structure theory (as well as a couple of others).
FourierFlows.jl
Tools for solving partial differential equations on periodic domains using Fourier-based pseudospectral methods.
PencilFFTs.jl
Fast Fourier transforms of MPI-distributed Julia arrays that can be used for pseudospectral partial differential equation solvers.
<a name="fdm"></a>Finite difference methods
DiffEqOperators.jl
Automatic construction of arbitrary order finite difference stencils on regular and irregular grids. Utilizes stencil compilers and matrix-free implementations for low memory high efficiency implementation.
sbp.jl
Finite difference method, unregistered.
SummationByPartsOperators.jl
A library of classical summation-by-parts (SBP) operators used in finite difference methods to get provably stable semidiscretisations, paying special attention to boundary conditions.
EconPDEs.jl
This package solves (systems of) nonlinear ODEs/PDEs arising in economic models (i.e. parabolic/elliptic PDEs arising from HJB equations) The underlying algorithm is based on a combination of upwinding and fully implicit time stepping, using sparse Jacobians.
Partial-Differential-Equations
