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 `/tmp/Project.toml`
[b0b7db55] ComponentArrays v0.15.28
[5b8099bc] DomainSets v0.7.15
[7ed4a6bd] LinearSolve v3.18.2
[94925ecb] MethodOfLines v0.11.9
[961ee093] ModelingToolkit v10.10.0
[8913a72c] NonlinearSolve v4.9.0
[1dea7af3] OrdinaryDiffEq v6.98.0
[a7812802] PDEBase v0.1.19
[91a5bcdd] Plots v1.40.16
[ce78b400] SimpleUnPack v1.1.0
using InteractiveUtils
InteractiveUtils.versioninfo()
Julia Version 1.10.10
Commit 95f30e51f41 (2025-06-27 09:51 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
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
Threads: 4 default, 0 interactive, 2 GC (on 4 virtual cores)
Environment:
JULIA_CI = true
JULIA_NUM_THREADS = auto
JULIA_CONDAPKG_BACKEND = Null
JULIA_PATH = /usr/local/julia/
This notebook was generated using Literate.jl.