Partial Differential Equations (PDEs)#
Solving partial differential equations (PDEs) using SciML/MethodOfLines.jl, a finite difference method (FDM).
Other PDE packages#
Ferrite-FEM/Ferrite.jl (Finite Element method)
gridap/Gridap.jl and its tutorials
WaterLily-jl/WaterLily.jl for fluid dynamics.
PDE courses#
Using neural networks to solve differential equations#
Universal Differential Equations (UDEs): SciML/DiffEqFlux.jl
Physically-informed neural networks (PINNs): SciML/NeuralPDE.jl
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.