Partial Differential Equations (PDEs)#

Solving partial differential equations (PDEs) using SciML/MethodOfLines.jl, a finite difference method (FDM).

Other PDE packages#

PDE courses#

Using neural networks to solve differential equations#

DiffEqFlux is generally more efficient than NeuralPDE because NeuralPDE also tries to discover physical rules in the data, which is mentioned in this thread.

Runtime environment#

using Pkg
Pkg.status()
Status `~/work/jl-pde/jl-pde/Project.toml`
  [b0b7db55] ComponentArrays v0.15.27
  [5b8099bc] DomainSets v0.7.15
  [7ed4a6bd] LinearSolve v3.16.0
  [94925ecb] MethodOfLines v0.11.8
⌅ [961ee093] ModelingToolkit v9.80.2
  [8913a72c] NonlinearSolve v4.9.0
  [1dea7af3] OrdinaryDiffEq v6.98.0
⌃ [a7812802] PDEBase v0.1.17
  [91a5bcdd] Plots v1.40.13
  [ce78b400] SimpleUnPack v1.1.0
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated`
using InteractiveUtils
InteractiveUtils.versioninfo()
Julia Version 1.11.5
Commit 760b2e5b739 (2025-04-14 06:53 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 4 × AMD EPYC 7763 64-Core Processor
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, znver3)
Threads: 4 default, 0 interactive, 2 GC (on 4 virtual cores)
Environment:
  JULIA_CONDAPKG_BACKEND = Null
  JULIA_CI = true
  LD_LIBRARY_PATH = /opt/hostedtoolcache/Python/3.13.3/x64/lib
  JULIA_NUM_THREADS = auto

This notebook was generated using Literate.jl.